暗号工学に関するいくつかの考え

数週間前、私は現代の暗号化標準を覆すためのNSAの「BULLRUN」プロジェクトについ 私は問題を詳細に議論する時間がなかったので、ある時点でこれに戻ることを意図していました。 しかし、その後、物事が邪魔になりました。 多くのこと、実際に。 そのうちのいくつかは、私は近い将来に約書くことを願っています。

しかし、私がそこに着く前に、そしてあなたたち全員を涙で退屈させる危険性があるので、私は私を悩ませている質問について少し教皇になるために、

NSA BULLRUNブリーフィングシートには、NSAがかなりの数の暗号化技術を破っていることが記載されています。 これらの技術の1つは、NSAがどのようにしてそれをやっているのか理解できないので、私にとって特に驚くべきことです。 この非常に長い記事では、今日のインターネットが直面している最も重要な質問に少し深く掘り下げることを試みるつもりです。

具体的には、NSAはどのようにSSLを破っていますか?

BULLRUNブリーフィングシートのセクション。 出典:ニューヨーク・タイムズ。

物事を目標に保つために、私はいくつかの基本的な基本ルールを作るつもりです。

まず、私はNSAがあなたのコンピュータにマルウェアをインストールし、あなたが選択した任意の暗号をpwnできることをよく知っています。 それがうまく拡張されないという単純な理由から、それは私にはまったく興味がありません。 NSAはあなたにこれを行うことができますが、彼らは全体の人口のためにそれを行うことはできません。 そして、それは本当に最近のリークについて私に関係するものです:NSAが大量監視の目的のために暗号化を破っている可能性。

同じ理由で、中間者(MITM)攻撃について心配するつもりはありません。 NSAがこれらを実行していることはわかっていますが、非常に標的型攻撃でもあります。 あなたが大規模にそれらを行う場合Mitmが検出可能であるだけでなく、彼らはNSAが大規模な傍受を行う方法について私たちが知っているものとcomportしません-主にビームスプリッタとタップを介して。 つまり: 私たちは受動的な監視について本当に心配しています。

もちろん、上記のルールは絶対的なものではありません。 大規模なwebサイトへのトラフィックの復号化など、大量のトラフィックの受動的な復号化を後で許可する場合、サーバーに対する制限された標的型攻撃 我々はまた、ソフトウェアとハードウェアへの任意の変更を検討します—私たちはNSAがすでにやっていることを知っています。

最後のポイント:物事がレールから外れないようにするために、私はこの記事を二つのセクションに分けました。 最初は、既知の技術のみを使用する攻撃をカバーします。 このセクションのすべては十分なgumptionとソフトウェアへのアクセスを持つTAOの従業員によって実装することができます。 新しいサイドチャネル攻撃からNSAがBWIの隣に保持している巨大な量子コンピュータに至るまで、私は”Tinfoil Hat Spectrum”と題された第二のセクションでは、楽しさと投機的なものをカバーしています。

まず、”実用的”から始めましょう。

既知の技術を使用する攻撃

RSA鍵の盗難。 SSLを”クラック”する最も明白な方法は、実際には何かをクラックすることはありません。 あなただけの鍵を盗むことができるときに、なぜ暗号解読に時間とお金を無駄にしますか? この問題は、TLS RSAハンドシェイク用に構成されたサーバーで特に懸念されており、128バイトの単一のサーバーキーが、デバイスから行われた過去と将来のすべての接続を復号化するために必要なすべてです。

実際、この手法は非常に明白であるため、NSAが洗練された暗号解析攻撃に多くのリソースを費やしていると想像するのは難しいです。 私達はgchqおよびNSAが海外の米国の提供者をsuborning完全に快適であることを知っています。 そして、私たちの国境の中で、彼らは召喚状の力とギャグの命令を使用してTLS/SSLキーを取得する意欲を実証しました。 主要なwebサイトへのRSA接続を使用している場合は、キーが既に知られていると想定するのが賢明かもしれません。

もちろん、NSAが直接対策に頼らない場合でも、リモートソフトウェアの悪用を介して鍵を取得する可能性は常にあります。 美しさは、これらの攻撃がリモートコード実行を必要としないことです。 適切な脆弱性を考えると、OpenSSL/SChannelヒープの完全な内容をマップするために、不正な形式のSSL要求のほんの一握りを必要とする可能性があります。

出典:ニューヨーク-タイムズ

サブローニングハードウェア暗号化チップ。 インターネット上のSSLトラフィックのかなりの部分は、SSLターミネータやVPN対応ルーターなどのハードウェアデバイスによって生成されます。 幸いにも、これらのデバイスのセキュリティについて推測する必要はありません—NSA/GCHQは、いくつかの主要なVPN暗号化チップで復号化を”有効にする”ために、ハードウェアメーカーと協力していることはすでに知っています。

NSAの文書は、この機能がどのように機能するか、またはSSLが含まれているかどうかについては明確ではありません。 そうであれば、明らかな推測は、各チップがIVsやハンドシェイクノンスなどの”ランダム”フィールドを介してセッションキーのビットを暗号化し、exflitratesするこ 実際、これは不透明なハードウェアデバイス上で実装するのが比較的簡単です。 興味深い質問は、これらのバックドアがNSAによってのみ悪用され、ライバルの諜報機関によっては悪用されないようにする方法です。 (ここでそれに関するいくつかの考え。)

サイドチャネル攻撃。 伝統的に暗号アルゴリズムを分析するとき、私たちはシステムの期待される入力と出力に関心を持っています。 しかし、実際のシステムはあらゆる種類の余分な情報を漏らします。 操作時間、リソース消費、キャッシュタイミング、RF放射など、これらの”サイドチャネル”は、多くの場合、秘密鍵材料を抽出するために使用できます。

幸いなことに、これらのチャネルのほとんどは、攻撃者がTLSサーバーに物理的に近接している場合にのみ悪用可能であるということです。 悪いニュースは、攻撃者が近づくことができる条件があるということです。 最も明白な例は、巧妙な攻撃者がターゲットデバイスと物理リソースを共有する可能性があるクラウド設定で仮想化されたTLSサーバーを含みます。

攻撃の第二のクラスは、RSAキーをゆっくりと回復するためにリモートタイミング情報を使用しています。 これらの攻撃は、rsa blindingなどの対策を介して無効にすることができますが、面白いことに、いくつかの”安全な”ハードウェアコプロセッサは、実際にはデフォルト 少なくとも、これはハードウェアをローカルユーザーによる攻撃に対して脆弱にし、RSAキーのリモート回復を容易にすることさえできます。

弱乱数発生器。 強力な完全前方秘密暗号を使用している場合でも、TLSのセキュリティは基本的に予測不可能な乱数の可用性に依存します。 偶然ではないが、乱数発生器の標準を改ざんすることは、NSAの努力の特定の焦点であったように見える。

乱数はTLSの多くの要素にとって重要ですが、3つの場所で特に重要です:

  1. クライアント側では、RSAハンドシェイク中。 RNGは、RSAプレマスターシークレットと暗号化パディングを生成するために使用されます。 攻撃者がこのジェネレータの出力を予測できる場合、攻撃者はその後、セッション全体を復号化することができます。 皮肉なことに、サーバー RNGの障害は、RSAハンドシェイクにとってはるかに壊滅的ではありません。•Diffie-Hellmanハンドシェイク中のクライアント側またはサーバー側での
  2. 。 Diffie-Hellmanは接続の各側からの貢献を必要とするため、いずれかの側の予測可能なRNGはセッションを完全に透過的にレンダリングします。
  3. 長期的な鍵生成中、特にRSA鍵の生成中。 これが起これば、あなたはねじ込まれています。
そして、あなたは乱数発生器を弱めるためにその洗練されたものである必要はありません。 これらの発電機はすでに驚くほど壊れやすく、いつ壊れたかを検出することは非常に困難です。 Debianのメンテナは、誤ったコードクリーンアップがOpenSSLの有効エントロピーをわずか16ビットに減らした2008年にこの点を美しくしました。 実際、Rngは非常に脆弱であるため、ここでの課題はRNGを弱体化させていません—キーボードを持つ馬鹿はそれを行うことができます—それは実装を他の人に

良いニュースは、SSL実装を改ざんして現在のRNGシードを暗号化して流出させるのは比較的簡単だということです。 これはまだ誰かがライブラリを物理的に変更するか、永続的な悪用をインストールする必要がありますが、既存のOpenSSLコードに多くの新しいコードを追加 (関数ポインタのOpenSSLの愛は、このようなものを改ざんすることが特に簡単になります。)

改ざんがあなたのスタイルではない場合は、なぜ明白な視力にバックドアを入れていませんか? これは、NSAがDual_Ec RNGで取ったアプローチであり、NISTによって特別な出版物800-90で標準化されています。 NSAが意図的にこのジェネレータをバックドアで設計したという説得力のある証拠があります—それを使用して作られたTLS/SSL接続を切断することを可 GeneratorはRSAのBSAFEライブラリのデフォルトであるため、そのソフトウェアを使用して行われたすべてのTLS接続が潜在的に侵害されることを期待する必

そして、私はLinuxカーネルRNGを独自のハードウェアrngに置き換えるIntelの計画についても言及していません。

PFSシステムの難解な弱点。 GoogleやFacebookを含む多くのwebサーバーは、現在、ephemeral Diffie-Hellman(DHEとECDHE)のような完全前方秘密暗号を使用しています。 理論的には、これらの暗号スイートは、すべての可能な世界の中で最高のものを提供します:キーは一つのセッションのために持続し、接続が終了すると消 これはRNGの問題からあなたを救うものではありませんが、キーの盗難をはるかに困難にします。

PFS ciphersuiteは良いことですが、さまざまな微妙な問題が自分のスタイルを窮屈にする可能性があります。 一つには、セッション再開メカニズムは厄介なことができます: セッションキーは、ローカルに保存するか、暗号化してセッションチケットの形式でユーザーに渡す必要があります。 残念ながら、セッションチケットの使用は、チケットを暗号化するために使用されるキーがシステムの大きな弱点を表すため、PFSシステムの”完璧さ”をいく さらに、サイトのすべてのフロントエンドサーバー間で共有する必要があるため、それらを1つのサーバーの内部に保持することさえできません。 要するに、彼らは一種の悪夢のように見えます。

最後の関心領域は、Diffie-Hellmanパラメータの検証です。 現在のSSL設計では、DHグループは常にサーバーによって正直に生成されることを前提としています。 しかし、悪意のある実装は、この仮定に違反し、サードパーティの盗聴を可能にする悪いパラメータを使用する可能性があります。 これは監視を可能にするためのかなりありそうもない道のように思えますが、これらのシステムがどれほど繊細であるかを示すことになります。

Tinfoil Hat Spectrum

次の攻撃のバッチを”tinfoil hat”脆弱性と呼びます。 以前の問題がすべてよく知られている技術を活用している場合、以下の提案のそれぞれは全く新しい暗号解析技術を必要とします。 これらはすべて、次のセクションが純粋な推測であると言う方法です。 もちろん、推測するのは楽しいです。 しかし、それは証拠ではなく事実を仮定することを私たちに要求します。 また、我々は我々が停止する場所について少し注意する必要があります。

だからここから私たちは本質的に思考実験を行っています。 さらに、前のセクションのトリックに依存していないことを想像してみましょう。 何が残ってる?

以下のリストは、最も”可能性の高い”理論から始まり、本当に非常識に向かって動作します。

RSAキーを破壊します。 私たちの分野では、NSAが1024ビットのRSA鍵を解読しているという永続的な噂があります。 この噂は、NSAの操作の本当の知識から生じている疑いがあります。 NSAのリソースを持つ組織にとって、1024ビットキーをクラッキングすることは非常に実行可能であるという事実によって駆動される可能性が高くな

どのように実現可能ですか? いくつかの信頼できる研究者がこの質問に答えようとしましたが、コストはあなたが思っているよりも低いことが判明しました。 2003年に戻って、ShamirとTromerは、年間1つの1024ビットキーを考慮することができる専用のマシンで1000万ドルを推定しました。 2013年、Tromerはハードウェアの進歩を考慮して、それらの数を約1万ドルに減らしました。 そして、それは大幅に低くなる可能性があります。 これはNSAのためのポケット変更です。

同様の線に沿って、Bernstein、Heninger、Langeは、標準Pcの分散ネットワークを使用してRSAをクラッキングする可能性を検討しました。 彼らの結果はかなり邪魔です:原則として、実際のConfickerボットネットのサイズについてのクラスターは、1024ビットキーに深刻な暴力を行うことができます。

このすべてを考えると、なぜこの可能性が’tinfoil hat’カテゴリにあるのかを尋ねるかもしれません。 簡単な答えは、誰も実際にそれをしていないからです。 つまり、上記の見積もりが劇的に高すぎる、あるいは低すぎるということは、少なくとも考えられます。 さらに、RSA-1024鍵は急速に段階的に廃止されています。 2048ビットキーをクラッキングするには、tinfoil hatにはるかに深く私たちを取って、重要な数学的進歩を必要とします。**

紙の上では、TLSはさまざまな強力な暗号化アルゴリズムをサポートしています。 実際には、すべてのTLSトラフィックの約半分は、老朽化した古いRC4暗号で保護されています。 そして、これはあなたを心配する必要があります—RC4はその年齢を示し始めているので。 実際、TLSで使用されているように、それはすでに(境界線の)実用的な攻撃に対して脆弱です。 したがって、NSAの真の暗号解読の進歩のための素晴らしい候補のように思えます。

残念ながら、この理論の問題は、NSAがRC4を有効にクラックすることを可能にする攻撃を単に知らないということです! 既知の手法では、(A)関連キー(WEPなど)で暗号化されているか、(b)同じ平文を含む数千または数百万の暗号文を収集することが攻撃者に要求されます。 TLSに対する最もよく知られている攻撃は、後者の形式をとります—それは犠牲者が数十億のセッションを確立する必要があり、それでもcookieやパスワード

反論は、公共の研究コミュニティが過去十年間RC4について非常に懸命に考えていなかったということです—部分的には、私たちはそれが壊れた人々)もし私たちがそれにすべての注意を集中させていたら(またはより良い、NSAの注意)、誰が今日私たちが持っているものを知っています。

NSAには本当に新しい暗号解読能力があると言ったら、私はJakeに同意し、RC4を指差します。 主に選択肢がはるかに怖いからです。

新しいサイドチャネル攻撃。 ほとんどの場合、リモートタイミング攻撃は、復号化の前に各暗号文にランダムなブラインドファクターを乗算することによってタイミングを混乱させるRSA blindingのような対策の実装によって殺されているように見えます。 理論的には、これはタイミング情報を本質的に無価値にするはずです。 実際には、多くのTLS実装では、毎回新しいものを生成するのではなく、復号化操作の間に盲目の要因を二乗するなど、これらの攻撃を復活させる可能性のある盲目的なコードに妥協を実装しています。 ここに攻撃がある可能性は非常に低いですが、誰が知っています。

グーフィーなもの。 多分NSAは本当に素晴らしい何かを持っていますその袖の上に。 このパンドラの箱を開くことの問題は、それが再び閉じて取得するのは本当に難しいということです。 Jerry Solinasは、驚くべき新しい攻撃(NSAが1990年代後半に知っていたが、まだ発見していない)をサポートするためにNIST P-curvesを実際に調理しましたか? NSAは、任意の暗号システムをブルートフォースすることができTRANSLTRという名前の巨大なスーパーコンピュータを持っていますか? BWIフレンドシップアネックスに巨大な量子コンピュータはありますか? これらの質問への答えのために、あなたは魔法の8ボールを振るかもしれません、私は手掛かりを持っていません。

結論

私たちはこれらのことに対する答えを知らないし、知ることもできないし、正直にそれについて考え始めるとあなたは狂ってしまうでしょう。 私たちが本当にできることは、NSA/GCHQがこれらの機能が「非常に壊れやすい」と言ったときに、彼らの言葉でnsa/GCHQを取ることだけです。 それは少なくとも私たちに希望を与えるはずです。

ここでの問題は、その脆弱性を警告から約束に変えるのに十分なほど推測できるかどうかです。
注:

*サーバー RNGの障害は、ServerRandomやセッションIdなどの予測可能な値になる可能性があります。 これらの値を予測できる攻撃者は、プロトコルに対して積極的な攻撃を実行できるかもしれませんが、RSA ciphersuiteでは、少なくとも受動的な妥協を認めてい

**1024ビットのRSAキーは削除されていますが、多くのサーバーはまだDiffie-Hellmanに1024ビットを使用しています(主に効率上の理由から)。 これらのキーに対する攻撃はRSAに対して使用されるものと似ていますが、主な違いは、新しい接続ごとにdiffie—Hellmanの「一時的な」キーが生成されることです。 大量のトラフィックを壊すことは非常に高価なようです。

コメントを残す

メールアドレスが公開されることはありません。