問題 39★★★

ブラウザは、Webサーバから受け取ったサーバ証明書が、信頼する認証局(CA)の 発行した本物であり、書き換えられていないことを確かめてから通信を始める。 公開鍵基盤(PKI)におけるこの確認の方法として、最も適切なものはどれか。

正解:ア

各選択肢の解説

  1. ア証明書に付けられた認証局のデジタル署名を、認証局の公開鍵で検証する。

    正解。認証局は自らの秘密鍵で証明書に署名します。その署名を認証局の公開鍵で 検証できれば、認証局が発行したもので、発行後に書き換えられていないと 分かります。認証局の公開鍵は、ブラウザが信頼する証明書から得ます。

  2. イ証明書に付けられた署名を、その証明書に記載されたサーバの公開鍵で検証する。

    誤り。これでは証明書を出してきた本人の鍵で本人を確かめることになり、 攻撃者が自作した証明書でも通ってしまいます。第三者である認証局の鍵で 検証するからこそ保証になります。誰の公開鍵で検証するかが分かれ目です。

  3. ウサーバから秘密鍵を受け取り、証明書に記載された公開鍵と対になるか調べる。

    誤り。秘密鍵は持ち主の外に出さない鍵で、相手に渡した時点で秘密でなくなります。 サーバが秘密鍵を持っていることは、鍵そのものを見せずに確かめる手順が別に あります。そもそもこれは証明書が本物かどうかの確認ではありません。

  4. エ証明書を認証局に送り、発行時に保管された控えと一致するか照合してもらう。

    誤り。本物かどうかは署名の検証によりブラウザの手元で判断でき、控えとの照合を 認証局に頼む必要はありません。認証局に問い合わせることがあるのは、 証明書が失効していないかの確認で、目的が異なります。

理解を深めるために

証明書の「印鑑」を確かめる

契約書が本物かどうかは、押された印鑑を印鑑証明と照らして確かめます。 契約書を作った役所に毎回持ち込むわけではありません。

公開鍵基盤(PKI)も同じ発想です。デジタル証明書には、発行した認証局の デジタル署名が付いています。これが印鑑に当たり、受け取った側は 認証局の公開鍵を使って、手元で検証できます。

検証で分かること

認証局は、証明書の内容から計算した値に、認証局の秘密鍵で署名を付けます。 ブラウザは次のように確かめます。

  1. 受け取った証明書の内容から、同じ方法で値を計算する
  2. 証明書に付いた署名を、認証局の公開鍵で検証する
  3. 両者が合えば、認証局が発行した後に書き換えられていないと判断する

認証局の秘密鍵を持たない攻撃者は、正しい署名を作れません。 証明書の中のドメイン名や公開鍵を1文字でも書き換えれば、検証が通らなくなります。

では認証局の公開鍵はどこから得るのか。認証局自身の証明書からです。 その証明書も上位の認証局の署名で確かめ、最後はブラウザやOSにあらかじめ 組み込まれたルート証明書に行き着きます。

混同しやすいものとの違い

検証に使う鍵・方法 結果
認証局の公開鍵で、認証局の署名を検証 第三者の保証になり、偽造や書換えを見破れる
サーバ自身の公開鍵で検証 自作の証明書でも通るので保証にならない
サーバの秘密鍵を受け取る 秘密鍵は外に出さないので成り立たない
認証局への問合せ 失効の確認で使うもので、本物かどうかの確認とは別

試験では「誰の鍵で検証しているか」を見ます。保証する第三者、つまり認証局の 公開鍵を使っている選択肢が正解です。

前の問題へ次の問題へ