SSL/TLSは分かりづらいのでメモ
●SSLとTLS
Secure Sockets Layer
Transport Layer Security
SSLは既に廃止、プロトコルとしてはTLSのみ。呼称としてのみSSL。
●公開鍵暗号
公開鍵は暗号化
秘密鍵は復号化、公開鍵の生成。
※秘密鍵で暗号化というのは考えない。
●バージョン
Chromeデベロッパーツール>セキュリティ
●SSL/TLS証明書発行プロセス
サーバー管理者は、CSR(証明書署名要求)生成し、CA(認証局)に送付。
CSRには、公開鍵、組織情報などがDERエンコードされて含まれる。
↓
CAは、CSRをSHA-256でハッシュ化
↓
ハッシュに対して、中間CAの秘密鍵で署名※ルート証明書は直接使用しない
↓
CSRにデジタル署名を付加してサーバー証明書(X.509)を生成する。
↓
サーバーは、
・サーバー証明書(X.509) / .crt
・中間証明書 / .crt
・秘密鍵※CSR生成時、CSRに含まれる公開鍵とペアの秘密鍵 / .key
をインストール
※以下ハンドシェイク(TLSのバージョンによって違う)
・共通鍵生成
お互い、非公開パラメータと公開パラメータを生成し、公開パラメータを相手に送る。
・サーバーはクライアントに署名済証明書(中間CA証明書なども)を送付
・クライアントは署名済証明書に改ざんがないか検証
署名済証明書を検証鍵(公開鍵)で復号化し、CSRから計算したハッシュと、
復号化したハッシュを比較する。
※検証鍵はOS/ブラウザにインストールされている