SSL/TLSについて② SSLの通信フロー
1.用語の説明
今後は以下の用語を使用します。
- 公開鍵暗号方式:公開鍵と秘密鍵の2種類の鍵を使用して暗号化通信を行います。公開鍵で送信者が暗号化して受信者に通信を行います。受信者は秘密鍵を使用して受け取った暗号化情報を復号化します。公開鍵は誰でも取得が可能ですが、秘密鍵は受信者のみが持っている情報となります。公開鍵で暗号化された場合、秘密鍵でしか複合化できません。
- 共通鍵暗号方式:共有鍵と呼ばれる鍵を使用して送信者と受信者が暗号化通信を行います。共通鍵は暗号化と復号化のために使用されます。共通鍵が漏洩すると誰でも本内容の盗聴・改竄が可能であるので扱いに注意が必要です。
- 証明書:通信相手が本当に正しい通信相手かを確認するためのものです。認証局が発行します。
2.SSL/TLSのフロー
SSL/TLSがどのように通信を暗号化して、クライアントがどのように通信を復号化しているかを説明します。
流れを説明すると以下です。
共通鍵の交換のみを公開鍵暗号方式で行って、実際の通信は共通鍵暗号化方式で通信を行います。
フローの中でサーバ証明書の検証という言葉がありました。サーバ証明書は作成される過程で上位の認証機関に証明をしてもらう必要があります。このサーバ証明書は信頼された証明機関によって署名されている、ということをクライアントが検証します。この工程によって、不審なサイトにアクセスした際に警告を出すことが可能となります。
3.SSL通信に必要なもの
公開されているサーバでSSL通信を有効化するためには以下のファイルが必要となります。
クライアント側:ルート証明書
サーバ側のサーバ証明書と秘密鍵は発行する際に同時に生成されるので問題ないかと思います。
クライアント側のルート証明書は必ずしも必要ではありませんが、証明書のエラー画面がブラウザで表示されるので注意が必要です。自己証明書を使用していない場合は自動的にブラウザにインストールされています。
証明書に関しては後ほど詳細を説明します。
4.まとめ
SSL/TLSについて① SSL/TLS通信の概要 - インフラエンジニア勉強雑記
SSL/TLSについて② SSLの通信フロー - インフラエンジニア勉強雑記
SSL/TLSについて③ 証明書とは - インフラエンジニア勉強雑記
SSL/TLSについて④ 証明書の発行方法、ルート証明書のインポート方法 - インフラエンジニア勉強雑記
SSL/TLSについて⑤ SSLの終端機器 - インフラエンジニア勉強雑記
SSL/TLSについて⑥ SSLハンドシェイク - インフラエンジニア勉強雑記