ここではよく使われるサーバ認証SSL(HTTPSをイメージ)を前提にします。
SSLによる通信の暗号化は大雑把に、通信に利用するのは共通鍵方式、その共通鍵を受け渡す際は公開鍵方式の暗号化を行っています。

下記のような手順で行われます。
[note]

  • クライアントからサーバにアクセス
  • サーバはSSL証明書を提供
  • クライアントサイドでその証明書を検証後(本当はここが重要、後述)、信頼する場合、このセッションで利用する共通鍵(実際には共通鍵を作る種:プリマスタシークレット)をSSL証明書の公開鍵で暗号化してサーバに送信
  • サーバは管理してあるSSL証明書とセットの秘密鍵を用いて暗号化された共通鍵を取り出し、その後の通信をその共通鍵で暗号化して継続

[/note]
SSL証明書の鍵長と言っているのは、この公開鍵としての鍵長で、共通鍵はブラウザとサーバで共通に使えるアルゴリズムの中から最も安全なものが選ばれます。

コメント