CT ログによる不正発行の検知
A 社は,自社の Web サイトのサーバ証明書を CA-X から取得している。他社で,DNS の管理アカウントを乗っ取った攻撃者が別の CA からその組織のドメイン名の証明書を取得した事例があったので,A 社は,どの CA から発行されたかにかかわらず,自社のドメイン名を含むサーバ証明書が発行されたことを早期に発見する仕組みを導入したい。最も適切なものはどれか。
- アCAA レコードに CA-X だけを登録し,CA-X 以外の CA には自社のドメイン名の証明書を発行させないようにする。
- イ公開されている CT ログを監視し,自社のドメイン名を含む証明書が新たに登録されたら通知を受けて,身に覚えがあるかを確認する。
- ウCA-X が公開する CRL を定期的に取得し,自社のドメイン名を含む証明書が掲載されていないかを確認する。
- エ自社の Web サーバが提示するサーバ証明書のフィンガープリントを定期的に取得し,登録済みの値と一致するかを確認する。
正解と解説を見る
正解 イ
この問題の基礎知識
- CT(Certificate Transparency)は,CA が発行した証明書を誰でも検証できる追記型の公開ログに登録させる仕組みであり,ドメイン名の保有者はログを監視して身に覚えのない発行を検知できる。
- CAA レコードは,そのドメイン名の証明書を発行してよい CA を DNS で指定するもので,CA が発行前に確認する予防策である。
- CRL は,CA(又は CRL 発行者)が署名して公開する失効済み証明書の一覧であり,失効していない証明書は載らず,他の CA が発行した証明書も通常は載らない。
- 不正な発行への対策は,発行させない予防策と,発行されたことを発見する検知策に分けて考える。
アCAA レコードに CA-X だけを登録し,CA-X 以外の CA には自社のドメイン名の証明書を発行させないようにする。
CAA は CA が発行前に確認する発行の制限(予防策)であり,発行された証明書を A 社が知る仕組みではない。DNS の管理アカウントを乗っ取られると CAA レコード自体を書き換えられるので,事例のような発行も防げない。
イ公開されている CT ログを監視し,自社のドメイン名を含む証明書が新たに登録されたら通知を受けて,身に覚えがあるかを確認する。正解
CT ログは,発行された証明書を誰でも検証できる追記型のログで公開し,証明書に記載された名前の保有者などが監視して不正な発行を検知できるようにする仕組みである。ログ自体は不正な発行を防がないが,どの CA の発行分でもログに登録されれば発見できる。
ウCA-X が公開する CRL を定期的に取得し,自社のドメイン名を含む証明書が掲載されていないかを確認する。
CRL は,発行した CA が失効させた証明書の一覧である。CA-X の CRL には他の CA が発行した証明書は載らず,失効していない不正な証明書も載らないので,不正な発行の発見には使えない。
エ自社の Web サーバが提示するサーバ証明書のフィンガープリントを定期的に取得し,登録済みの値と一致するかを確認する。
攻撃者は不正に取得した証明書を自らが用意した偽のサーバで使うので,A 社のサーバが提示する証明書は変わらない。自社サーバの証明書の差替えは検知できても,他所で使われる証明書は発見できない。
検証用の出典出典照合済み
RFC 6962 Certificate Transparency / RFC 8659 DNS Certification Authority Authorization (CAA) Resource Record / RFC 5280 Internet X.509 PKI Certificate and CRL Profile照合の根拠(7 件)
- イ(正解): CT ログは不正発行を防がないが,証明書に記載された名前の保有者などが不正発行を検知できるようにする
The logs do not themselves prevent misissue, but they ensure that interested parties (particularly those named in certificates) can detect such misissuance.
RFC 6962 · Section 1(新しいタブで開きます) - イ(正解): ログの新しいエントリを定期的に監視すれば,自分が責任をもつドメインに想定外の証明書が発行されていないかを確認できる
Those who are concerned about misissue can monitor the logs, asking them regularly for all new entries, and can thus check whether domains they are responsible for have had certificates issued that they did not expect.
RFC 6962 · Section 1(新しいタブで開きます) - イ(正解): 公的な CA は新たに発行した全ての証明書をログに登録することが想定されており,発行した CA を問わず監視できる
It is expected that public CAs will contribute all their newly issued certificates to one or more logs;
RFC 6962 · Section 1(新しいタブで開きます) - イ(正解): 不正発行の検知はドメインの保有者などによるログの監視に委ねられている
The logs do not themselves detect misissued certificates; they rely instead on interested parties, such as domain owners, to monitor them and take corrective action when a misissue is detected.
RFC 6962 · Section 7.2(新しいタブで開きます) - ア(誤り): CAA は CA が発行前に行う認可の制御であり,発行された証明書を A 社が知る仕組みではない
The distinction between CAA and TLSA is that CAA records specify an authorization control to be performed by a CA before issuing a certificate and TLSA records specify a verification control to be performed by a Relying Party after the certificate is issued.
RFC 8659 · Section 1(新しいタブで開きます) - ア(誤り): CAA レコードを書き換えられると,攻撃者は本来認可されていない CA から証明書を取得し得る
Suppression of a CAA record or insertion of a bogus CAA record could enable an attacker to obtain a certificate from an Issuer that was not authorized to issue for an affected FQDN.
RFC 8659 · Section 5.4(新しいタブで開きます) - ウ(誤り): CRL は CA(又は CRL 発行者)が署名した失効済み証明書の一覧であり,CA-X の CRL に他の CA の発行分や失効していない証明書は載らない
A CRL is a time-stamped list identifying revoked certificates that is signed by a CA or CRL issuer and made freely available in a public repository.
RFC 5280 · Section 3.3(新しいタブで開きます)
エ(誤り)は,問題文のとおり攻撃者は別の CA から取得した証明書を自ら用意したサーバで使うので,A 社のサーバが提示する証明書を監視しても発見できないことから論理的に排除される。