CA/ブラウザフォーラムで議論されている「ブラジルの著名銀行へのDNS攻撃」インシデントの予防策

ニュースソース:CA/Browser Forum

以下は CA/Browser Forumのメーリングリストで2017年4月6日から意見が交わされているBrazilian bank DNS heistスレッドを要約したものです。


テーマはDNSが攻撃者に支配されてしまってもSSL/TLSサーバ証明書側でフィッシングを防ぐ方法があるかです。

問題の根本は、ドメインの真の所有者が承認していないSSL/TLSサーバ証明書が発行されてしまうことにあります。
SSL/TLSサーバ証明書には、ドメイン認証・組織認証・EVの3種類があります。
ドメイン認証の証明書はDNS登録を根拠として発行されるので、DNSが第三者に支配されてしまうと、証明書は第三者に対して発行されてしまいます。
しかし誤発行も考慮すると、組織認証・EVでも、不正な証明書の発行自体を完全に防ぐことはできません。
SSL/TLSサーバ証明書の誤発行・不正利用を防ぐ方法としては以下が用意されています。

  • CAA ———- DNS に証明書を発行できる認証局 (CA) をあらかじめ登録しておく方法
  • CT ———– 発行された証明書を公開データベースに登録する方法
  • PINNING —— サイトで利用する証明書情報をピン留めする方法

DNSが攻撃者に支配されている状態では、DNS登録情報を利用するCAAでは証明書の誤発行を防ぐことはできません。
CTは現時点では一部の認証局(CA)が証明書発行後に登録を行っている状態で、誤発行の発見には効果がありますが、悪意を持った誤発行を防ぐには無力です。
PINNINGは通常のWebサーバーとクライアント間の鍵交換に加えて公開鍵のハッシュ値をクライアントに通知します。PINNINGに対応したブラウザ、ChromeとFirefoxはアクセスしたサイトの公開鍵のハッシュ値を記録し、次回アクセスした時点でハッシュ値が一致する公開鍵が見つからない場合は、不正な鍵が使われていると判断します。

このスレッドでGoogleのRyan Sleevi氏は、PINNING「Public Key Pinning Extension for HTTP (HPKP)」が証明書の不正利用防止に有効だと主張しています。
他の投稿者からは、PINNINGは誤設定や障害復旧が困難なことから懸念が表明されています。
これに対しRyan Sleevi氏は、そうした問題はPINNING設定の技術力不足に起因するもので、PINNINGそのものに欠陥があるわけではないと述べています。

Ryan Sleevi氏が提案するように、EV証明書専用の中間証明書を用意し、これを利用したPINNINGシステムを的確なインストール方法とセットで提供する認証局(CA)が現れれば、銀行のWebのように社会的影響力の大きなサイトはそれを採用し犯罪を未然に防ぐことができるでしょう。