メインコンテンツへ
セキュリティ

TLS 1.3のハンドシェイクにおいて、クライアントとサーバが「セッション鍵」を合意する仕組みとして正しいものはどれか。

ア.クライアントがセッション鍵を生成しサーバの公開鍵で暗号化して送信する。サーバは自身の秘密鍵で復号してセッション鍵を取得する。
イ.クライアントとサーバが各自の鍵ペア(または一時的なDH鍵ペア)を使ってDiffie-Hellman鍵交換を行い、どちらも独立に同じセッション鍵を導出する。正解
ウ.認証局(CA)がクライアントとサーバの間に立ってセッション鍵を生成し、双方に安全に配布する。
エ.ハンドシェイクごとにセッション鍵はMD5で生成されるため、安全性は鍵長に依存しない。

解説

DH鍵交換は「公開の場で色を混ぜても秘密の色が作れる」マジック。二人が公開情報を交換するだけで、傍聴者には分からない共通の「秘密の色(セッション鍵)」に同時に到達できる。

なぜ イ が正解か

イが正解。TLS 1.3はRSA鍵交換を廃止し、ECDHE(楕円曲線Diffie-Hellman Ephemeral)のみを鍵交換方式として採用。①クライアントとサーバが一時的な公開鍵を交換②双方が自身の秘密鍵と相手の公開鍵を使って同じプリマスタシークレットを独立計算③プリマスタシークレットからセッション鍵を導出。「Ephemeral」(一時的)鍵により前方秘匿性(PFS)を実現。

なぜ ア は間違いか

「クライアントがセッション鍵を生成してサーバ公開鍵で暗号化」はTLS 1.2以前のRSA鍵交換(鍵転送)方式。TLS 1.3では廃止され、前方秘匿性がない問題が解消された。

なぜ ウ は間違いか

CAは証明書発行機関であり、セッション鍵の生成・配布には関与しない。CAが中間者として介在するとエンドツーエンド暗号化の意味がなくなる。

なぜ エ は間違いか

TLSでMD5を鍵生成に使うのはTLS 1.0/1.1時代の遺物。TLS 1.3ではHKDF(HMAC-based Key Derivation Function)とSHA-256/384を使用。

出典: AI生成問題(学習用)