キモブロ

Please spy check please, Fucking retard

PKIとSSLの仕組み

PKISSLの仕組みについてイマイチはっきり理解できていない感じがあったので調べた。ら、すっきり理解できて本当に良かった。

PKIの仕組み

登場人物

サーバー側から考えると、

  1. まず公開鍵と秘密鍵のペアを生成する
  2. 公開鍵を認証局に送付し、このファイルのハッシュ値認証局の秘密鍵で暗号化する。これをX509証明書と呼ぶ
  3. X509証明書を配信する

ユーザーの視点で考えると

  1. サーバーに接続する際に、サーバーからX509証明書をもらう
  2. 信頼している認証局の公開鍵を取りに行く(だいたいすでにbundleされてる)
  3. X509証明書の末尾に記載された、認証局により暗号化されたハッシュ値を(2)の公開鍵で復号し、ハッシュ値が正しいことを確認する。
  4. これによりサーバーの公開している公開鍵が、認証局により認証された時点の公開鍵と等しいことが確認できる。

SSLの仕組み

SSLはこれを利用した仕組みで完全に一緒。ただこのあとにさらに1ステップ増やす感じ。このPKIの問題点はサーバーからクライアントにデータ送るときは、サーバーの秘密鍵で暗号化したものを配信することになるので、ユーザーAもユーザーBも復号化できてしまうということ。それを解決するための1ステップ

  1. ユーザーは以降の通信を暗号化するための共通鍵を作成する
  2. 共通鍵を認証局により証明されたサーバーの公開鍵により暗号化し、サーバーに送付
  3. サーバー側は共通鍵をまず自身の秘密鍵により復号化、共通鍵を取り出す。
  4. 共通鍵を利用してサーバーとの通信を暗号化して行う

ぱっと思いつく問題点

・bundleされたルート証明書を書き換えられていた場合に中間者攻撃でつらいことになる