1月5日 打卡day8
今日学习
计网实验二原来的抓包的工具,wireshark,
并且对https整个加密的过程有了更详细的了解
整个加密过程分为两阶段,一个是TLS四次握手,利用非对称加密的特性交换信息,最终得到一个会话密钥。
第一次握手,客户端告诉服务器,我这边支持的加密协议版本TSL1.2,使用的加密套件是RSA,一个客户端随机数。
第二次握手,服务器随机数+服务器证书+ACK(TSL1.2),
第三次握手,这边客户端生成一个随机数pre_master_key,从服务证书里取出服务器公钥,用公钥加密pre_Master_key随机数,发给服务器。这时候客户端用已经拥有的三个随机计算得到一个“会话密钥”,客户端把通信数据内容生成一个摘要,用会话密钥加密一下,发给服务器做检验。
第四次握手,服务器把从客户端传过来的pre_master_key(用服务器这边的私钥解密),集齐3个随机数,也生成一个“会话密钥”,发给客户端,说明我这边使用这个会话密钥进行加密通信。
三个随机数依次叫:client andom ,server random ,pre_master_key经过f(x)后生成会话密钥
可以认为,只要知道这三个随机数,就能破解https通信。
如何得到pre_master_key,在它进行TLS四次握手之前,使用环境变量SSLKEYLOGFILE就能干预,让它输出pre_master_key的文件。(目前curl和chrome 支持)
然后还要回看Ssl.key文件,找到第三个随机数,确定前两个随机数的位置就能找到了。这个文件包含3列,最重要的第二列的client random和第三节的pre_master_key
展开
评论