如何在帕洛阿尔托网络设备上解密 IKE 和 ESP 数据包

如何在帕洛阿尔托网络设备上解密 IKE 和 ESP 数据包

86460
Created On 09/25/18 20:36 PM - Last Modified 06/12/23 10:32 AM


Resolution


概述

 

当 ipsec 隧道在帕洛阿尔托网络防火墙上终止时, 可以使用 ikemg.log 下注册的密钥对通信进行解密。这对于诊断 ike 和 ipsec 隧道 (如数据包丢失和顺序外数据包) 的性能问题非常有用。

 

详细

 

在本文中, 我们将说明如何使用以下拓扑在主模式和 ESP 数据包上解密 ikev1。同样的步骤也可以与 ikev2 一起使用。

拓扑. png

默认情况下, ikemgr 的调试级别是正常的。要记录经过协商的身份验证和加密密钥, 我们必须增加要转储的调试级别。

 

admin@FW1> 调试 ike 全局显示

sw.ikedaemon.debug.global: 正常

admin@FW1> 在转储上调试 ike 全局

admin@FW1> 调试 ike 全局显示

sw.ikedaemon.debug.global:

 

数据包可以在 FW1 和 FW2 之间的任何位置捕获。在我们的测试设置, 我们将采取包捕获的 FW1 后, 本指南https://live.paloaltonetworks.com/t5/Learning-Articles/How-to-Run-a-Packet-Capture/ta-p/62390.

要在 User1 和 User2 之间捕获清晰和加密的数据, 我们将使用以下筛选器。

 

admin@FW1> 调试 dataplane 数据包诊断显示设置

--------------------------------------------------------------------------------

包诊断设置:

--------------------------------------------------------------------------------

数据包筛选器

  启用: 是

  比赛预解析的数据包: 没有

  索引 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 密钥。

 

admin@FW1>清除 vpn ike 网关 TO-FW2

admin@FW1>清除 vpn ipsec-sa 隧道 To-FW2

 

然后在 User1 和 User2 之间生成通信量, 并确保隧道已上。

 

admin@FW1> 显示 vpn-sa 网关 TO-FW2

 

IKEv1 phase-1 SAs

GwID/客户端 IP 对等地址网关名称角色模式算法建立失效 V ST。

hase2

--------------  ------------           ------------           ---- ---- ---------             -----------     ----------      -  -- -- -

-----

1 10.193.121.93 TO-FW2 Init 主要 PSK/DH2/A128/SHA1 4月08日 21:57:04 4月08日 22:03:04 v1 12 4 1

 

显示 IKEv1 IKE SA: 找到总共2个网关。找到1个 ike sa。

 

IKEv1 phase-2 SAs

GwID/客户端 IP 对等地址网关名称角色算法 spi (in) spi (出)

--------------  ------------           ------------           ---- ---------          -------  -------- -----    -- --

1 10.193.121.93 TO-FW2 Init ESP/DH5/tunl/SHA2 B57366C2 B82D7CDE 547B1BD5 9 1

 

显示 IKEv1 phase2 SA: 找到总共2个网关。找到1个 ike sa。

 

在主模式上解密 ikev1。

 

使用 ikev1, 将对标识和快速模式消息进行加密。有时有必要对它们进行解密, 以验证两个对等方之间交换了哪些参数。

 

下面是加密标识消息的示例。

 

已加密的标识消息. png
要解密 ikev1 消息, 我们需要两条信息。

 

  • 与数据包捕获中的启动器 SPI 对应的启动器的 cookie。294ff0e604e73f31
  • 可在 ikemgr.log 上找到的加密密钥: 搜索 "cookie: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 解密表, 并输入启动器的 COOKIE 和加密密钥:

 

 ikev1 解密表. png

 

下面是解密的识别信息:

  识别消息已解密. png

 

 

解密 ESP 数据包。

 

解密 ESP 数据包遵循与 ike 相同的原则, 但需要更多参数。

 

esp ecrypted. png

 

  • 协议: IPv4
  • Src ip: 要解密的 ESP 数据包的源 ip。上面的例子10.193.121.91
  • Dst ip: 要解密的 ESP 数据包的目标 ip。上面的例子10.193.121.93
  • ESP SPI: 您可以在包捕获下的封装安全负载下找到它。在我们的例子中, 它是0xb82d7cde
  • 加密和身份验证算法: 它们是 "显示 vpn 流" 命令输出的一部分。

admin@FW1> 显示 vpn 流名 To-FW2 |匹配算法

        验证算法: SHA256

        enc 算法: AES128

 

  • 可在 ikemgr.log 上找到的加密和验证密钥:

21.93 [500]/0, satype=141 (ESP), spi =, wsize=4, authtype=41 (SHA256), enctype=15 (AES128), saflags=0x0, samode=137 (tunl), reqi

d=0, 终身硬时间 180, 字节 0, 寿命软时间 146, 字节 0, enckey len=16 [3d6991e6a0f888d240c8d539a54676a7], authkey len=32

[bbac69f722297906c11d7d9038248ba3b509519a0e1e37bb0652752130c8324c]

 

接下来, 转到 Wireshark >> 编辑 > 首选项 > 协议 > ESP 解密并选择 "尝试检测/解码加密 ESP 负载":

 

 尝试 detec 和解码. png

 

然后编辑 ESP SAs。

 esp sa. png

 

之后, 您将看到 ESP 数据包被解密。

 

esp 解密. png



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClinCAC&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language