資格道場 › レッスン一覧 › セキュリティ
セキュリティ・5/23・12分

認証局(PKI)とディジタル証明書

ゴール

認証局(CA)が何をして何をしないのかを説明でき、CRL・サーバ証明書の検証・クライアント証明書・TLSの証明書のやり取りの順序を問う過去問を自力で解けるようになる。

前のレッスンのディジタル署名には「その公開鍵は本当に本人のものか?」という弱点が残ります。その弱点を埋めるのが認証局で、HTTPS の鍵マークも社内 VPN の端末認証もこの仕組みで動いているので、試験では「認証局の役割はどれか」がよく出ます。

このレッスンで稽古する(用語チェック・過去問)

結論:認証局は「この公開鍵は本人のもの」と保証する

認証局(CA)は、利用者やサーバの公開鍵に「この鍵はこの人(このサーバ)のものです」というお墨付きを付けて、ディジタル証明書を発行する第三者機関です。もう一つの仕事は、取り消した証明書の一覧(CRL)を出すことです。試験で問われる役割はこの2つだけなので、まずここを覚えます。

たとえるなら、認証局は役所の印鑑登録です。役所は「この印影は確かに竹村さんのもの」と証明する印鑑登録証明書を出しますが、印鑑そのものは預かりませんし、書類に代わりに押すこともしません。

なぜ認証局が要るのか

ディジタル署名は「公開鍵で検証できたら本人の署名」という仕組みでした。しかし、攻撃者が自分の公開鍵を「A社の公開鍵です」と言って配ったら、偽の署名もそのまま通ってしまいます。

そこで、みんなが信頼する認証局が公開鍵と持ち主の名前をセットにして自分で署名したものを発行します。これがディジタル証明書です。こうした仕組み全体を PKI(公開鍵基盤) と呼びます。

証明書ができるまでA社の名前A社の公開鍵認証局(CA)セットにして署名ディジタル証明書持ち主:A社公開鍵:A社の公開鍵CAのディジタル署名攻撃者が配る「A社の公開鍵」CAの署名がない → 信用されない
認証局が公開鍵と持ち主の名前をセットにして署名したものがディジタル証明書。CAの署名がない鍵は信用されない。

認証局がすること・しないこと(最頻出)

選択肢は「認証局がしそうに見えて、実はしないこと」で埋められます。次の表の右側の列が、そのままひっかけの選択肢です。

認証局がすること ✅ 認証局がしないこと ❌(ひっかけ)
公開鍵を証明するディジタル証明書を発行する 秘密鍵を証明する証明書を発行する
失効した証明書の一覧(CRL)を発行する 利用者の秘密鍵・共通鍵・パスワードを管理または生成する
証明書に自分(CA)の署名を付ける 利用者のメール本文に代わりに署名を付ける
正確な時刻を配る(これは時刻認証局・NTP の仕事)
データを暗号化する・改ざんを検証する(これは利用者側の処理)

見分け方:「秘密鍵」という言葉が出たら疑ってください。秘密鍵は本人しか持たないもので、認証局は預かりも証明もしません。

ディジタル証明書の中身とCRL

証明書には主に次のものが入っています。持ち主の名前(サーバならFQDN)・持ち主の公開鍵・有効期間・シリアル番号(証明書ごとの通し番号)・発行した認証局の名前・認証局のディジタル署名です。

CRL(証明書失効リスト) は、有効期間内なのに無効になった証明書のシリアル番号を並べたリストです。秘密鍵が漏れた、社員が退職した、といった理由で期限前に取り消した証明書が載ります。「スパムの送信元」や「アクセス権限」の一覧ではありません。

リスト 載るもの
CRL 有効期間内に失効した証明書のシリアル番号
ブラックリスト(スパム対策) 迷惑メールの送信元・不正に中継するドメイン
アクセス制御リスト(ACL) 誰が何にアクセスしてよいかという権限
有効期間の途中で失効する秘密鍵が漏れた・退職有効期限前に失効発行有効期限CRL失効した証明書のシリアル番号CRLに載らないスパム送信元・権限
有効期間の途中で取り消された証明書のシリアル番号がCRLに載る。

サーバ証明書の検証には「認証局の公開鍵」を使う

ブラウザ(PC)がサーバ証明書を受け取ると、証明書に付いている認証局の署名を、認証局の公開鍵で検証します。検証に成功すれば「この証明書は本物で、中に入っているサーバの公開鍵も本物」と分かります。認証局の公開鍵は、あらかじめブラウザや OS にルート証明書として組み込まれています。

flowchart LR
  A["サーバ証明書を受け取る"] --> B["認証局の公開鍵で署名を検証"]
  B --> C["FQDNが接続先と一致するか確認"]
  C --> D["サーバの公開鍵を信頼して共通鍵をやり取り"]
鍵 PC が何に使うか
認証局の公開鍵 サーバ証明書が正当かどうかを検証する
サーバの公開鍵(証明書の中身) 通信で使う共通鍵の材料を暗号化してサーバに送る

ひっかけは「認証局の公開鍵で共通鍵や入力データを暗号化する」という選択肢です。認証局は通信の当事者ではないので、認証局の鍵で通信の中身を暗号化することはありません。

サーバ証明書には FQDN が入る

SSL/TLS を使う Web サーバの証明書には、そのサーバの FQDN(www.example.co.jp のような完全なドメイン名) が書き込まれます。ブラウザは、接続先の FQDN と証明書の FQDN が一致するかを確認します。

あわせて覚えておくこと:SSL/TLS はトランスポート層とアプリケーション層の間で動き、Web 以外(メールなど)にも使えます。「ネットワーク層」「Web 専用」と書かれた選択肢は誤りです。

クライアント証明書:端末や人を確かめる

証明書はサーバだけでなく、利用者の PC やスマートフォンにも入れられます(クライアント証明書)。社内システムは、それを見てアクセスを許可した端末かどうかを確認できます。

ただし、証明書で分かるのは「誰(どの端末)か」だけです。ウイルスに感染していないか、OS やアプリが最新かは分かりません。社員証を見れば本人かどうかは分かっても、健康状態までは分からないのと同じです。

サーバ証明書 クライアント証明書
誰が持つ Web サーバ 利用者の PC・スマートフォン
誰が確かめる ブラウザ(PC) サーバ(社内システム)
分かること 本物のサーバであること 許可された端末・利用者であること

TLS のクライアント認証は「サーバが先に名乗る」

クライアント認証付きの TLS では、① サーバがサーバ証明書を送る → ② クライアントがクライアント証明書を送る → ③ サーバがクライアントを認証する、の順に進みます。お店の窓口で、まず店員が社員証を見せ、次に客が会員証を出し、店員が会員証を確認する流れと同じです。

覚え方は「サーバが先に名乗り、認証は証明書を受け取った後」です。証明書を受け取る前に認証することはできません。

クライアントサーバ① サーバ証明書② クライアント証明書③ 認証する受け取った後サーバが先に名乗る
クライアント認証付きTLSは、サーバが先に証明書を送り、受け取った後にサーバがクライアントを認証する。

認証局が乗っ取られたら:その認証局を信頼しない

認証局が攻撃されて不正な証明書が出回り、どれが不正か分からないときは、ブラウザでその認証局を「信頼しない」設定にし、証明書エラーが出たサイトにはアクセスしないのが利用者側の対策です。

不正な証明書も有効期限内で、正規の認証局の署名が付いています。そのため、有効期限・Whois・CP(認証局の運用方針)を確認しても見分けられません。

試験での問われ方

  • 「認証局の役割はどれか」:正解は「公開鍵の証明書を発行」「失効リスト(CRL)を発行」のどちらか。秘密鍵・共通鍵・パスワード・時刻・メールへの署名が出てきたら誤り
  • 「認証局の公開鍵で何をするか」:正解は「証明書の正当性を検証」。暗号化・復号の選択肢は誤り
  • 「CRL に載るもの」:「有効期間内に失効した証明書のシリアル番号」
  • 「端末に証明書を入れると何が分かるか」:「許可された端末であること」だけ
  • 「TLS の順序」:サーバ証明書 → クライアント証明書 → 認証(b→a→c)
例題 1

TLS クライアント認証の順序を並べる

TLS のクライアント認証における次の処理 a ~ c について,適切な順序はどれか。
処理処理の内容
aクライアントが,サーバにクライアント証明書を送付する。
bサーバが,クライアントにサーバ証明書を送付する。
cサーバが,クライアントを認証する。

ア a → b → c
イ a → c → b
ウ b → a → c
エ c → a → b

出典:基本情報技術者試験 科目A免除 修了試験 20250126 実施分 問33

解き方と答えを見る
  1. 処理を整理する。a=クライアントがクライアント証明書を送る、b=サーバがサーバ証明書を送る、c=サーバがクライアントを認証する。
  2. 最初に来るのはどれかを考える。TLS では、接続を受けたサーバがまず自分の身元を示すので、b が先頭になる。
  3. c(認証)は、確認する材料のクライアント証明書を受け取った後でしかできない。したがって a は c より前に来る。
  4. 並べると b → a → c になる。
  5. 選択肢の中から b → a → c を選ぶ。

答え:ウ(b → a → c)

例題 2

認証局の公開鍵で何をするかを見極める

A 社の Web サーバは,サーバ証明書を使って TLS 通信を行っている。PC から A 社の Web サーバへの TLS を用いたアクセスにおいて,当該 PC がサーバ証明書を入手した後に,認証局の公開鍵を利用して行う動作はどれか。

ア 暗号化通信に利用する共通鍵を,認証局の公開鍵を使って復号する。
イ 暗号化通信に利用する共通鍵を生成し,認証局の公開鍵を使って暗号化する。
ウ サーバ証明書の正当性を,認証局の公開鍵を使って検証する。
エ 利用者が入力して送付する秘匿データを,認証局の公開鍵を使って暗号化する。

出典:基本情報技術者試験 科目A免除 修了試験 20211212 実施分 問35

解き方と答えを見る
  1. 誰の鍵かを確認する。問われているのは「認証局の」公開鍵で、サーバの公開鍵ではない。
  2. 認証局は通信の当事者ではないので、PC とサーバの間の共通鍵や入力データを認証局の鍵で暗号化・復号することはない。これでア・イ・エを外す。
  3. サーバ証明書には認証局のディジタル署名が付いている。署名は署名した人の公開鍵で検証する(前のレッスンの復習)。
  4. したがって、認証局の公開鍵の使い道は「サーバ証明書の署名を検証して、正当かどうかを確かめること」になる。

答え:ウ(サーバ証明書の正当性を、認証局の公開鍵を使って検証する)

要点(試験直前に読む)

  • 認証局の役割は2つ:「公開鍵の」証明書を発行することと、CRL(失効リスト)を発行すること。秘密鍵・共通鍵・パスワード・時刻は扱わない。
  • CRL に載るのは「有効期間内に失効した証明書のシリアル番号」。
  • PC は「認証局の公開鍵」でサーバ証明書の署名を検証する。暗号化には使わない。
  • サーバ証明書には FQDN が入る。SSL/TLS は Web 以外にも使える。
  • クライアント証明書で分かるのは「許可された端末であること」だけ。TLS の順序はサーバ証明書 → クライアント証明書 → 認証。
  • 認証局が侵害されたら、ブラウザでその認証局を信頼しない設定にし、証明書エラーが出たらアクセスしない。

ひっかけ

  • 「秘密鍵を証明する証明書」「秘密鍵・共通鍵・パスワードを管理する」→ 秘密鍵は本人しか持たないので、認証局の役割ではない。
  • 「認証局の公開鍵で共通鍵や入力データを暗号化・復号する」→ 認証局の公開鍵の用途は、証明書の署名を検証することだけ。
  • 「証明書でウイルス感染や最新パッチの適用まで分かる」→ 証明書が示すのは身元だけで、端末の状態は分からない。
  • 「クライアントが先に証明書を送る」→ TLS ではサーバが先に名乗る。認証は証明書を受け取った後。
  • 「有効期限・Whois・CP を見れば不正な証明書を見分けられる」→ 不正な証明書も正規の認証局の署名付きなので見分けられない。認証局ごと信頼を外す。

用語(13)

PKI Public Key Infrastructure(公開鍵基盤)
認証局とディジタル証明書を使い、公開鍵が本当に本人のものかを保証する仕組み全体。
認証局 CA:Certificate Authority
公開鍵と持ち主を結びつけるディジタル証明書を発行し、失効した証明書の一覧を出す、信頼された第三者機関。
⚠ 時刻認証局(TSA)は時刻を証明する別の機関。認証局は秘密鍵やパスワードを管理しない。
ディジタル証明書 でぃじたるしょうめいしょ
持ち主の名前・公開鍵・有効期間・シリアル番号などに、認証局が署名したデータ。
⚠ 証明するのは「公開鍵」。「秘密鍵を証明する」と書かれていたら誤り。
公開鍵 こうかいかぎ
誰に配ってもよい鍵で、署名の検証や、持ち主宛ての暗号化に使う。
⚠ 秘密鍵は本人だけが持ち、署名と復号に使う。認証局が証明するのは公開鍵だけ。
秘密鍵 ひみつかぎ
本人だけが持つ鍵で、署名の作成や、自分宛ての暗号文の復号に使う。
⚠ 認証局は秘密鍵を預かることも証明することもしない。
CRL Certificate Revocation List(証明書失効リスト)
有効期間内なのに失効したディジタル証明書のシリアル番号を、認証局がまとめて公開するリスト。
⚠ スパム送信元のブラックリストや、アクセス権限のリスト(ACL)とは別物。
シリアル番号 しりあるばんごう
認証局が証明書ごとに付ける通し番号で、CRL で失効した証明書を特定するのに使う。
ルート証明書 るーとしょうめいしょ
最上位の認証局が自分自身に発行した証明書で、ブラウザや OS に組み込まれ、信頼の起点となる。
⚠ 認証局が侵害されたときは、このルート証明書の信頼を外す(その認証局を信頼しない設定にする)。
サーバ証明書 さーばしょうめいしょ
Web サーバの FQDN と公開鍵を認証局が証明する証明書で、ブラウザが本物のサーバかどうかを確かめるのに使う。
⚠ クライアント証明書は利用者側の端末に入れるもので、確かめるのはサーバ側。
クライアント証明書 くらいあんとしょうめいしょ
利用者の PC やスマートフォンに入れる証明書で、サーバが許可された端末・利用者かどうかを確認するのに使う。
⚠ ウイルス感染の有無やパッチの適用状況は分からない。
FQDN Fully Qualified Domain Name(完全修飾ドメイン名)
www.example.co.jp のようにホスト名まで含めた完全なドメイン名で、サーバ証明書に書き込まれる。
SSL/TLS Secure Sockets Layer / Transport Layer Security
証明書でサーバを確認し、通信を暗号化するプロトコルで、トランスポート層の上で動き Web 以外にも使える。
⚠ 「ネットワーク層」「Web サーバ専用」と書かれた選択肢は誤り。
CP Certificate Policy(証明書ポリシー)
認証局が証明書をどのような方針で発行・運用するかを定めた文書。
⚠ CP を読んでも、侵害された認証局が出した不正な証明書は見分けられない。

このレッスンの過去問

このレッスンで稽古する