0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSL通信の原理:対称鍵・非対称鍵を理解してみた

Posted at

はじめに

httpsを理解する時、httpにSSLを加えて通信経路での第三者による情報の盗聴や改ざんのリスクを防止できるということがわかったが、裏側がわからなくて結局SSLってなんでセキュアなのか肌で感じることができなかった。

SSLが動作する原理を理解するため、今回はSSLが動く対称鍵方式と非対称鍵方式についてしらべてみた。

非対称鍵方式

①キーペアの生成

PCでPCのPublic key + PCのPrivate Keyを生成
サーバーでサーバーのPublic key + サーバーのPrivate Keyを生成

ここで、Public keyは暗号化だけに使われて、Private keyは復元にだけ使われる

②キー交換

お互いのPublic keyを送り合う

PCが持っている鍵

PCのPublic key + PCのPrivate Key + サーバーのPublic Key(交換で獲得)

サーバーが持っている鍵

サーバーのPublic key + サーバーのPrivate Key + PCのPublic Key(交換で獲得)

③流れ

しかし、この非対称鍵方式が一般的に使われることはない

非対称鍵の何が問題?

キーペアを生成するために演算処理がかかりすぎる。しかも作ったものを長い間使い回しすることはできない(セキュリティのため)

例えば、コーヒーを飲むために使ったマグカップを毎回使い捨てているようなことをしている。

対称鍵方式

そのような非対称鍵方式のデメリットを回避するため、通信する前にキーペアを作ってディスクなどに保存しておく方法が生まれた。

効率

対称鍵が圧倒的にいい。先に作っておいてそもそもの計算量も少ないためCPUの使用量も少ないし、場合によってはもっとセキュアな面もある。

よく使われている対称鍵方式のAES-256と非対称鍵方式RSA 2048を比べてみると、RSAはbit数が大きいものの素因数分解のような仕組みをしているため今後量子コンピューターで容易に解読できる可能性がある反面、AES-256は単純な演算処理で構成されているが、量子コンピューターなどは得意としない演算になっているため解読しにくいらしい。

①対称鍵の生成

PCで対称鍵を1つ生成する(サーバーで作るパターンもあるが、今回はPCで作る方を見ていく)
サーバーではキーペアを用意する(サーバーのPublic Key + サーバーのPrivate Key

②キー交換

PCはサーバーのPublic Keyを受け取る

PCが持っている鍵

PCの対称鍵 + サーバーのPublic Key(交換で獲得)

サーバーが持っている鍵

サーバーのPublic key + サーバーのPrivate Key + PCの対称鍵(③流れの一番上で受け取る予定)

③流れ

おわりに

結局もっと深いところまではわからなかったが、これだけでなぜSSLがいいのかは理解できた。
曖昧な知識をどんどん固めていきたいな〜

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?