web-dev-qa-db-ja.com

ローカルホストの証明書、MITM攻撃

からの抜粋https://letsencrypt.org/docs/certificates-for-localhost/

127.0.0.1にたまたま解決されるドメイン名(たとえば、localhost.example.com)をグローバルDNSに設定し、そのドメイン名の証明書を取得し、その証明書を出荷して、これらの制限を回避したくなるかもしれません。ネイティブアプリに対応する秘密鍵を使用し、 https://localhost.example.com:8000/ と通信するようにWebアプリに指示します http://127.0.0.1:8000/ これを行わないでください。ユーザーを危険にさらし、証明書が取り消される可能性があります。

IPアドレスの代わりにドメイン名を導入することで、攻撃者がDNSルックアップを中間者(MitM)で実行し、別のIPアドレスを指す応答を注入することが可能になります。その後、攻撃者はローカルアプリのふりをして、偽の応答をWebアプリに送り返すことができます。これにより、デザインによっては、Webアプリ側のアカウントが侵害される可能性があります。

このMITM攻撃がどのように実行されるかを説明できる人はいますか?私がTLD example.comを所有していると仮定します。また、ネイティブアプリがインストールされている場合、localhost.example.comのHOSTSリダイレクトを127.0.0.1に追加します。

2
AEonAX

localhost.example.comのHOSTSエントリを追加し、証明書がlocalhost.example.comのみを対象としている場合、システムはHOSTSからのエントリを使用し、DNSを使用してシステムを検索しないため、システムに対するネットワーク内のMITM攻撃は不可能です。ドメイン。

ただし、この証明書を含むアプリケーションがあなただけでなく他の人も使用する場合、安全のために誰もがそのようなHOSTSエントリを追加する必要があります。あなたはおそらくこれを期待することはできません。

さらに、攻撃者は証明書と秘密鍵をアプリケーションから抽出し、場合によっては、アプリケーションを実行していないユーザーに対してそれを使用します。たとえば、login.example.comがドメイン*.example.comのスコープでセッションCookieを設定する場合、localhost.example.comにアクセスすると、このセッションCookieも読み取ることができます-抽出された証明書を使用して、このドメインのMITMが成功する可能性がありますと秘密鍵。

2
Steffen Ullrich