公開鍵方式と共通鍵方式の違いについて
Webエンジニアなら避けて通れないセキュリティ問題。
その中でも代表的な公開鍵方式と共通鍵方式。
違いを理解のためにさらっとまとめてみる。
■共通鍵方式
最初に同じ鍵を送信元(Aさん:俺)と送信先(Bさん:サーバ)で持っておくやり方。
鍵、というとわかりやすいのがこのやり方。
二人で共有するマンションの部屋の鍵を共有するイメージ。
ただ、デメリットとしてこの「共通鍵」が漏れるとなんでも出来ちゃう。
■公開鍵方式
そこで出てきたのが公開鍵方式。
流れとしては
1.送信先であるBさんが、Bさんしか知らない「秘密鍵」でしか開けない「箱(≒公開鍵とイメージして)」を作る。
ここで、「箱」は鍵を閉じずに開けておく。(ここ大事)
2.BさんがAさんに「箱」(まだ閉じてないよ)を渡す
3.Aさんが「箱」に人に見られたくないものをしまって、フタを閉める(ここで箱に鍵がかかる)
4.AさんがBさんに「箱」を渡す
5.Bさんが、Bさんが元々持ってた「秘密鍵」を使って「箱」を開けて中身を取り出す。
という感じ。
これでAさんの情報はBさんにしかわからなくなった。
■これを用いたSSLのやり方。
要は、共通鍵を公開鍵方式を使ってやり取りすればいいのでは?というだけ。
これだけ。
ここまで出てきた言葉の整理とイメージ
・共通鍵
・公開鍵
・秘密鍵←これはイメージしやすい。秘密の鍵。
共通鍵と公開鍵が言葉が少し似てて混乱する。
共通鍵は共通でもってる鍵で、公開してはいけないもの。
公開鍵は共通でもってるんだけど、公開してよいもの、
という理解がよいかな。