どのようにパロアルトネットワークデバイス上の IKE と ESP パケットを復号化する
Resolution
概要
ipsec トンネルがパロアルトネットワークファイアウォールで終了すると、ikemg の下に登録されているキーを使用してトラフィックを復号化することができます。これは、ike のトラブルシューティングに非常に役立ち、パケット損失や順序が外れたパケットなどの ipsec トンネルのパフォーマンス上の問題が発生する可能性があります。
詳細
この記事では、次のトポロジを使用して、メインモードと ESP パケットの ikev1 を復号化する方法について説明します。同じ手順を ikev2 で使用することができます。
既定では、ikemgr のデバッグレベルは正常です。ネゴシエートされた認証および暗号化キーをログに記録するには、デバッグレベルを大きくしてダンプする必要があります。
管理者 @ FW1 > ike グローバルショーのデバッグ
sw.ikedaemon.debug.global: 正常
管理者 @ FW1 > ダンプの ike グローバルをデバッグします。
管理者 @ FW1 > ike グローバルショーのデバッグ
ikedaemon. グローバル:ダンプ
パケットは、FW1 と FW2 の間のどこにでも取り込むことができます。私たちのテストのセットアップでは、我々はこのガイド https://live.paloaltonetworks.com/t5/Learning-Articles/How-to-Run-a-Packet-Capture/ta-p/62390 次の FW1 にパケットキャプチャを行います。
User1 との間でクリアおよび暗号化されたデータをキャプチャするには、次のフィルターを使用する予定です。
管理者 @ FW1 > デバッグ dataplane パケット-diag を表示する設定
--------------------------------------------------------------------------------
パケット診断設定:
--------------------------------------------------------------------------------
パケット フィルター
有効にする: はい
マッチ解析済みパケット: なし
インデックス 1: 192.168.112.104 [0]-> 192.168.125.110 [0]、プロト0
イングレスインタ フェース、出力インターフェイス非 IP を除外、
イングレスインタ フェース、出力インターフェイス非 IP を除外、
インデックス 2: 10.193.121.91 [0]-> 10.193.121.93 [0]、プロト0
イングレスインタ フェース、出力インターフェイス非 IP を除外、
イングレスインタ フェース、出力インターフェイス非 IP を除外、
--------------------------------------------------------------------------------
ログ記録
有効: いいえ
ログスロットル: なし
同期-ログ・バイ・タイマ: はい
機能:
カウンタ:
--------------------------------------------------------------------------------
パケットキャプチャ
有効にする: はい
Snaplen: 0
ステージ受信: ファイル rx
キャプチャ: パケット-0 バイト-0
最大: パケット-0 バイト-0
ステージ送信: ファイル tx
キャプチャ: パケット-1 バイト-0
最大: パケット-0 バイト-0
ステージドロップ: ファイル dr
キャプチャ: パケット-0 バイト-0
最大: パケット-0 バイト-0
この時点で、ipsec トンネルをバウンスして新しいネゴシエーションプロセスを開始し、ipsec phase1 と phase2 キーをログに記録する必要があります。
管理者 @ FW1 >クリア vpn の ike-sa のゲートウェイに-FW2
管理者 @ FW1 >クリア vpn の ipsec-sa のトンネルに-FW2
次に、User1 と $ の間のトラフィックを生成し、トンネルがアップしていることを確認します。
管理者 @ FW1 > 表示 vpn の ike-sa のゲートウェイに-FW2
IKEv1 フェーズ 1 SAs
GwID/クライアント IP ピアアドレスゲートウェイ名ロールモードアルゴリズムが有効期限 V ST Xt P を確立しました
hase2
-------------- ------------ ------------ ---- ---- --------- ----------- ---------- - -- -- -
-----
1 10.193.121.93-FW2 Init メイン PSK/DH2/A128/SHA1 04 月 08 21:57:04 04 月 08 22:03:04 v1 12 4 1
IKEv1 IKE SA を表示: 合計2つのゲートウェイが見つかりました。1 ike sa が見つかりました。
IKEv1 フェーズ 2 SAs
GwID/クライアント IP ピアアドレスゲートウェイ名役割アルゴリズム spi (in) spi (out)
-------------- ------------ ------------ ---- --------- ------- -------- ----- -- --
1 10.193.121.93-FW2 Init ESP/DH5/tunl/SHA2 B57366C2 B82D7CDE 547B1BD5 9 1
Show IKEv1 phase2 SA: 合計2ゲートウェイが見つかりました。1 ike sa が見つかりました。
メインモードで ikev1 を復号化します。
ikev1 を使用すると、識別およびクイックモードメッセージが暗号化されます。2つのピア間で交換されたパラメータを確認するために、それらを復号化する必要がある場合があります。
暗号化された識別メッセージの例を次に示します。
ikev1 メッセージを復号化するには、2つの情報が必要です。
- パケットキャプチャのイニシエータ SPI に対応するイニシエータのクッキー。294ff0e604e73f31
- ikemgr で見つけることができる暗号化キー: "クッキー: 294ff0e604e73f31" を検索し、最終的な計算された暗号化キーを見つけるまで、ネゴシエーションメッセージをスクロールします。
2017-04-08 21:57:04 [デバッグ]: オークリー. c:3157: oakley_compute_enckey (): 最終的な暗号化キーが計算されました:
2017-04-08 21:57:04 [デバッグ]: オークリー. c:3158: oakley_compute_enckey ():
793f8697 cc0e8cdb 5851496c 0acff14c
次に、Wireshark > 編集 > 環境設定 > プロトコル > ISAKMP > IKEv1 復号化テーブルに移動し、イニシエータのクッキーと暗号化キーを入力します。
そして、ここでは、復号化された識別メッセージです:
ESP パケットを復号化します。
ESP パケットの復号化は ike と同じ原理に従いますが、より多くのパラメータが必要です。
- プロトコル: IPv4
- Src ip: 復号化したい ESP パケットの送信元 ip。上記の例については10.193.121.91
- Dst ip: 復号化する ESP パケットの宛先 ip。上記の例については10.193.121.93
- ESP SPI: カプセル化セキュリティペイロードの下にあるパケットキャプチャでそれを見つけることができます。この例では、0xb82d7cde
- 暗号化と認証アルゴリズム: [vpn フローの表示] コマンドの出力の一部です。
管理者 @ FW1 > 表示 vpn フロー名を-FW2 |一致アルゴリズム
認証アルゴリズム: SHA256
j アルゴリズム: AES128
- ikemgr で見つけることができる暗号化と認証キー:
21.93 [500]/0, satype = 141 (ESP), spi =, wsize = 4, authtype = 41 (SHA256), enctype = 15 (AES128), saflags = 0x0, サモード = 137 (tunl), reqi
d = 0、有効期間ハード時間180、バイト0、有効期間ソフト時間146、バイト0、enckey len = 16 [3d6991e6a0f888d240c8d539a54676a7]、authkey len = 32
[bbac69f722297906c11d7d9038248ba3b509519a0e1e37bb0652752130c8324c]
次に、Wireshark > 編集 > 環境設定 > プロトコル > esp 復号化を選択し、「暗号化された esp ペイロードの検出/デコードを試みる」をクリックします。
次に、ESP SAs を編集します。
その後、ESP パケットが復号化されていることがわかります。