您的位置:首页 > 编程语言 > Java开发

java-信息安全(九)-基于DH,非对称加密,对称加密等理解HTTPS

2017-12-08 15:58 645 查看

概述

java-信息安全(七)-基于非对称加密,对称加密等理解HTTPS

如果想要理解好https,请尽量了解好以上信息等。

参看文章:

http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

https://cattail.me/tech/2015/11/30/how-https-works.html

基本概念

  客户端和服务端在握手hello消息中明文交换了

client_random
server_random 
,使用RSA公钥加密传输
premaster secret 
,最后通过算法,客户端和服务端分别计算
master secret
。其中,不直接使用
premaster secret 
的原因是:保证secret的随机性不受任意一方的影响。

  整个握手阶段都不加密(也没法加密),都是明文的。因此,如果有人窃听通信,他可以知道双方选择的加密方法,以及三个随机数中的两个。整个通话的安全,只取决于第三个随机数(Premaster secret)能不能被破解。

  虽然理论上,只要服务器的公钥足够长(比如2048位),那么Premaster secret可以保证不被破解。但是为了足够安全,我们可以考虑把握手阶段的算法从默认的RSA算法,改为 Diffie-Hellman算法(简称DH算法)。

  采用DH算法后,Premaster secret不需要传递,双方只要交换各自的参数,就可以算出这个随机数。

  上图中,第三步和第四步由传递Premaster secret变成了传递DH算法所需的参数,然后双方各自算出Premaster secret。这样就提高了安全性。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: