Certificate Transparency (CT)とは
Certificate Transparency (CT:証明書の透明性)とは、 TLSで用いられる電子証明書について、 認証局による誤発行や悪意のある攻撃者などによる不正な発行を検知する仕組みであり、 Google社が提唱してRFC6962で標準化されています。
2011年頃、世界各地の認証局においてさまざまなセキュリティ上の問題となる事象が発生しました。 例えば、悪意のある攻撃者が認証局に侵入し不正な証明書を発行する、 認証局のリセラーが暗号強度の低い証明書を発行してしまう、 TLS通信の内容改ざんや監視などに利用できる下位ルート認証局を発行する、などです。 これらの事象において発行された証明書は、ユーザーにとっては正当な証明書と区別がつかず、 攻撃者があたかも正しいサイトであるかのように見える偽のサイトに接続させることで、 入力したデータなどの通信内容が傍受される危険性がありました。
こうした危険性を緩和する方法として考え出されたのがCTです。 CTでは認証局が証明書を発行する際に、第三者が運用するCTログサーバーに証明書を登録します。 この時、CTログサーバーから証明書に対してSigned Certificate Timestamp (SCT)と呼ばれるタイムスタンプが付与されます。 2017年12月現在、新たに発行される証明書は、このSCTを含んだものが増えつつあります。
CTを用いてサーバ証明書を検証する際には、まず証明書にSCTが含まれるかどうかを確認します。 もしSCTが無い場合は、CTでは真偽の判断を付けることができません。 SCTがあれば、それを元にCTログサーバに問い合わせを行います。 ここで検証に失敗した場合は、同一のホスト名を持つ偽の証明書である可能性があると判断できます。 ユーザーに接続しないように注意を促すことができると共に、 一般公開されているCTログサーバを監視することで、 偽の証明書に関する問題を発見できるとされています。
■参考
Certificate Transparency
https://tools.ietf.org/html/rfc6962
Certificate Transparency
https://www.certificate-transparency.org/