#HTTPS
有几个疑惑想看看有没有大佬能帮忙解答一下:
1、HTTPS的SSL握手过程中为什么要使用随机数?为什么需要三个随机数?
2、HTTPS前两个随机数为什么不用加密但第三个要加密?
![](https://uploadfiles.nowcoder.com/images/20191018/468200_1571397856882_1E412544122065C25107EADECD8208C7)
![](https://uploadfiles.nowcoder.com/images/20191018/468200_1571397856882_1E412544122065C25107EADECD8208C7)
![](https://uploadfiles.nowcoder.com/images/20191018/468200_1571397856882_1E412544122065C25107EADECD8208C7)
![](https://uploadfiles.nowcoder.com/images/20191018/468200_1571397856882_1E412544122065C25107EADECD8208C7)
![](https://uploadfiles.nowcoder.com/images/20191018/468200_1571397856882_1E412544122065C25107EADECD8208C7)
有几个疑惑想看看有没有大佬能帮忙解答一下:
1、HTTPS的SSL握手过程中为什么要使用随机数?为什么需要三个随机数?
2、HTTPS前两个随机数为什么不用加密但第三个要加密?
全部评论
其实不是随机数,而是加密用的密钥。
因为我们将CA证书(公钥私钥对)部署在服务器,因此客户端第一次产生的key1,没办法加密,服务端收到之后,也会产生一个 key2,并将自己的公钥发送给客户端,之后客户端在生成一个 key3,这个key3用公钥加密(公钥加密之后,只有服务器的私钥才能解密)。因此key1没办法加密,key2如果用公钥加密了,客户端没办法解密key2,因此key2也不能加密。之后客户端自己生成一个key3,用公钥加密之后,发送给服务端,服务端用私钥才能解密
在服务端和客户端都有三个随机数之后,会使用握手过程中协商的算法,使用三个随机数生成用于对称加密的密钥,握手完成后的数据,使用这个密钥来进行对称加密。(因为非对称加密比对称加密会消耗更多资源)
使用三个随机数的原因是,计算机的生成的随机数都是伪随机数,使用一个随机数不够安全。可以认为由两台计算机生成三个伪随机数无限接近随机数,生成的密钥是安全的。
😃谢谢
可以看看dh算法
随机数是用来保证这一次连接的有效性的
相关推荐
![](https://static.nowcoder.com/fe/file/oss/1716965564844UEBJN.png)
![](https://static.nowcoder.com/fe/file/oss/1716965585666UBBME.png)
腾讯
| 实习
| 超多精选岗位
点赞 评论 收藏
分享