SSL証明書について、何回調べても忘れてしまうので自分でまとめた。


SSL証明書について、何回調べても仕組みについて忘れてしまうので、対策として。

以下の流れで学習をする。自分の言葉で言い換えることで、格段に記憶に定着するようになる。
1. 初心者向けの記事をひととおり読んで、分かった気になる。
2. これが分かりやすいという図を探す。
3. 自分の言葉で認証の流れを言い換えてみる。(2で見つけた図を見ながら行うと良い。)

(Ex.)元の文 https://www.cybertrust.ne.jp/sureserver/basics/ssl1.html

WebサーバとWebブラウザの間では以下のような流れでSSL暗号化通信が開始されます。
(1) SSL暗号化アルゴリズムの合意(SSL暗号化仕様交渉)
WebブラウザとWebサーバ間の両者が使用できる一番安全なSSL暗号化の仕様を決めます。
(2) SSLサーバ証明書提示
WebサーバはWebブラウザへSSLサーバ証明書を送信します。Webブラウザは受信したSSLサーバ証明書を確認します。
(3) 共通鍵の元データ交換・共通鍵の生成
Webブラウザは共通鍵の元となるデータを作成し、SSLサーバ証明書の公開鍵で暗号化してWebサーバへ送信します。
両者は同じ元データを使用し、共通鍵を生成します(全く同じものを生成します)。
(4) SSL暗号化通信開始
以降、実際のデータのSSL暗号化通信が開始されます。

図は Webセキュリティ覚書 : "HTTPS" 編 [ 初学者向け ] も参考にした。

(Ex.)自分の言葉で言い換え
 1. 利用者(Webブラウザ)がWebサーバと通信したい。
 2. 安全にやりとりをするために、暗号化の方法を決める必要があるので、決める。
 3. Webサーバは利用者へ「公開鍵付き証明書」を送る。※1
 4. 利用者は貰った「公開鍵付き証明書」を元に、共通鍵を作成する。※2
 5. 利用者はさらに作成した共通鍵をWEBサーバの公開鍵で暗号化して「暗号化共通鍵」を作成し、WEBサーバに送る。
 6. WEBサーバは自分の秘密鍵で受け取った「暗号化共通鍵」を平文に戻す。(WEBサーバは共通鍵を手に入れる)
 7. 以上で、両者が同じ共通鍵を持つことになるので、それを用いて暗号化通信を行う。

※1 そもそもWEBサーバから送られた「公開鍵付き証明書」が偽物であった場合に備えた仕組み

認証局( CA => Certificate Authority )

公開鍵が本物であるかどうか、それを判断し証明するために認証局は存在します。
つまり、クライアントとサーバーが双方信頼する第三者機関がその立場に立ってくれます。

※2 共通鍵って?

共通鍵暗号方式では、暗号化する際の「鍵」と復号する際の「鍵」は同一のもの(共通の鍵)を使います。 「共通鍵」情報は公開されておらず、送信側と受信側のみで共有されているのが特徴です。