キモブロ

Please spy check please, Fucking retard

クライアント証明書

について調べた。なんかすっきりする説明が見つけられなかった。のでほとんど推測だけどこんな感じ?

サーバー視点でのシナリオ

  1. サーバーは秘密鍵と公開鍵を生成する
  2. 秘密鍵を認証局に送り、ファイルのハッシュ値認証局の秘密鍵で暗号化してもらう
  3. これをもらう
  4. この秘密鍵と認証局の暗号化したハッシュ値をまとめたものをクライアント証明書と呼ぶ
  5. クライアント証明書を特定のユーザー1人に安全な方式で渡す

クライアント視点でのシナリオ

  1. クライアント証明書を安全な経路で受け取る(リアルで会ってとか)
  2. クライアント証明書をブラウザにインストールする。このとき誰かにコピーされて気軽に使われにくくなるように共通鍵で暗号化し、HDD上に保存しておく風潮?

サーバーと接続するときのシナリオ

  1. クライアント証明書をHDDから復号化するためにパスワードを入力
  2. クライアント証明書がメモリ上に展開される
  3. クライアント証明書から、秘密鍵と認証局の発行した署名を取り出す
  4. 信頼している認証局から公開鍵を受け取る
  5. 公開鍵をもとに署名を復号化し、秘密鍵ファイルのハッシュ値を取得、秘密鍵が改ざんされていないことを確認する
  6. この秘密鍵を使ってなんらかの特定のフレーズを暗号化? そしてサーバーに送信する
  7. サーバーはこれを受け取り、公開鍵で復号化し、フレーズが一致してることを確認する?
  8. サーバーはクライアントを信頼出来ることがわかったので共通鍵を生成し、公開鍵で暗号化したあと送信する
  9. クライアントは秘密鍵でこれを復号化し、共通鍵を取得。
  10. 以後の通信をその共通鍵で暗号化された状態で行う。

んーよーわからん。