web-dev-qa-db-ja.com

私の場合、Man-In-The-Middle(SSL)攻撃

私は学校でネットワークセキュリティに関するコースを受講しています。実験的な演習で、Man-In-The-Middle(SSL)アプリを携帯電話にインストールし、証明書(秘密鍵を内部に含む)を携帯電話にインストールするように依頼されました。

私の質問:

  1. アプリ(プロキシである可能性があります)を装うための偽の証明書を生成するために使用される証明書は、クライアントが要求するサーバーですか?

  2. この種の証明書の中に秘密鍵があるのはなぜですか?ここで使用される秘密鍵は何ですか?

2
Leem.fin

私があなたを正しく理解し、電話アプリがMITMを実行していると仮定すると、次のようになります。

1)はい-通常、アクセスしたすべてのWebサイトの新しい証明書を(オンザフライで)作成するためのルートCAとして使用されます。そのルートCAの公開鍵は、ブラウザによって信頼されている必要があります。

2)秘密鍵は、後続のすべての証明書(サイト用)に署名するために使用されるため、必要になります。 MITMアプリは秘密鍵を使用してサイト証明書を生成し、ブラウザーは公開鍵を使用してそれを検証します。

1
crovers

アプリ(プロキシである可能性があります)を装うための偽の証明書を生成するために使用される証明書は、クライアントが要求するサーバーですか?

はい、この証明書は、アプリがサーバーになりすますために使用されます。人々はしばしば証明書が何のために使われるのか誤解します。これらは、クライアントではなくサーバーを認証するために使用されます。そのため、アプリが実サーバーになりすます場合、アプリのIDを証明する証明書を提供する必要があります。

この種の証明書の中に秘密鍵があるのはなぜですか?ここで使用される秘密鍵は何ですか?

証明書に存在する秘密鍵は、証明書の生成に使用されるものです。
Digital Oceanには、証明書、秘密鍵、および証明書の生成に関する優れたリファレンスがあります

1
Limit