当前位置:   article > 正文

IPSec中 ISAKMP & ESP 报文解密方法

IPSec中 ISAKMP & ESP 报文解密方法

1. ESP报文解密

(1) IPSec对等体连接完毕后在服务器输入 sudo ip xfrm state 可以看到源地址到目的地址的SPI值,加密/认证算法、加密/认证密钥等。

在这里插入图片描述

(2) Wireshark点击ESP报文协议首选项 -》选择ESP字段-》点击ESP SAs -》 添加两条IPv4协议的解密规则,输入两个方向的SPI值,选择加密/认证算法,加密/认证密钥,点击OK即可。

在这里插入图片描述
在这里插入图片描述

2.ISAKMP报文解密

(1)ISAKMP报文加密密钥需要在服务器Strongwan的日志中查看,默认的存放在/var/log/syslog中,但不会显示加密密钥,需要手动设置日志路径,并把日志等级设置为4.
修改strongwan配置文件,/etc/strongwan.conf 内容如下:

charon {  
    load_modular = yes
	plugins {
		    include strongswan.d/charon/*.conf
		}
    filelog {
    charon {
        path = /var/log/charon.log
        # add a timestamp prefix
        time_format = %b %e %T
        # prepend connection name, simplifies grepping
        ike_name = yes
        # overwrite existing files
        append = no
        # increase default loglevel for all daemon subsystems
        default = 4
        # flush each line to disk
        flush_line = yes
    }
    stderr {
        # more detailed loglevel for a specific subsystem, overriding the
        # default loglevel.
        ike = 2
        knl = 3
    }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

default定义的是日志的级别,默认日志级别为:-1,0,1,2,3,4,-1是完全没有日志,
0只告诉你建立连接,连接关闭;
1只输出错误提示,
2会输出错误,警告和调试信息;
3会把连接传输的数据也打印;
4则会把密钥内容这些敏感数据也打印。

(2)如果在Ubuntu运行 sudo ipsec restart 后未生成 /var/log/charon.log 这个文件(我在运行时就遇到过),那么极有可能是apparmor配置导致日志文件无法读写,可以在 /var/log/syslog 中找到类似这种打印:

buntu kernel: [ 2250.553437] audit: type=1400 audit(1524560552.427:182): apparmor="DENIED" operation="mknod" profile="/usr/lib/ipsec/charon" name="/var/log/strongswan.log" pid=4557 comm="charon" requested_mask="c" denied_mask="c" fsuid=0 ouid=0
  • 1

这是由于在Ubuntu中使用了apparmor配置,需要在相应配置文件中修改相应文件权限控制。
参考文章:Ubuntu由于apparmor配置导致日志文件无法读写
解决方法:

1. 修改apparmor配置
	sudo vim '/etc/apparmor.d/usr.lib.ipsec.charon'
	大括号中其他文件权限配置之后,添加(前面的内容为定义的log文件的路径,后面的是分配的权限),
		由于我在strongswan.conf中filelog的路径配置的为/var/log/charon.log,
		因此我配置的权限如下:
		/var/log/charon.*      rwk,
2. 重载apparmor
	sudo /etc/init.d/apparmor reload
3.重启strongswan(IPSec)
	sudo ipsec restart
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

(3)IPSec对等体连接建立完毕后,或者抓包时能看到ISAKMP交互的几个过程报文后,就可在日志文件中找到 encryption key 字段,复制其后面的16进制数据(F5-6C这一段)
在这里插入图片描述
(4)Wireshark在ISAKMP报文中复制Initiator SPI,并将其和 encryption key 配置到协议首选项中,点击OK即可。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/464625
推荐阅读
相关标签
  

闽ICP备14008679号