ネットワークの基礎
TLSで、ブラウザが接続先のサーバを「なりすましではない」と判断できる理由として正しいものはどれか。
- A証明書の中に暗号化に使う共通鍵が入っていて、それを知っているのは本物のサーバだけだから
- B証明書はサーバのIPアドレスに結び付けられていて、IPアドレスは偽ることができないから
- C証明書には信頼できる認証局の秘密鍵による署名があって偽造できず、さらにサーバはハンドシェイクで、証明書の公開鍵に対応する秘密鍵をもっていることを示す必要があるから
答えと解説を見る
正解:C. 証明書には信頼できる認証局の秘密鍵による署名があって偽造できず、さらにサーバはハンドシェイクで、証明書の公開鍵に対応する秘密鍵をもっていることを示す必要があるから
証明書は、「このドメイン名の公開鍵はこれである」という内容に、認証局(CA)が自分の秘密鍵で署名したものです。ブラウザはOSやブラウザに組み込まれたCAの公開鍵で署名を確かめるので、攻撃者は正しい署名を作れず、偽の証明書を作れません。ただし、本物の証明書は誰でも入手してそのまま提示できます。そこでTLSのハンドシェイクでは、サーバが証明書の公開鍵に対応する秘密鍵で署名を行い、その秘密鍵をもっていることを示します。実際の暗号化に使う共通鍵は、ハンドシェイクの鍵交換(ECDHEなど)でその都度作られ、証明書には入っていません。証明書は一般にIPアドレスではなくドメイン名に結び付けられています。
- A. 共通鍵は接続ごとに鍵交換で作られ、証明書には公開鍵が入っています。
- B. 証明書は一般にドメイン名に結び付けられ、IPアドレスで本物かを判断するわけではありません。
- C. 正しい。CAの署名で証明書の正しさを、秘密鍵による署名でサーバが持ち主であることを確かめます。