2009-07-02 10 views
21

リモートWebサービスと会話するローカルアプリケーションがあります(書きませんでしたが、変更できません)。 HTTPSを使用しているため、トラフィックに何が含まれているかを確認したい。HTTPSトラフィックをクリアにキャプチャしていますか?

私はこれを行う方法はありますか?私はWindowsシステムを好むだろうが、これで簡単にLinux上にプロキシを設定できたら嬉しいです。

  1. 私のhostsファイルをハッキング(または代替DNSを設定する)ことで、Webサイトのリダイレクト:私は検討している何

  2. 自己署名(ただし信頼できる)証明書を使用して、そのサイトにHTTPSサーバーをインストールします。
  3. WireSharkは、秘密鍵を送ってもHTTPSの内容を確認できます。私はこれを試みたことはありません。
  4. 何らかの形で、このトラフィックを実際のサーバーにプロキシします(つまり、本物のman-in-the-middle「攻撃」)。

これは合理的ですか? WireSharkはHTTPSトラフィックの内容を実際に見ることができますか?誰も私に適切なプロキシと同じ設定を指すことができますか?

答えて

11

Fiddlerは何をしますか? :

フィドラーとは?

Fiddlerは、 コンピュータとインターネットの間のすべてのHTTP(S)トラフィックを記録するWebデバッグプロキシです。 Fiddler は、すべてのHTTP(S) トラフィックを検査し、ブレークポイントを設定し、 "fiddle" を着信または発信データで検査することができます。 Fiddlerには強力な イベントベーススクリプトサブシステムが含まれており、 は任意の.NET 言語を使用して拡張できます。

フィドラーはフリーウェアですし、インターネット エクスプローラ、Mozilla Firefoxの、オペラ、そして 数千人以上を含む、事実上あらゆる アプリケーションから トラフィックをデバッグすることができます。

+1

はい、HTTPS要求のための中間者プロキシとして機能することができます。これは署名されていない証明書を提供するので、アプリケーションで信頼できる証明書が必要な場合は、 Fiddlerがアドバイスしていない証明書を信頼してください。http://www.fiddler2.com/Fiddler/help/httpsdecryption.asp –

+0

Internet ExplorerとChromeからHTTPSトラフィックを表示しています。今質問のアプリのために働くかどうかを調べるために... –

+0

...問題のアプリは管理者権限でしか動作せず、Fiddlerは管理者アカウントの下にHTTPS証明書をインストールしたくないようです(私はLUAをほとんど実行しています)。 –

4

ローカルアプリケーションのプロキシを設定する必要があります。プロキシ設定を使用しない場合は、トランスペアレントプロキシを配置し、外出する前にすべてのhttpsトラフィックをルーティングします。このような何かを途中で「男」になりますhttp://crypto.stanford.edu/ssl-mitm

はまた、ここでのwiresharkでこれをアーカイブする方法についての簡単な説明です:監視するためにHTTPSプロキシを使用するためのhttp://predev.wikidot.com/decrypt-ssl-traffic

0
  1. は、それが依存します握手のタイプ。ローカルアプリケーションがCAの署名でサーバーの証明書をチェックせず、偽造できず、サーバーがローカルアプリケーションの証明書をチェックしない場合(またはhttpsプロキシでセットアップする場合)、httpsプロキシを設定できますhttpsトラフィックを監視します。さもなければ、私はhttpsプロキシでトラフィックを監視することは不可能だと思います。

  2. もう1つの方法は、httpsライブラリからメッセージを送受信するクライアントプログラムのルーチンに計測プローブを追加することです。いくつかのリバースエンジニアリング作業が必要ですが、すべての状況に対応する必要があります。

0

私はWireSharkをお勧めします。トラフィックのさまざまな部分をフォローするのに最適なツールです。 SSLを有効にして何が見えるのか分かりませんが、たぶん、あなたが証明書をそれに供給すれば?

+2

証明書では不十分です。それ以外の場合は、すべてのSSLトラフィックを復号化します。トラフィックを解読する秘密鍵が必要です... OPが示すように... – reiniero

7

Wiresharkでは、TLS/SSLで暗号化されたストリームをプレーンテキストとして確実に表示できます。しかし、そうするには、サーバーの秘密鍵が必要です。環境設定では、プライベートキーをSSLオプションとしてWiresharkに追加する必要があります。これは、最初からSSLストリームに従うことができる場合にのみ有効です。 SSL接続が再利用されても機能しません。

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

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

上記の制約を満たせば、「SSLストリームに従う」右クリックコマンドがうまく機能します。

+0

これを設定するための特定のステップ(または投稿へのリンク)は素晴らしいでしょう。 –

2

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

チャールズはHTTPプロキシ/ HTTPモニタ/リバースプロキシで、開発者はマシンとインターネット間のすべてのHTTPおよびSSL/HTTPSトラフィックを表示できます。これには、要求、応答、HTTPヘッダー(Cookieとキャッシング情報を含む)が含まれます。

関連する問題