2021-02-04 分类: 网站建设
原理
我们先回顾一下ssl/TLS的整个握手过程:
(1) Clienthello:发送客户端的功能和选项给服务器,在连接建立后,当希望重协商、或者响应服务器的重协商请求时会发送。
(2) version:客户端支持的好协议版本
(3) Random:共32字节,28字节随机数,4字节额外信息,受客户端时钟影响(为了避免浏览器指纹采集,现在一般会对4字节时钟做扭曲)
(4) Session ID:32字节随机数,用于和服务器重建会话,为空表示新建会话
(5) cipher suit:客户端支持的所有密码套件,按优先级排列
(6) Compression:客户端支持的压缩算法,默认无压缩
(7) Extensions:由任意数量的扩展组成,携带额外数据
(8) ServerHello:
(9) Certificate:
(10) ServerKeyExchange:携带密钥交换的额外数据,取决于加密套件
(11) ServerHelloDone:服务器已将所有预计的握手消息发送完毕
(12) ClientkeyExchange:携带客户端为密钥交换提供的信息
(13) ChangeCipherSpec:发送端已取得用以连接参数的足够的信息
(14) Finish:握手完成,消息内容加密,双方可以交换验证,整个握手完整性所需的数据
(15) 算法:verrify_data = PRF(master_secret , finished_label,hash(handshake_message))
要解密HTTPS流量,需要得到加密密钥,加密密钥由主密钥、客户端随机数、服务器随机数生成。由上述握手过程可知,客户端随机数和服务器随机数在双方握手消息中传递,而主密钥(master_secret)则由预主密钥(pre_master_secret)结合两个随机数生成。预主密钥通过密码套件中的密钥交换算法进行交换(DH、RSA)。
因此,通过Wireshark解密HTTPS,可以从两个地方下手:
下面演示两种方法解密HTTPS流量。
方法一
从服务器上导出带私钥的P12格式的证书,或者直接导出服务器的私钥。
捕获从TCP三次握手开始的完整报文:
可以看到此时的报文是被TLS加密的,无法看到具体的报文内容。
点击编辑——>选项——>协议——>ssl(有的版本只有TLS),导入RSA key:
点击编辑>选项>protocol>ssl:
即可解密浏览器的访问流量:
标题名称:Wireshark解密HTTPS流量的两种方法
本文链接:/news39/99139.html
成都网站建设公司_创新互联,为您提供动态网站、建站公司、静态网站、软件开发、服务器托管、网站内链
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联
猜你还喜欢下面的内容