NICTが脆弱なSSLサーバの検出システム「XPIA」を開発、分布を特定「共通の秘密鍵」を生み出さない、適切な乱数生成モジュールの利用を

情報通信研究機構(NICT)は2013年10月22日、Secure Socket Layer(SSL)の脆弱性を検証するシステム「XPIA」を開発したことを明らかにした。

» 2013年10月22日 20時09分 公開
[高橋睦美,@IT]

 情報通信研究機構(NICT)は2013年10月22日、Secure Socket Layer(SSL)の脆弱性を検証するシステム「X.509 certificate Public-key Investigation and Analysis system(XPIA)」を開発したことを明らかにした。

 XPIAは、SSLサーバが暗号化通信に利用しているX.509電子証明書からRSA公開鍵の情報を抽出し、脆弱性が存在しないかどうかを検証するシステムだ。XPIAでは、共通の秘密鍵を有しており、危険な状態のRSA公開鍵を使用しているSSLサーバのペアを地図上にグラフィカルに示すインターフェイスも用意している。

 NICTが実際にXPIAを用いて検証を行ったところ、脆弱な公開鍵を用いているSSLサーバが全世界で2600台以上発見されたという。ただし、インターネットバンキングやオンラインショッピングなど、直接金銭的な被害につながるようなサービスのサイトでは見つからなかった。

 RSAは、HTTPSなど暗号化通信で用いられるSSLにおいて、通信相手のサーバの身元を確認(認証)するために用いられている。その安全性の根拠は、2つの素数(秘密鍵)を掛け合わせて生成された大きな数(公開鍵)の、素因数分解の困難さにある。

 しかし2012年、あるセキュリティ研究者が、RSAの鍵生成時に利用する乱数の偏りなどが原因となって、同じ秘密鍵を含む公開鍵が多数生成され、SSLサーバ証明書に組み込まれていることを指摘した。いわば、秘密鍵の「使い回し」だ。もし、2つのRSA公開鍵に同じ秘密鍵が含まれていた場合、最大公約数を求めることによって簡単にその秘密鍵が暴かれ、SSLサーバ証明書の偽造などが可能となる。この結果、偽造された証明書を信じて、ユーザーが偽のサイトに誘導される、といったシナリオも考えられる。

 対策は、十分なエントロピーを持つ乱数生成アルゴリズムを用いて鍵生成を行うこと。米国立標準技術研究所(NIST)やIPAなどが推奨アルゴリズムを公表している。

 なお、脆弱性の報告当初は、世界のSSLサーバの0.4%に当たる2万台が危険にさらされているとされていたが、NICTがXPIAを用いて、SSL Observatoryに登録されているSSLサーバを対象に解析を行ったところ、少なくとも2600台を超えるSSLサーバが脆弱な公開鍵を利用していることが判明した。減少の原因としては、調査対象となったSSLサーバの母数の違いもあるが、NICTでは、証明書の期限が切れて使わなくなったサーバや、実際に脆弱性に対処したサーバも含まれていると見ている。

 NICTは今回の成果を、電子政府などにおいて、暗号技術を安全に利用するための指針として活用していく予定だ。さらに、XPIAを用いてSSLに対する新しい脅威を解析していくほか、適切なRSA公開鍵の生成法など、ネットワーク上での安全な通信を確保するための研究開発を進めていくという。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。