SSL/TLS(弱加密)抓包解密办法

        当软件出现故障时,使用抓包对模块的输入输出数据流进行分析,是一种十分有效的问题定位手段。随着对软件的安全属性要求越来越高,很多软件模块在设计时,与其他外部模块之间的通信都会使用SSL/TLS等加密算法保障机密性,同时这给研发和维护带来了困难。使用SSL/TLS加密的报文我们无法直接查看业务报文的原始内容,不利于分析消息交互过程和正确性。

针对上述问题,根据实际情况有两种方式进行解决,一种是wireshark导入服务器的证书私钥,可解密弱加密算法套的SSL报文;第二种就需要软件在建立TLS链接时记录日志,导入wireshark解密。

  1. 弱加密算法解密

TLS协议的建链过程中,客户端和服务器会进行加密密钥的协商,客户端发送Client Hello的报文里会携带自己支持的算法套,服务端从里边按照先后顺序挑选第一个服务器也支持的算法套。由于版本和算法机制的不同,算法套的加密强度有强弱之分。使用弱加密的算法在,如果提供服务端的私钥,即可解密;但是强加密的算法就算知道私钥,也无法进行解密(为啥?)。

弱加密算法套包括不限于:

TLS_RSA_WITH_AES_128_CBC_SHA

TLS_RSA_WITH_AES_128_CBC_SHA256

TLS_RSA_WITH_AES_256_CBC_SHA

TLS_RSA_WITH_AES_256_CBC_SHA256

  • 确定是否是弱加密算法套

通过分析抓包的Client Hello以及对应的响应Server Hello报文,ServerHello里携带的算法即为最终协商的算法套。

确定属于弱算法套即可继续

  • 导入服务器证书和私钥,转换成私钥pem文件

服务器目录下一般是配套的证书和密钥,但是Java进程一般使用的是tomcat.kystore,里边既包含了服务器证书又包含了私钥。

一般情况下,使用SSL_Ky.pem就是配套的服务器私钥。但是经过了加密,无法直接使用。可以用如下命令进行解密:

openssl rsa -in SSL_Ky.pem -passin pass:123456 -out rsa_private.pem

其中pass参数表示的是证书库的密码,需根据实际值填入

得到的解密私钥rsa_private.pem即可导入wireshark解密TLS报文了

  • 导入wireshark进行密文解密

 

Protocols中选择TLS或者SSH,然后添加RSA key文件。并且可以指定IP和端口,协议类型支持XMPP、HTTP等常用应用层协议。

点击确定后,wireshark刷新并且自动解析相关报文,完成后就能看到报文的明文内容了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值