zkat’s diary

技術ブログ

CT(Certificate Transparency)ログサーバーに書き込める証明書

結論

RFC 6962によれば、ルートに信頼の連鎖がある証明書を登録することができるようです。
1. Informal Introduction

In order to avoid logs being spammed into uselessness, it is required that each chain is rooted in a known CA certificate.

3.1. Log Entries

Each submitted certificate MUST be accompanied by all additional certificates required to verify the certificate chain up to an accepted root certificate

ログサーバーへの証明書の書き込みは認証局以外も実施することができますが、以上の制約がある為、 悪意ある人が自己署名証明書を作成して、CTログサーバーに登録しまくるようなことはできません。

概要

適当なCTログサーバー(今回はあえてTesttubeというログサーバーにします)について、どんなルートにチェーンする証明書の登録を 許可しているか確認してみます。

Testtubeについての説明は、以下に記載される通りでテスト目的で運用されているログサーバーとなります。

www.certificate-transparency.org

These logs are intended for testing purposes only and will only log certificates that chain to a test root explicitly added to it.

調査

CTログサーバーが受け付ける、ルートの一覧は、次にアクセスすることで取得することができます: https://<log server>/ct/v1/get-roots
Testtubeであれば、https://ct.googleapis.com/testtube/ct/v1/get-rootsです。 アクセスすると、証明書のPEMデータがJSONで取得できるのでIssuer部分を表示してみます。

239件ありましたが、数件挙げてみます。

Issuer
C=AE,O=TEST UAE Government,CN=TEST UAE Global Root CA G4 E2
C=AE,ST=Dubai,L=Dubai,O=Dubai Government,OU=DESC,CN=Dubai Root CA TEST
C=AT,O=A-Trust Ges. fur Sicherheitssysteme im elektr. Datenverkehr GmbH,OU=A-Trust-Test-nQual-04,CN=A-Trust-Test-nQual-04
C=AT,O=Bundesrechenzentrum GmbH,OU=BRZ CA,CN=Test BRZ CA Root 2017
C=AT,ST=Wien,L=Wien,O=e-commerce monitoring GmbH,OU=GLOBALTRUST Certification Service,CN=ECM TEST 2015
C=AU,ST=ACT,L=Lyneham,O=Verizon,OU=IAM Operations,CN=TEST ROOT CA
C=BE,O=GlobalSign nv-sa,CN=GlobalSign Non-Public Root CA - R3 SIT
C=BE,O=GlobalSign nv-sa,CN=GlobalSign Root E46 - staging
C=BE,O=GlobalSign nv-sa,CN=GlobalSign Root R46 - staging

想定通り、ログサーバーからルート証明書を取得することができました。 なお、上述の通り、Testtube自体はテスト用のログサーバーなので、上記記載のルート証明書も広くクライアントが信頼しているようなものではありません。