文章目录
RSA_WITH_AES_128_CBC_SHA256最tls 1.2中最简单的加密协议. 大公司都不再使用了. 但是这个协议非常好分析, 非常适合用于学习tls 1.2的加密.
RSA_WITH_AES_128_CBC_SHA256解释:
- 使用RSA非对称加密来传输AES密钥
- Hash算法使用SHA256
- 应用数据使用AES128 CBC模式加密. (CBC模式需要iv)
这种模式下, 一旦私钥泄露, 抓包的数据就能解密, 所以不安全.
RFC: https://tools.ietf.org/html/rfc5246
准备工作
数据采集过程
-
生成自签名证书 https://blog.csdn.net/wzj_whut/article/details/85715347
-
导出私钥和公钥的RSA参数 https://blog.csdn.net/wzj_whut/article/details/86477568
-
使用自签名的证书, 搭建一个http服务器,
-
使用最新版的wireshark抓包.
以下是我生成的证书和抓包数据
https://github.com/wzjwhut/tlsv12-demo/tree/master/src/main/resources
以下是RSA的私钥和公钥相关的参数(n, d, e)
https://github.com/wzjwhut/tlsv12-demo/blob/master/src/main/java/com/wzjwhut/example/MyRSAInfo.java
基本交互流程
tls基本交互流程