TL; DR
- Certificate Transparencyという仕様にしたがって、発行したサーバ証明書のドメインは基本的に公開されます
- 存在を隠したいドメインにサーバ証明書を発行するときは、ワイルドカード証明書を使うか、そもそもドメインごと既存のものとは分けましょう
Certificate Transparencyとは
Certificate TransparencyはRFC 6962で定められています。
これはサーバ証明書を発行したら、証明書データベースに登録するというもの。データベースは修正不可で、いつ、どのドメインに、どの認証局から発行されたのかなどが登録されます。
不正にサーバ証明書が発行されたときに、すぐに気がつくようにするためデータベースは一般公開されています。
「秘密の」ドメインが公開されている
誰でも検索可能なデータベースなので、「秘密の」ドメインであっても容赦なく第三者から検索可能です。検索も以下のサイトから容易に実施できます。
検索されるとどのような問題があるのか
セキュリティ上の懸念
たとえば、第三者からは知られていない(ことになっている)ことだけでセキュリティを担保しているウェブサイト(社内向けサイトに時々ありますね)は、前提が崩れています。
SSL-VPNなど、外部には隠しておきたいドメインであっても公開されてしまいます。ここに脆弱性があれば、すぐに攻撃されてしまいます。
リリース前の情報が漏れる懸念
プレスリリースが出る前の製品が、取得した証明書から判明することがあります。サブドメインで新サービスを公開する場合、証明書はサイト公開前に発行されるため、意図せず情報が流出します。
実際、ドラクエウォークはプレスリリースの数日前からCT情報から名前だけ発覚していました。
対策
対策例として2種類の方法を挙げます。他にもよいアイデアがあれば教えてください。
ワイルドカード証明書を利用する(EV証明書以外)
ワイルドカード証明書を利用すれば、具体的なドメイン名を隠蔽できます。たとえば、newservice.example.com
というドメインで新サービスを提供するとき、*.example.com
というワイルドカード証明書を取得すれば、サービス名部分を隠蔽できます。
しかしEV証明書はワイルドカード証明書で発行できないため、この方法が使えません。また、ワイルドカード証明書はシングルドメインの証明書と比べて高額なので、コストの問題もあります。
新規ドメインを使う
そもそもドメインごと分けるという方法もあります。example.com
ドメインがすでに知られているのであれば、newservice.example.net
など新しいドメイン名を発行します。
この方法ならEV証明書でも発行可能です。社内向けドメインであれば問題がありませんが、ティザーサイトなどではSEOが難しい、よいドメインが取得できないかもしれないという問題もあります。
パス振り分けを使う
ティザーサイトならパス振り分けでもサイトを公開できます。この場合example.com/newservice/
というURLになります。この方法は既存FQDN内で提供されるためコストはかかりませんが、SSL-VPNなどでは利用できませんし、振り分けに使うLBへの負荷やルール数の問題があります。