SSL(Secure Socket Layer)/TLS
PCやスマホでネット購入する際、クレジットカードの登録や配送先の指定を行いますが
これらの個人情報が外部へ漏れないように入力内容(メッセージ)を暗号化する技術が
SSL/TLSです。
どうやって暗号化を実現しているか
共通鍵暗号方式
メッセージの暗号化には共通鍵暗号を使用しています。(別名 対称鍵暗号)
メッセージ・・・スマホ(クライアント側)からの個人情報入力
webサーバー側が表示するweb画面
共通鍵によりメッセージを暗号化し送信、共通鍵により受信したメッセージを復号します。
以上によってクライアント側とサーバー側の安全なやり取りを達成できるのです。
共通鍵は秘密裏にメッセージ相手だけに送らなけらばなりません。
他の誰かに知られた場合、その共通鍵は安全ではないからです。
疑問が一点浮かび上がります。メッセージは共通鍵で暗号化しますが共通鍵はどのように
こっそりと相手へ渡すのでしょうか。共通鍵も同様に暗号化されます。
ここで使用されるのが公開鍵暗号です。(別名 非対称鍵暗号)
公開鍵暗号化方式では「秘密鍵」と「公開鍵」の二つの鍵を使用します。
公開鍵暗号方式
公開鍵暗号の特性
- 公開鍵でメッセージを暗号化した場合、対応する秘密鍵しかメッセージを復号できません。
- 秘密鍵でメッセージを暗号化した場合、対応する公開鍵しかメッセージを復号できません。
- サーバー側が公開鍵・秘密鍵を作成します。
- 作成した公開鍵はクライアント側へ配布し、クライアント側は公開鍵を保持します。
- 配布されるタイミングは対象のwebサイトを開いて一番初めです。
暗号化の流れ
① クライアント側がwebサイトを訪れたタイミングでweb画面を表示しているサーバー側が
公開鍵を配布します。クライアント側は公開鍵を受け取ります。
② クライアント側は受け取った公開鍵を使って自身の共通鍵を暗号化し、サーバー側へ
渡します。サーバー側は公開鍵で暗号化されたメッセージを受け取ります。
③ サーバー側は自身の公開鍵を使って暗号化されたメッセージを秘密鍵で復号し
クライアント側の共通鍵を受け取ります。
④ これでお互いが共通鍵を持つことで秘密裏にメッセージをやり取りする準備ができました。
まとめ
今回、暗号化アルゴリズムについての説明はあえて省きました。
詳細については沢山の良質な解説サイトがあるかと思いますのでそちらをご覧ください。
資格勉強、新卒でこれからIT系に従事される方のお役に立てれば幸いです。