本文へ
文字サイズ:小文字サイズ:標準文字サイズ:大
  • English Top

SSLの脆弱性を検証するシステム「XPIA」を開発

~RSA公開鍵に関する脆弱性の分布状況を分かり易く表示~

  • 印刷
2013年10月22日
ポイント

    • インターネット上での安全な通信を支えるSSLで使われているRSA公開鍵の脆弱性を検証
    • 脆弱なSSLサーバの分布状況を把握
    • インターネット上での安全な通信を支えるSSLの信頼性向上に寄与

独立行政法人 情報通信研究機構 (以下「NICT」、理事長:坂内 正夫) は、インターネット上での安全な通信を支えるSecure Socket Layer (以下「SSL」)の脆弱性を検証するシステムを構築しました。2012年、SSLに対する新しい脅威が報告され、世界中のSSLサーバの0.4%に当たる2万台以上が危険な状態にあることが明らかになりましたが、今般、NICTでは、SSLサーバの上記の脆弱性を検証するシステム「XPIA(エクスピア)」を開発し、現在危険な状態にあるSSLサーバの分布状況を把握することに成功しました。なお、本成果は、わが国の電子政府等において、暗号技術を安全に利用するための指針として活用される予定です。今後も、NICTでは、SSLに対する新しい脅威を解析していくほか、ネットワーク上での安全な通信を確保するための研究開発を進めていきます。

背景

SSLは、電子政府システムから、インターネットバンキング、オンラインショッピングなど国民生活の身近な所に至るまで、広く普及しているセキュリティシステムです。その一方でSSLの発展と普及に歩調を合わせるかのように、SSLに対する攻撃手法が日々進化し、巧妙化しています。2012年に、SSLで使われているRSA公開鍵に対する新たな脅威が公開され、2万台にも及ぶSSLサーバが危険にさらされていることが報告されました。この新たな攻撃手法による実際の脅威がどのようなものか、どのSSLサーバが危険な状態にあるかなど、報告されたセキュリティ上の脅威について、その実態を把握することが喫緊の課題となっていました。

今回の成果
今回開発した「XPIA」による脆弱性分布の表示例

今回開発した「XPIA」による
脆弱性分布の表示例

このたびNICTは、SSLの脆弱性を検証するシステム「XPIA(エクスピア)」を開発しました。これは、インターネット上で公開されているSSLサーバの公開鍵証明書について、そのセキュリティ上の脆弱性を検証するシステムです。本システムにより、SSLサーバで用いられている公開鍵証明書の脆弱性を速やかに検証できるとともに、脆弱なSSLサーバを特定することができます。
今回、XPIAを用いてSSLサーバから収集した公開鍵証明書から抽出したRSA公開鍵の脆弱性を検証したところ、少なくとも世界中で2,600台を超えるSSLサーバが脆弱な公開鍵を現時点でも利用していることが分かりましたが、本調査の範囲内では、脆弱な公開鍵を使用しているインターネットバンキングやオンラインショッピングなどのサービスサイトは見つかりませんでした。

今後の展望

今回の成果により、SSLに対する新たな攻撃手法による実際の脅威を把握できただけではなく、この問題の根本原因であるRSAの公開鍵を含む、鍵生成方法等における実利用において諸課題があることが分かりました。NICTでは本システムを活用してSSLに対する新しい脅威を解析していくほか、RSAの公開鍵の生成法等、ネットワーク上での安全な通信を確保するための研究開発を進めてまいります。なお、本成果は、わが国の電子政府等において、暗号技術を安全に利用するための指針として活用される予定です。



補足資料

ネットワーク上で通信相手を認証するしくみ

図3に示すように、ネットワーク上で通信相手の身元を確認(認証)する仕組みを公開鍵認証基盤 (Public-Key Infrastructure: PKI) といい、図3右に示すように、認証局が発行した公開鍵証明書を身分証明書として利用します。公開鍵証明書には公開鍵とその所有者の名前、証明書の発行者や有効期限といった情報が記述されています。この仕組みはインターネット上での暗号化通信規格として有名なSSL (Secure Sockets Layer)やTLS(Transport Layer Security)というプロトコルでも利用されています。Webブラウザがhttps(TLSやSSLを使ったhttp)を使ってWebサーバと通信を行う際、WebサーバとWebブラウザは公開鍵証明書の交換を行い相手の証明書を検証します。

図3 ネットワーク上で通信相手を認証する仕組み (公開鍵認証基盤)
図3 ネットワーク上で通信相手を認証する仕組み (公開鍵認証基盤)
SSLで使われているRSA公開鍵への新たな脅威

RSA暗号では暗号化と復号に秘密鍵と公開鍵の鍵ペアを利用します。鍵生成は、まず、大きな2つの素数 p, qを生成して秘密鍵とし、pqの積を計算したものを公開鍵nとします。この公開鍵は公開鍵証明書に記載されて公開され、SSLサーバ認証等に利用されています。 公開鍵証明書を見ても公開鍵nから秘密鍵p, qを求めること(素因数分解)はできません。しかし、例えば公開鍵証明書を集めてきて、そのうち2枚の公開鍵証明書に記載されている公開鍵n1, n2が共通の素数qを使って生成されていた場合、ユークリッドの互除法を用いてn1n2の最大公約数qを簡単に求めることができます。この結果、公開鍵n1, n2は容易に素因数分解できてしまい、秘密鍵が暴かれてしまいます。

図4 SSLで使われているRSA公開鍵への新たな脅威
図4 SSLで使われているRSA公開鍵への新たな脅威



用語 解説

SSL(Secure Socket Layer)

インターネット上での暗号化通信規格。現在インターネットで広く使われているWWWやFTPなどのデータを暗号化し、プライバシーに関わる情報やクレジットカード番号、企業秘密などを安全に送受信することができる。

SSLに対する新たな脅威

現在、インターネット上での安全な通信を支えているSSLでは、通信相手のサーバが本物であるかどうかの確認(認証)などに公開鍵暗号RSAが利用されている。昨年、ヘニンガー(Heninger)らのチームとレンストラ(Lenstra)らのチームによって独立に、RSAの鍵生成時に利用する乱数の偏り等が原因で、同じ秘密鍵(素数)を含む公開鍵が多数生成され、SSLサーバ証明書に組み込まれて利用されていることが報告された。RSAの安全性を支える大きな数の素因数分解は難しい問題と考えられているが、2つの大きな数の最大公約数を求めることは容易であり、2つのRSA公開鍵に同じ秘密鍵(素数)が含まれていた場合、最大公約数を求めることで簡単にその秘密鍵が暴かれてしまう。秘密鍵が暴かれることにより、SSLサーバ証明書の偽造などが可能となる。

XPIA (エクスピア)

「XPIA」は、X.509 certificate Public-key Investigation and Analysis systemの略で、SSL等で使われているRSA公開鍵の脆弱性を検証するシステムである。今回開発したシステムでは、図1に示すように、IPv4アドレス空間において入手可能なSSLサーバから収集したX.509公開鍵証明書からRSA公開鍵を抽出して解析を行い、素因数分解可能な公開鍵のリストとその公開鍵を有するSSLサーバのIPアドレスのリストが得られる。

図1 「XPIA」におけるRSA公開鍵の解析方法の概要
図1 「XPIA」におけるRSA公開鍵の解析方法の概要

本システムの可視化機能を用いれば、脆弱性分布状況を地球儀表示で表すことができる。XPIAでは、互いに共通の素数を共有しているために素因数分解できる危険な状態のRSA公開鍵を使用しているSSLサーバのペアのIPアドレスを得ることができる。このようなSSLサーバ間を赤い線で結んで図示した例を図2に示す。図2左は、日本にあるSSLサーバと他国のSSLサーバ間での共通の素数の共有状況を示し、図2右は、米国にあるSSLサーバと他国のSSLサーバ間での共通の素数の共有状況を示している。

図2 今回開発した「XPIA」による脆弱性分布の表示例
図2 今回開発した「XPIA」による脆弱性分布の表示例
(左図は日本側から、右図は米国側から見た図)
共通する素数(秘密鍵)が共有されて危険な状態になっているSSLサーバ間が、赤い線で結ばれている。
RSA

1977年にリベスト(Rivest)、シャミア(Shamir)、エーデルマン(Adleman)により発表された公開鍵暗号で、発明者3名の頭文字をとってRSA暗号と呼ばれる。RSA暗号では暗号化と復号に秘密鍵と公開鍵の鍵ペアを利用する。2つの大きな素数p, q を生成して秘密鍵とし、その積pqを公開鍵として公開する。公開鍵から秘密鍵を求める(pqを素因数分解してpとqを求める)ことが困難であることがRSA暗号の安全性の根拠となっている。



本件に関する 問い合わせ先

ネットワークセキュリティ研究所
セキュリティ基盤研究室

盛合 志帆
Tel: 042-327-6217
E-mail:

広報 問い合わせ先

広報部 報道担当

廣田 幸子
Tel:042-327-6923
Fax:042-327-7587
E-mail: