[https][tls] 如何使用wireshark查看tls/https加密消息--使用keylog
姊妹篇:
[ipsec][strongswan] 使用wireshark查看strongswan ipsec esp ikev1 ikev2的加密内容
[https][tls] 如何使用wireshark查看tls/https加密消息--使用私钥
需求
学习SSL/TLS的过程中, 使用wireshark转包分析,是常用的手段.
我自建nginx自签名证书, 抓了一个访问请求的包, 是这样的.

我们可以看到, 从第8个包开始, 便出现了密文. 即使我不关心TLS上层的业务内容, 第八和第九个包里边的最后两段加密数据段, 也是需要关心的. 他们是Finshed报文,是协商报文的一部分.
配置
wirshark
我们知道wireshark具体解密TLS密文的能力. (我们当然知道, 因为我们经验丰富), 而且我们还知道从下边的这个地方进行配置:
edit->preferences->protocols->tls

情况A: 当我们使用RSA进行秘钥交互的时候, 就对RSA keys list项进行配置, 导入server端的私钥.
情况B: 当我们使用DH进行秘钥交互的时候, 就对Master Secret log filename进行配置, 导入单次会话的主密钥. 因为DH的秘钥交互过程是明文交互的, 所以只配这个,也能解开全部的密文.
curl或firefox
情况A并没有这个步骤. 下面讨论情况B
wireshark的配置中需要的配置文件, 是用来保存主秘钥的. 称为 SSLKEYLOGFILE
在通过curl或firefox访问之前, 设置环境变量SSLKEYLOGFILE的值为目标文件, 在执行过curl或firefox之后, 主密钥会被自动记录到该文件中, 如下以curl为例, firefox同样适用:
┬─[tong@T7:~/Works/tls]─[:: PM]
╰─>$ export |grep SSL
SSLKEYLOGFILE /home/tong/Works/tls/keylog
┬─[tong@T7:~/Works/tls]─[:: PM]
╰─>$ curl --cacert ~/Keys/https/root/root.cer https://TTTrust:443/
可以看到该文件的内容:
┬─[tong@T7:~/Works/tls]─[:: PM]
╰─>$ cat keylog
CLIENT_RANDOM db23bf9a63b494ba72ecfaef831f55954f887576xxxxa2c45e46e7f631ea160d bfc5346bb7c0573b95e637a973524884ec912b67d5ce747c1a169e1d6ba57643ff8a1e97b33b11c5d6ff249961efxxxx
效果
现在, 按前文配置该文件在wireshark中, 可以看见下面的效果:
协商包与数据包都被解开了.

参考
<<everything curl>>是curl主页上推荐的官方书面, 其中一个章节讲述了以上方法
https://ec.haxx.se/tls-sslkeylogfile.html
[https][tls] 如何使用wireshark查看tls/https加密消息--使用keylog的更多相关文章
- [https][tls] 如何使用wireshark查看tls/https加密消息--使用私钥
之前总结了使用keylog进行https流量分析的方法: [https][tls] 如何使用wireshark查看tls/https加密消息--使用keylog 今天总结一下使用服务器端证书私钥进行h ...
- [ipsec][strongswan] 使用wireshark查看strongswan ipsec esp ikev1 ikev2的加密内容
一,编译,启用strongswan的save-keys plugin ./configure --prefix=/root/OUTPUT --exec-prefix=/root/OUTPUT --en ...
- 开启 TLS 1.3 加密协议,极速 HTTPS 体验
随着互联网的发展,用户对网络速度的要求也越来越高,尤其是目前在大力发展 HTTPS 的情况下,TLS 加密协议变得至关重要.又拍云在 HTTPS 的普及和性能优化上,始终做着自己的努力和贡献.2018 ...
- HTTPS详解二:SSL / TLS 工作原理和详细握手过程
HTTPS 详解一:附带最精美详尽的 HTTPS 原理图 HTTPS详解二:SSL / TLS 工作原理和详细握手过程 在上篇文章HTTPS详解一中,我已经为大家介绍了 HTTPS 的详细原理和通信流 ...
- 为什么Wireshark无法解密HTTPS数据
为什么Wireshark无法解密HTTPS数据 导读 由于需要定位一个问题,在服务器上tcpdump抓取https数据包,然后下载到本地打开wireshark分析.然后我们下载域名私钥配置到wires ...
- SSL/TLS协议详解(下)——TLS握手协议
本文转载自SSL/TLS协议详解(下)--TLS握手协议 导语 在博客系列的第2部分中,对证书颁发机构进行了深入的讨论.在这篇文章中,将会探索整个SSL/TLS握手过程,在此之前,先简述下最后这块内容 ...
- 内网Https 自签Https证书 配合Tomcat 实现内网Https详细图文
内网项目启用Https配置手册 软件需求: OpenSSL https://www.openssl.org/ 已经安装了Java Jdk环境 制作前的需求: 已经配置了Jdk环境变量 安装好OpenS ...
- Android Https相关完全解析 当OkHttp遇到Https
一.概述 其实这篇文章理论上不限于okhttp去访问自签名的网站,不过接上篇博文了,就叫这个了.首先要了解的事,okhttp默认情况下是支持https协议的网站的,比如https://www.baid ...
- HTTPS系列干货(一):HTTPS 原理详解
HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer),其实 HTTPS 并不是一个新鲜协议,Google 很早就开始启用了,初衷 ...
随机推荐
- window git安装 以及 tortoiseGit安装与使用
一:Git安装 使用TortoiseGit这个程序,需要先安装Git Windows版本Git的下载页面: http://git-scm.com/download/win 1:下载Git到文件夹, 2 ...
- EasyDSS RTMP流媒体服务器基于RTMP拉模式和转推模式搭建公网全平台全终端直播集群的方案
近期,我们有一位EasyDSS流媒体用户在需求中提出:如何搭建一个用户量巨大的讲座直播,提供给普通用户免费观看,每天上午和下午分别有几场讲座同时直播,持续几天时间. 推荐方案 ★ 由于甲方是中国移动运 ...
- Node.js 多线程完全指南
[原文] 很多人都想知道单线程的 Node.js 怎么能与多线程后端竞争.考虑到其所谓的单线程特性,许多大公司选择 Node 作为其后端似乎违反直觉.要想知道原因,必须理解其单线程的真正含义. Jav ...
- 使用二进制的方式部署 K8S-1.16 高可用集群
一.项目介绍 项目致力于让有意向使用原生kubernetes集群的企业或个人,可以方便的.系统的使用二进制的方式手工搭建kubernetes高可用集群.并且让相关的人员可以更好的理解kubernete ...
- 【LeetCode】下一个排列【找规律】
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列. 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列). 必须原地修改,只允许使用额外常数空间. ...
- Spring中的AOP实现思路
AOP是面向切面编程,为什么在切面中写一个注解方法@Before,这个方法会在目标方法前面执行呢 基于JDK动态代理实现上面说的情况 自定义注解 @Target({ ElementType.METHO ...
- Active Objects模式
实现的思路是,通过代理将方法的调用转变为向阻塞队列中添加一个请求,由一个线程取出请求后执行实际的方法,然后将结果设置到Future中 这里用到了代理模式,Future模式 /************* ...
- java 模拟多ip访问
java模拟多ip请求 package url_demo; import java.io.BufferedReader; import java.io.IOException; import java ...
- Python基础案例1如何实现对应位置上的元素相乘/相加/相减
如何通过a b得到c 本文以“乘”引入,其他运算,类似.案例逻辑如下: a = [[1, 2, 3], [4, 5, 6], [1, 1, 1]]b = [[1, 1, 2], [1, 3, 2], ...
- mysql_新建表:主键、外键等
序号 命令(中文) 命令(英文呢) 解释 示例 备注 1 主键约束 primary key 不能重复,不能为空 学号 2 外键约束 foreign key 可以重复,依赖主键 学号 3 非空约束 no ...