25

リモート Web サービスと通信するローカル アプリケーション (私が作成したものではなく、変更できません) があります。HTTPS を使用しており、トラフィックの内容を確認したいと考えています。

これを行う方法はありますか?私は Windows システムを好みますが、Linux でプロキシをセットアップすることで作業が簡単になる場合は喜んでセットアップします。

私が考えていること:

  1. ホスト ファイルをハッキングする (または代替 DNS を設定する) ことにより、Web サイトをリダイレクトします。
  2. そのサイトに HTTPS サーバーをインストールし、自己署名 (ただし信頼できる) 証明書を使用します。
  3. どうやら、秘密鍵をフィードすると、WireShark は HTTPS の内容を確認できるようです。私はこれを試したことがない。
  4. どういうわけか、このトラフィックを実際のサーバーにプロキシします (つまり、本格的な中間者攻撃です)。

これは理にかなっていますか?WireShark は本当に HTTPS トラフィックの内容を認識できますか? 誰でも適切なプロキシ (および同じ構成) を教えてもらえますか?

4

6 に答える 6

10

Wireshark は、TLS/SSL で暗号化されたストリームをプレーンテキストとして確実に表示できます。ただし、そのためにはサーバーの秘密鍵が必ず必要になります。秘密キーは、設定の下の SSL オプションとして Wireshark に追加する必要があります。これは、最初から SSL ストリームをたどることができる場合にのみ機能することに注意してください。SSL 接続を再利用すると機能しません。

Internet Explorer の場合、[インターネット オプション] ダイアログを使用して SSL 状態をクリアすることにより、これ (SSL セッションの再利用) を回避できます。他の環境では、ブラウザの再起動またはシステムの再起動が必要になる場合があります (SSL セッションの再利用を避けるため)。

もう 1 つの重要な制約は、RSA 暗号を使用する必要があることです。Wireshark は、DFH (Diffie-Hellman) を使用する TLS/SSL ストリームをデコードできません。

上記の制約を満たすことができると仮定すると、「Follow SSL Stream」の右クリック コマンドはかなりうまく機能します。

于 2012-09-09T21:42:38.667 に答える
3

Charlesも考慮する必要があります。この回答時の製品説明から:

Charles は、開発者が自分のマシンとインターネットの間のすべての HTTP および SSL / HTTPS トラフィックを表示できるようにする HTTP プロキシ / HTTP モニター / リバース プロキシです。これには、リクエスト、レスポンス、および HTTP ヘッダー (Cookie とキャッシュ情報を含む) が含まれます。

于 2015-04-14T20:48:51.427 に答える
0
  1. https プロキシを使用して監視する場合は、ハンドシェイクの種類によって異なります。ローカル アプリケーションが、偽造できない CA の署名によってサーバーの証明書をチェックせず、サーバーがローカル アプリケーションの証明書をチェックしない場合 (または、https プロキシにセットアップする証明書がある場合)、https プロキシをセットアップして、 https トラフィックを監視します。そうしないと、https プロキシでトラフィックを監視することは不可能だと思います。

  2. もう 1 つの方法は、https ライブラリからメッセージを送受信するクライアント プログラムのルーチンにインストルメンテーション プローブを追加することです。リバース エンジニアリング作業が必要ですが、あらゆる状況で機能するはずです。

于 2009-07-02T08:42:40.220 に答える
-1

WireShark をお勧めします。さまざまなトラフィックを追跡するのに最適なツールです。ただし、SSL を有効にした状態で何が表示されるかはわかりません。たぶん、証明書を提供すれば?

于 2009-07-02T08:47:54.187 に答える