密评SSL--计算预主密钥、主密钥、工作秘钥

1、计算预主密钥

查看标准

SSLVPN的预主密钥主要有两种方式生成,ECC、RSA模式下,由客户端直接生成;ECDHE模式下,由双方协商计算生成 。

ECC模式下,客户端生成48字节预主密钥,使用服务端的加密证书公钥进行加密,发送给服务端,服务端使用私钥进行解密;这个服务端加密证书,在前面文章写到了,Server Key Exchange中签名源数据=客户端随机数+服务器端随机数+服务端加密证书的长度+加密证书,这个签名值Server Key Exchange也是为了保证加密证书未被篡改。

计算过程,例子

密文:

10009C30819902210089AECA520D2E34BA1A708573477423CE21A12407C0146A1127960BDB48DC6CB5022065E9AE9B4CDE0FA7409F496AD30652EA18516F60A45686DA1BAF87E70FC26D5B04202D312376C71D24AC80A1AC35FDE6508765C95C9395DD225334741861E15D8D6D0430CDB741C92FC862E4F863BA8454DEC1BC59EB59B4D852D0626C762D8067659A00DF1C59C7F67316EEAD2F8D61F49F9560

提取C1C3C2,使用服务端加密证书的私钥进行解密(这里做实验我有服务端私钥,一般是没有的)

得到预主密钥

0101B8E34F314F160B4095267577D20B342F0A888FE6D1B1DDE45FAB3C1DE7B3865A25618194372E56A0AD354512E336

如果是ECDHE模式,发送的仍然是公钥参数,预主密钥=客户端私钥d*服务端参数=服务端私钥d*客户端参数,我这没有数据包来做验证计算了。

2、计算主密钥

标准里的解释

主密钥=PRF(预主密钥,master secret+客户端随机数+服务端随机数),master secret这个就是标准里说的常量,转为16进制

master secret:6D617374657220736563726574

master secret+客户端随机数+服务端随机数

6D6173746572207365637265740a359775d8a2c2fd2756261b8ae86767db7b3cd3be532c9665ea432dc260b6d85423003bf0b79c2a134837d6c560dfb6d11cebdb2ab84e701fafe387b31ac268

预主密钥为

640DA76978A5EFD6E0953088F015FA20EE810E48E24AA6F19A8900BCFF05A3A7722DE36C807E5C7CA912E7E6FFA4965E

3、计算工作秘钥

标准里计算方式

这个PRF计算,标准里也有讲怎么计算的

PRF(SECRET,A),使用secret作为秘钥,对A进行计算

HMAC(SECRET,HMAC(SECRET,A)+A),和这个HMAC计算两次是一样的,这里也不做展示了

4、通过wireshack得到主密钥

如果想自己验证学习,可以通过wireshack解密HTTPS方式来获取数据包,百度一下,你就知道

wireshack解密HTTPS有很多文章,设置环境变量、设置wireshack的tls(sslkey.log)、重启、抓包,然后就可以得到主密钥了。

比如我自己抓包解密了bilbili网站,得到的文件sslkey.log

为什么可以确定这个是主密钥呢

看看wireshack里面的设置,启动Wireshark软件,打开菜单栏“编辑”——“首选项”——“Protocols”——“TLS”,这里导入导出的文件内容格式就是“CLIENT_RANDOM 客户端随机数 主密钥”,自己导入主密钥、预主密钥解密HTTPS消息时候注意格式要一模一样

得到预主密钥了,就可以自己计算验证工作秘钥了

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值