NSAのXKeyscoreに関するFAQ

この夏、NSA(国家安全保障局) の元契約社員であるエドワード・スノーデンは、NSAをはじめとする政府当局が運営する極秘の通信監視プログラム「PRISM」による電話傍受について内部告発したことで、一躍有名になりました。

英紙『ガーディアン』は7月31日、スノーデンが提供した資料を公開しました。この資料のなかには、パワーポイントで作成された2008年と2010年の極秘プレゼンテーションも含まれており、Xkeyscoreと呼ばれる国際的なインターネット監視ツールの存在が明らかになりました。

これらの資料は、スノーデンの発言を裏付けるものとなりました。

「デスクに向かって座っている私は、あなたやあなたの税理士、連邦判事、さらに大統領の通話でさえも盗聴できる権限を持っていた」

その後、NSAは正式なコメントを何度か公表し(Black Hatでの講演も含む)、メディアでも大々的に取り上げられ、さまざまな憶測も飛び交いましたが、全貌があやふやにされていることは否めません(難解な技術的特徴を簡単に解説しようと試みましたが事件の全貌は曖昧なままであり、また政治的見解によって事件に関する論争が歪められてしまいました)。

そこで、暴露された資料の分析・推論に基づき、あらゆる問題を浮き彫りにして明白で具体的な回答を提供することを目的に、このFAQを作成しました。

XKeyscoreによって何ができるか?

『ガーディアン』は、2008年のプレゼンテーションの全スライドを公開しましたが、2010年のプレゼンテーションはほとんど読み取ることができませんでした。スライドと『ガーディアン』の分析には若干の相違があるように思われますが、私たちは、Xkeyscoreには次のような機能があると確信しています。

  • アメリカ、およびおそらく同盟国政府のインターネット接続装置を経由するTCP(伝送制御プロトコル)のセッション(発信地・受信地がどこであるかは問わない)を傍受する
  • これらのセッションで特定の項目(メタデータ)を探し、分散型データベースでインデックスを作成。TCPセッションでは次のような項目を検出する
    • eメールアドレス
    • 電話番号
    • ファイル -Webメールの内容
    • チャットの内容 -クライアントサイドのHTTPトラフィック(ヘッダ情報、送信フォーム、検索語など)
  • 傍受されたTCPセッションを完全に記録し(プレゼンテーションの資料には、「すべてのデータを記憶」と明記されています)、上記メタデータごとにインデックスを作成し、 設定可能なフィルターに基づいてさまざまなデータベースにピラミッド状にして(つまり、ほとんどのデータは3日間保存され、わずかなデータだけがより長い期間保存される)一定期間保存する

Xkeyscoreの目的は何か?

NSAのアナリストは、さまざまな方法でデータベースに問い合わせを行うことができます。2つのプレゼンテーションのスライドでは、次のような例を紹介しています。

  • スウェーデン国内から過激主義フォーラムal-hisbah.comを閲覧する「すべての人」の情報(おそらく、IPアドレスおよび交差関連データ)を入手する
  • bbc.co.ukで「Musharraf」という語句を検索する「すべての人」の情報を入手する
  • 過去1カ月にわたるユーザーXのFacebookチャットを入手する
  • イラン国内からの暗号化されたすべてのWord文書を入手する
  • ドイツ語を使用し(ブラウザの設定などを参考)、パキスタンに在住する(geolocを参考)「すべての人」の情報を入手する
  • abujihad@yahoo.comで送受信されるすべてのeメールを入手する(eメール本文にアクセスできることはプレゼンテーションの資料では明記されず、スクリーン・ショットではヘッダと添付資料のみ表示されていますが、Facebookチャットにアクセスできることを考えると、eメール本文にアクセスできても不思議ではありません)
  • などなど...

「セレクタによる問い合わせ」(上記の問い合わせのように、セレクタがデータベース検索の基準となります)のほかに、NSAのアナリストは例外的な事象を取り出して、未発見の機密情報を明らかにすることもできます。

HTTPSのように暗号化されたトラフィックも傍受できるか?

1回目のプレゼンテーションは2008年に作成され、当時HTTPSはあまり一般的ではなく、またFacebookやTwitter、ウェブメールなどのサービスではHTTPSがデフォルトでなかったということを考慮する必要があります。

2013年では、HTTPオンリーのトラフィックの傍受は効果的ではないようですが、多くのユーザーが、EメールにはGmail、Yahoo、Hotmail、SNSやチャットにはFacebook(いずれもデフォルトでHTTPS接続)、検索エンジンにはGoogle(ログインしなくてもデフォルトでHTTPS接続)を利用するようになるでしょう。

私たちは、現時点においてHTTPSトラフィックを効果的に傍受するには3つしか方法がないと考えています。

  1. 対象となるドメイン(facebook.com、google.comなど)の秘密鍵を入手します。つまり、FacebookやGoogleなどの企業がそのキーを自発的または法的圧力(およびその他の圧力)によってNSAに明け渡したか、あるいはキーが盗まれた可能性があります。
  2. 対象ドメインへのセッションを介入者攻撃します。攻撃を成功させるには、google.comやfacebook.comなどのドメインの有効な証明書をNSAが保持している必要があります。つまり、証明機関(Symantec/VeriSign、GoDaddyなど)が自発的にNSAに署名したかキーがハッキングされたか、あるいはNSAのアナリストが署名アルゴリズムの衝突を発見した可能性があります。
  3. RSA暗号またはAES暗号を解読します。ブログ執筆時点では、2013年にこの行為が可能になることを証明または示唆する暗号学の文献は発表されていません。

これらの仮定はどれも確認することができず、またHTTPSトラフィックも暗号化されたその他のトラフィックも実際には解読されていません。

私はテロリストではないが、政府に監視されるのは耐えられない。どうしたらいいか?

HTTPS(および、通常はSSL)のトラフィックが実際には解読されていないとすると、企業ネットワークにおいてできる限りHTTPSサービスを利用し、社内のウェブサービス―特に、さまざまな部署のツールへのリモートアクセスを認めるサービスを設定しなければならないでしょう。この場合、適切な証明書(アルゴリズムおよび鍵長)を使用する必要があります。FortiGateでは、HTTPS要求のみを許可するための、アプリケーションコントロールのHTTPS構成をサポートしています。

一方、NSAがHTTPS/SSLトラフィックを傍受しているとすると、前述の3つの仮定のいずれか1つが妥当だという可能性があります。

  • 仮定1が妥当な場合: ひそかに監視されている外部サービス(FacebookやGoogleなど)へのアクセスを避けることはできません。ただし、自社サービスへのアクセスへの傍受を避けるには、自社ドメインの秘密キーを安全な場所に確実に保管しなければなりません。また、証明の管理を外部委託するために、CA(認証局)に秘密鍵を提供してはなりません。
  • 仮定2が妥当な場合:有効な証明書を「武器」にして、NSAが介入者攻撃をしかけることがあります。このような攻撃を避けるには、証明書ではなく事前共有キー(PSK)を使用して、仮想プライベートネットワーク(VPN)装置を認証します。Webサイトを運営している場合は、通常のクライアントとして接続し、証明書のフィンガープリントが適切であるかどうかをチェックする必要があります。また、証明書のフィンガープリントには何があってもMD5を使用しないでください(衝突のリスクがあります)。
  • 仮定3が妥当な場合:VPNまたはウェブサイトの認証に、より長い暗号キーを使用して暗号の解読を遅らせ、楕円曲線(EC)やSHA-3 (Keccak)といった比較的新しい解読標準を使用することができます。参考までに、アルゴリズムの信頼性について、私たちは次のような見解を持っています。
    • NSAは間違いなく、MD5およびDESを解読できる
    • NSAはおそらく、RSA‐768を解読できる
    • NSAはたぶん、SHA-1および3DESを解読できる
    • 状況によっては、NSAはRSAを解読できるかもしれない(小さいモジュロを使用した場合、タイミング攻撃またはサイドチャネル攻撃を行った場合)
    • 一定の暗号文について、NSAはスーパーコンピューターなどによってDHおよびECの解読を試みているかもしれない