ブルース・シュナイダーがここで報告したように...
https://www.schneier.com/blog/archives/2013/09/new_nsa_leak_sh.html
... NSA伝えられるところによると、ブラジルの企業に対してMITM攻撃を実行し、ルーターを危険にさらすことによってSSLトラフィックを解読しました。コメント者も、先ほどのDigiNotar CAに対する同様の攻撃に言及しました。
私の質問は、どちらの場合でも、SSL証明書のSHA1サムプリントがMITM攻撃によって変更されたのですか?理論的には、誰かが注意を払っていて、サムプリントが異なるとわかった場合、彼らはスパイされていることを知っていただろうね?
バックボーンルーターを侵害してSSLトラフィックを復号化しました
いいえ、それは間違っています(ただし、残りの質問には影響しません)。その主張によれば、NSAは、ターゲットに属するルーターを危険にさらしました(それが本当に重要であるというわけではありません)。さらに重要なことに、ルーターを危険にさらしても_ NSAはSSLトラフィックを復号化できませんでした:NSAが暗号化された- and署名されたストリーム。 SSLのすべての側面が保持されていた場合、その攻撃は検出され、NSAは正当なトラフィックを復号化できませんでした。
攻撃の決定的な部分は、NSAがGoogleの偽の証明書を作成できることでした。 SSL証明書には、おおよそ次の部分が含まれています。
NSAはCAの秘密鍵を知っているようです。したがって、NSAによって作成された秘密鍵に対応する別の公開鍵を含む証明書を作成できます。 Googleが保持する秘密鍵。
偽物の証明書は本物とは異なるため、指紋が異なります。 (これはMD5フィンガープリントには当てはまらない可能性があることに注意してください: MD5の衝突抵抗は十分に壊れています 同じフィンガープリントで2つの証明書の作成を許可しますが、同じフィンガープリントで証明書を作成しません既存の証明書。ただし、SHA-1にはそのような脆弱性はありません。)したがって、証明書のSHA-1フィンガープリントが間違っていることを検出した場合、積極的に介入されていることがわかります。
これは、SHA-1値を何らかの方法で確実に取得できるようにする必要があるため、実用上の重要性は限られています。これらの指紋を取得するための信頼できる接続はどこにありますか?
検証を複数のパーティに分散する は、これまで未知のサイトを閲覧できるようにする一方で、少数のCAの侵害に抵抗する1つの方法です。
MITM攻撃を検出するには、第三者によって簡単に改ざんされない相手側と通信する方法が必要です。 MITM攻撃がある場合、使用している鍵は相手側が使用しているものとは異なり、暗号ビットも異なります。
これを行う古典的な方法は、いくつかの初期の公開鍵電話暗号化ユニットに登場しました。通話のセットアップ後、使用中の公開鍵に基づく2桁の番号が両端に表示されます。次に、両方の当事者が音声によるを確認し、同じ番号を見たことを確認します。侵入者は、MITM攻撃を回避するために、ユーザーの会話の一部をシームレスに置き換えることができる必要があります。
これは、より一般的なソリューションへのパスを示唆しています。既存のMITM攻撃者は通常、プレーンテキストを通過するだけです(ただし、攻撃を引き起こす可能性があります)。両端に適切なソフトウェアが存在する場合、MITMの攻撃者は、両端に一貫した嘘をつく必要があります。そのうそを生成するために攻撃者を任意に困難にすることが可能かもしれません。