如何解密 IKEv2 数据包
Objective
解密并分析 IKEv2 数据包,用于 IPSec VPN 终止 firewall 。
Procedure
第 1 步: 启用 ikemgr 调试到转储级别
admin@firewall> debug ike global on dump
第 2 步:查找 SPI 、加密和哈希算法
# SPI 集合中的第一个算法属于发起人,无论命令运行在哪里。
admin@firewall> show vpn ike-sa detail gateway s2s <...> IKE SA: SPI: 628be6458b436c75:00492d770b06b539 Init <...> Proposal: AES128-CBC/SHA1/DH2 admin@firewall> less mp-log ikemgr.log <snip> ====> Established SA: 10.0.0.1[500]-10.0.0.2[500] SPI:628be6458b436c75:00492d770b06b539 SN:7 lifetime 28800 Sec <====
第 3 步: 查找启动器的加密密钥 (SK_ei) # 如果在响应器上
采取了调试,您将在"解密"和"密码文本"消息后看到启动器的密钥。
admin@firewall> less mp-log ikemgr.log 2018-10-31 22:16:10.956 +0800 [DEBG]: { 1: }: encrypting: 2018-10-31 22:16:10.956 +0800 [DEBG]: { 1: }: plaintext: <...> 2018-10-31 22:16:10.956 +0800 [DEBG]: { 1: }: key: 2018-10-31 22:16:10.956 +0800 [DUMP]: 26ce52c9 42df35c8 9696d852 27cee760
第4步: 查找响应方的加密密钥(SK_er)
admin@firewall> less mp-log ikemgr.log 2018-10-31 22:16:10.975 +0800 [DEBG]: { 1: }: decrypting: 2018-10-31 22:16:10.975 +0800 [DEBG]: { 1: }: ciphertext: 2018-10-31 22:16:10.975 +0800 [DUMP]: <...> 2018-10-31 22:16:10.975 +0800 [DEBG]: { 1: }: key: 2018-10-31 22:16:10.975 +0800 [DUMP]: 1cea4a2b 1586745e 08c5ac12 99bf331f
第 5 步:创建虚拟身份验证密钥(SK_ai和SK_ar)
我们不会直接在日志文件中打印SK_ai和SK_ar。
如果你不关心检查完整性,你可以使用所有零SK_ai和
SK_ar, SHA-1 关键大小是160位或20字节,这意味着40零。
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 >协议
ISAKMP >>IKEv2解密表)
步骤7:解密 aes128-cbc ESP 按照附加信息中提到的 ikev1 文档中的步骤。
如果使用 aes128-gcm 然后解密 ESP 数据包(均为 ikev1/v2),请从 ikemgr 日志中取下转储。 没有身份验证键,因此可以使用身份验证和身份验证密钥,如下所示:
2020-09-08 22:51:32.512 -0700 [DUMP]: sadb_update: seq=1, ul_proto=255 sa_src=34.100.95.129[500]/0, sa_dst=172.16.1.128[500]/0, satype=141 (ESP), spi=0xC827AFFE, wsize=64, authtype=38 (NON-AUTH), enctype=31 (AES128-GCM16), saflags=0x0, samode=137 (tunl), reqid=0, lifetime hard time 3600, bytes 0, lifetime soft time 2892, bytes 0, enckey len=20 [d5a466fd0c601bb49c4261ee9f197d0f4b2456d2], authkey len=0 []>>>>>>>>>>>>>>>> 2020-09-08 22:51:32.512 -0700 [INFO]: { 50: 57}: SADB_ADD proto=255 172.16.1.128[500]=>34.100.95.129[500] ESP tunl spi 0x99B4E739 auth=NON-AUTH enc=AES128-GCM16/20 lifetime soft 3067/0 hard 3600/0 2020-09-08 22:51:32.512 -0700 [DUMP]: sadb_add: seq=1, ul_proto=255 sa_src=172.16.1.128[500]/0, sa_dst=34.100.95.129[500]/0, satype=141 (ESP), spi=0x99B4E739, wsize=64, authtype=38 (NON-AUTH), enctype=31 (AES128-GCM16), saflags=0x0, samode=137 (tunl), reqid=0, lifetime hard time 3600, bytes 0, lifetime soft time 3067, bytes 0, enckey len=20 [e5bb8dfdc09ed681d9678c7e7c800e79656e46af], authkey len=0 []>>>>>>>>>>>>>>>>
编辑->首选项->协议 ESP ->->尝试检测/解码加密 ESP 的有效载荷
ESP SA编辑。。。
Additional Information
IKEv1的解密程序 ESP ,并记录在这里:https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClinCAC
如果您只对查看数据包的解密内容感兴趣 IKE ,请使用 IKE ikemgr 守护神在加密(出站)之前和解密(入站)之前捕获的"debug ike pcap"功能 MP 。 导出带有"scp 出口试用 pcap..."的 pcap 文件
,请参阅以下更多:https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClivCAC