ホームページ  >  記事  >  httpsパケットキャプチャの原理

httpsパケットキャプチャの原理

(*-*)浩
(*-*)浩オリジナル
2019-08-21 10:33:219738ブラウズ

あるセクションでは、HTTPS の安全な通信プロセスを分析し、HTTPS が中間者攻撃を効果的に防止できることを学びました。しかし、パケット キャプチャ ツールを使用したことがある人なら誰でも、たとえば Charles と Fiddler が HTTPS リクエストをキャプチャして復号化できることを知っています。

httpsパケットキャプチャの原理

まず、Charles の公式 Web サイトで HTTPS プロキシの説明を見てみましょう: (推奨学習: Web フロント-ビデオ チュートリアル終了)

Charles は仲介エージェントとして機能します。ブラウザがサーバーと通信するとき、Charles はサーバーの証明書を受け取りますが、証明書を動的に生成してブラウザに送信します。つまり、Charles はブラウザの仲介エージェントとして機能し、サーバーと通信するため、通信データは Charles によって傍受され、復号化される可能性があります。 Charles が証明書を変更したため、検証に合格しない場合、ブラウザはセキュリティ警告を表示します。通常のアクセスを実行する前に、Charles の証明書をインストールする必要があります。

Charles が行う必要があるのは、サーバーをクライアントに、クライアントをサーバーに偽装することです。

実際のクライアントの HTTPS リクエストをインターセプトし、クライアントを偽装する クライアントは HTTPS リクエストを実サーバーに送信します。

実サーバーの応答を受け入れ、Charles 自身の証明書を使用してサーバーを偽装し、データ コンテンツを実クライアントに送信します。

具体的なプロセスを見てみましょう:

クライアントはサーバーへの HTTPS リクエストを開始します

Charles はクライアントのリクエストをインターセプトし、クライアントのふりをして次のリクエストを行います。サーバー

#サーバーは「クライアント」にリクエストを送信します (実際は Charles です) サーバーの CA 証明書を返します

Charles はサーバーの応答を傍受し、サーバー証明書の公開キーを取得します。自分で証明書を作成し、サーバー証明書を置き換えてクライアントに送信します。 (このステップでは、Charles はサーバー証明書の公開キーを取得します)

クライアントは「サーバー」(実際には Charles) の証明書を受信した後、対称キーを生成し、Charles の公開キーで暗号化します。を送信し、「サーバー」に渡します (Charles)

Charles はクライアントの応答を傍受し、自分の秘密鍵で対称鍵を復号化し、それをサーバー証明書の公開鍵で暗号化してサーバーに送信します。 (このステップで、Charles は対称キーを取得します)

サーバーは対称キーを独自の秘密キーで復号化し、応答を「クライアント」 (Charles) に送信します

Charles はサーバーの暗号化キーを傍受します。応答、独自の証明書に置き換えてクライアントに送信します。

この時点で、接続が確立されます。Charles は、サーバー証明書の公開キーと、クライアントとサーバーの間でネゴシエートされた対称キーを取得しました。その後、暗号化されたメッセージを復号化または変更できます。

HTTPS パケット キャプチャの原理は非常に単純で、簡単に言うと、Charles は「仲介エージェント」として、サーバー証明書の公開キーと HTTPS 接続の対称キーを取得します。前提として、クライアントは信頼を選択して Charles の CA 証明書をインストールします。そうでない場合、クライアントは「警告」を発して接続を終了します。この観点から見ると、HTTPS は依然として非常に安全です

以上がhttpsパケットキャプチャの原理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:f値の計算方法次の記事:f値の計算方法