私が理解しているように、信頼チェーン/ CA(SSL、TLS、S/MIMEなど)に基づく暗号化システムでは、国家国家の敵対者(NSAなど)がCAにそれらの発行を強要する可能性があります詐欺的な証明書により、攻撃者はそのWebサイトへのすべての訪問者に対してMITM攻撃を実行できます。
これは正しいですか、またはSSLやS/MIMEなどのプロトコルはこの主要な欠陥から何らかの方法で保護していますか?もしそうなら、彼らはどのようにそれを防ぐのですか?
私の理解が正しく、このタイプの攻撃isが可能である場合、NSAなどの組織がVersignなどのCAに強制的に要求して、 all証明書の複製、およびall SSLで保護されたWebサイト(およびS/MIME電子メールなど)に対する一般的なMITM攻撃の実行?
はい、国民国家の敵対者は、権力を持つ任意のCAから任意のサイトの有効な証明書を取得できます。それが合法かどうかはおそらく私が答える資格がない別の質問です。
ハイジャックされたCAがgoogle.com
のような人気のあるWebサイトのCNで証明書に署名し始めてトラフィックをMITMする場合でも、それは別の証明書であり、したがって顕著な変更になることに注意してください。本質的には、ある種の「ピン留め」、つまり特定の証明書または公開鍵を特定のWebサイトに関連付けることによって、この変化に気付くことができます。
基本的なベンダー提供のピン留めはChrome=にしばらく存在していましたが、今ではTACKや公開キーのピン留めなど、サーバー管理者がキーをドメインに一時的に固定します。
EFFのSSL Observatory は、すべての Certificate Authorities のマップを生成しました。このマップは非常に巨大であり、これらのいずれかが常に侵害される可能性が非常に高くなります。最も弱いリンクの原則により、私はPKIにかなり注意を払います。さらに、国民国家が委任当局になるための費用を負担するのは簡単です。
PKIの壊れた性質に対する優れた防御策は 証明書の固定 です。
はい、しかしこれが発見されなければこれを行うのは難しいでしょう。
あなたが正しい、純粋に技術的な観点から見ると、国がその管轄下の認証局に不正な証明書を発行することを強制することを妨げるものはなく、ほとんどのTLSクライアント(Webブラウザーを含む)はユーザーに警告せずにその証明書を黙って受け入れます。
ただし、この方法を政府が大規模な監視に使用することは完全に実行不可能であり、標的型攻撃でさえ危険であるいくつかの要因があります。
まず、CAがこのような不正な証明書を発行したことが判明した場合、特に政府によるMITM攻撃の実行を許可する目的で、ブラウザベンダーやその他のトラストストアによってルート証明書が信頼されていないことに注意することが重要です。 。その場合、そのCAは廃業し、不正な証明書は役に立たなくなります。したがって、ifある国民国家がCAにこのようにして詐欺的な証明書を発行するように強いることを望んでいたのです。実際には、それは非常に難しいでしょう。
大量監視の場合、発見されずに不正な証明書を使用することはほぼ不可能です。接続が詐欺的な証明書によって乗っ取られたことをWebブラウザーが自動的に検出しなかったとしても(すぐに発生する可能性があるいくつかの方法を取り上げます)、これらの証明書は、正当なサイトオペレーターに発行されたものとは必ずしも異なるはずです。 、したがって、手動で検出できます。何百万人ものユーザーがすべて不正な証明書を提供されている場合、somoneが(おそらくサイト運営者自身が)気づき、スキーム全体がすぐに明らかになることはほぼ確実です。これは本質的に、TLS証明書に適用されるLinusの法則(「十分な眼球がある場合、すべてのバグは浅い」)です。
個々のユーザーに対する標的型攻撃では、発見されずに不正な証明書を使用する方がはるかに現実的です。対象のユーザーだけが証明書が変更されたことに気づく機会があり、平均的なユーザーはそのようなことをチェックすることすらありません。ただし、不正な証明書が他の方法で検出されるという重大なリスクがまだあります。
平均的なユーザーが不正に発行された証明書を使用していることを検出する可能性が最も高い方法は、HTTP公開キー固定(HPKP)を使用するサイトにアクセスすることです。 HPKPは最新のブラウザーの機能であり、これによりサイトはブラウザーに「このサイトへの今後のアクセスはこれらの既知のキーのいずれかを使用してのみ保護されるべきである」と伝えることができます。政府がスパイを開始する前にユーザーが以前にサイトを訪問した場合、その後の訪問でサイトが不正な証明書を提示した場合は警告メッセージが表示されます。これはユーザーの疑いを引き起こし、警告メッセージが表示された理由を調査すると、不正な証明書を発見して報告する可能性があります。
また、政府機関、CA、またはその従業員の1人が不正な証明書を第三者に漏らす可能性もあります。これはありそうもないと思われるかもしれませんが、そのような漏洩は常に可能性があり、詐欺的な証明書自体は、それらを発行したCAがなんらかの形で侵害されていることを示す強力な暗号の証拠です。彼らの物語の。
しかし、国が少数のユーザーのみを対象とし、HPKPを使用するサイトへのスパイを回避し、誰もが不正な証明書を公に漏らさないように注意している場合はどうでしょうかそうすれば、彼らはそれを回避できるでしょう。現時点では;はい、たぶん。ただし、詐欺的に発行された証明書が発見される可能性があるもう1つの方法があります。これは、近い将来これをさらに困難にするでしょう:証明書の透明性。
証明書の透明性(CT)は、公的に監査可能なTLS証明書のログシステムで、CAが署名するすべての証明書をログに記録するために使用できます。不正な証明書がCTログに送信された場合、誰かが気付く可能性があります。現時点では、証明書をログに送信しないだけで政府が検出を回避するのは簡単ですが、開始 2018年4月 少なくとも1つのブラウザ(Chrome)がログの記録を開始しますすべての新しい証明書。つまり、 少なくとも2つの信頼できるログ は、証明書が有効であると見なされるために、特定の証明書をログに記録したことを主張するステートメントに暗号で署名する必要があります。
ブラウザやその他のサードパーティの監査人は、ログに記録したと主張する証明書が実際にログにあることを定期的にチェックすることにより、WordへのCTログを保持します(ただし、Chromeには まだこれを実装しました )、そしてログはそれらを表示するすべての関係者に対して一貫性があります(したがって、証明書の透明性ログは、クライアントに証明書を記録したことを通知するだけでなく、第三者が連絡したときにその証明書が存在しないふりをすることができますパーティー。)
画像ソース: https://www.certificate-transparency.org/how-ct-works#TOC-Typical-System-Configuration
これらのチェックをバイパスするために、国民国家は複数の証明書透明性ログと独立した第三者監査人とモニターを妥協または強制する必要があります。それらのいくつかは管轄外にある可能性があり、すべての国家が国家国家の情報を漏らすことはありません。国民への行動。これは非常に難しいでしょう。実際、十分に難しいので、国民国家でさえこの時点であきらめ、代わりに彼らの目標を監視するための完全に異なる方法を検討し始める可能性が最も高いでしょう。
はい、政府はCAにサイトの偽の証明書の発行を強制することができます。しかし、これが機能するためには、証明書を取得したという事実を秘密にしておかなければなりません。つまり、比較的少数のユーザーを対象に監視を維持し、HPKPを使用するサイトをスパイすることを避け、誰も自分の証明書を公に漏らさないようにし、2018年4月以降、かなりの数のセキュリティを侵害する必要があります。証明書の透明性ログとサードパーティのモニターおよび監査機能を一度にすべて。要するに、それは非常に可能性が低いです。
証明書を発行するときにCAが適切に動作しているかどうか、およびユーザーが以前にサイトにアクセスしたことがあるかどうかによって異なります。証明書を取得したときにCAが適切に動作している場合、CAは秘密鍵を保持するべきではありません。実際、多くの場合、必要に応じて実際に独自の秘密鍵を作成できます。
秘密鍵の唯一のコピーがある場合、CAが実行できることは、ドメインとして信頼される(別の秘密鍵の)別の証明書を発行することだけです。実際には、どのCAでもこれを行うことができます。それはあなたのものである必要はありません。訪問者のブラウザで信頼されているCAである必要があります。
ただし、SSLで保護されたサイトに初めてアクセスしたとき、ブラウザは証明書のフィンガープリントを記憶しています。ある訪問から別の訪問にSSL証明書が変更されると、ブラウザは警告を表示するはずです。したがって、信頼できるCAによって署名された証明書を政府機関が取得した場合、それがドメインであることは変わりませんが、フィンガープリントは異なります。新しいユーザーは途中にいることに気づかず、以前のユーザーはできるはずです。攻撃中の男を発見する。