原則
のは、SSL / TLSを超える全体の握手を見てみましょう:
- ClientHello:接続が確立された後、あなたは再交渉するか、サーバーからの再交渉要求応答をしたいとき、それが送信されます、サーバーへのクライアント機能や好みを送信します。
- バージョン:クライアントでサポートされている最高のプロトコルバージョン
- ランダム:32バイト、28バイトの乱数、追加情報の4バイト、クライアントクロックによる影響(4つのバイトクロックは今、一般的にねじれを行います、ブラウザの指紋を回避するため)
- セッションID:32乱数のバイト、およびセッションの再構築のためのサーバー、新しいセッションが開いている、手段
- 暗号スーツ:クライアントは、優先度の高い順に、すべての暗号スイートをサポートしています
- 圧縮:クライアントでサポートされている圧縮アルゴリズム、デフォルト圧縮されていません
- エクステンション:エクステンションの任意の数の構成は、追加データを運びます
- ServerHello:
- クライアントのフィードバッククライアントによって提供されたパラメータを選択します
- サーバーは、サーバーがクライアントのバージョンをサポートしていない場合は、クライアントに提供することができる他のバージョンは、受信を楽しみにすることができ、クライアントでサポートされている最高のバージョンをサポートしていません。
- 証明書:
- 実施するためのX.509サーバー証明書チェーン
- 正しい順序で最初の中間証明書がプライマリ証明書を次の必要プライマリ証明書を送信します
- 同じサーバー証明書を送信していることを確認し、選択したアルゴリズムスイートなければなりません
- 場合は、オプションのCertificateメッセージ
- ServerKeyExchange:暗号スイートに応じて、余分なデータ鍵交換を運びます
- ServerHelloDone:サーバーは、すべての期待のハンドシェイクメッセージが送信されていました
- ClientkeyExchange:クライアントが、鍵交換によって提供される情報を運びます
- ChangeCipherSpecを:送信側は、接続パラメータのための十分な情報を取得しています
- 仕上げ:ハンドシェイクが完了すると、メッセージ内容の暗号化は、双方は、全体の握手のために必要なデータの整合性を認証を交換することができます
- 算法:verrify_data = PRF(マスター_、finished_label、ハッシュ(handshake_message))
HTTPSトラフィックを復号化するには、暗号化キーを必要とする、暗号化キーは、マスターキー、クライアントのナンス、サーバ乱数によって生成されます。上記ハンドシェイク、クライアントとのハンドシェイクメッセージの両方に送信されたランダム数のサーバ乱数から、2つのランダム番号ジェネレータを結合プレマスターキー(前_のマスター_秘密)によるマスター鍵(マスター_)。プリマスター鍵交換(DH、RSA)アルゴリズムの交換鍵暗号スイート。
したがって、HTTPS Wiresharkのを解読することによって、二つの場所から開始することができる:1、RSA鍵交換アルゴリズム選択、及び、サーバの秘密鍵を抽出し、秘密鍵Wiresharkのは、プレマスター鍵配送Wiresharkの復号鍵交換プロセスを通して導入しました、クライアントとサーバ乱数生成マスターキーは、再結合の前に、さらに暗号化されたフェッチ以降のパケットを解読するために、暗号鍵を生成します。図2に示すように、暗号化された達成パケットを復号直接乱数と一緒にプレマスター鍵、暗号鍵生成サーバとクライアントから抽出されたクライアント。
以下は、HTTPSトラフィックを復号化する2つの方法を示しています。
この方法の一つ
P12形式のエクスポートサーバーから秘密鍵と証明書、または直接サーバーの秘密鍵をエクスポートします。
TCP 3ウェイハンドシェイクの最初から完全なメッセージをキャプチャ:
この時点で、あなたは、メッセージの具体的な内容を見ることができない、メッセージがTLS暗号化されて見ることができます。
クリックして編集 - >設定 - >プロトコル - > SSL(一部のバージョンのみTLS)、RSAキーをインポートします。
DH法による鍵交換が途中で送信されないので、この方法は、唯一のRSA鍵交換で復号することができるからです。
サーバー証明書をインポートします。
[OK]をクリックした後、Wiresharkのは、パケットの復号化をキャプチャします。
メッセージが正常に復号化され、あなたが視覚的にHTTPリクエストとレスポンスパケットを見ることができます。
第2
これHTTPSを復号化の目的を達成するため、前_のマスター_秘密ブラウザを撮影した環境変数を設定することにより。
新しい環境変数のユーザー変数SSLKEYLOGFILE =パス\ sslkey.logファイル、およびその後のSSL設定ファイルの場所の開発でwiresharkの後。
[編集]> [環境設定]> [プロトコル]> [SSL]をクリックします:
ブラウザトラフィックを復号化するには: