Https流程图

Posted Java和Android开发每日精进

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Https流程图相关的知识,希望对你有一定的参考价值。

Https流程图 


从这个图我们可以看出: 

由于浏览器和服务器之间对数据传输进行了对称加密,从而保证了数据的安全性,但是现在有一个问题,如何保证浏览器生成的随机数(对称加密的密钥)能安全的传递给服务器端? 
如果这把密钥被第三方窃取,那么浏览器和服务器之间传递的数据就能被轻而易举的解密,进而造成危险. 

我们可以这么做: 
采用非对称加密的方式,让浏览器安全的把对称加密的密钥传送给服务器. 那什么是非对称加密呢? 假如有两把钥匙一个叫公钥,一个叫私钥,用公钥加密的数据只有私钥才能解开,那么只要服务器存留一份私钥,把公钥发个浏览器,就可以安全传输数据. 
问题似乎完美的解决了,但是不要忘记,服务器需要把它的公钥传递给浏览器,所以服务器如何保证它能正确的传递公钥呢(这问题像这样推倒下去,就没完没了,变成鸡和蛋的哲学问题了)?  

好吧,我们来个终结者:CA证书. 
CA证书是由权威机构颁发(意味着你可以信任他),证书的内容包含多种信息,其中就包括服务器的公钥,还包括证书有效期等等。 
通过它建立我们的信任基点,就可以保证服务器公钥被正确的传递给浏览器,然后浏览器可以使用它安全的把对称加密的密钥传递给服务器,之后以此密钥加密需要传递的信息,保证了数据的安全性 

可能到这里,你会有疑问,为什么我们不直接采用非对称加密加密数据,而先是使用非对称加密传送对称加密的密钥,之后传递数据使用对称加密? 
这里的原因很简单,非对称加密的计算效率远远不如对称加密; 
整个https流程实际上是: 使用非对称加密算法保证对称加密密钥的安全传递,然后使用对称加密来保证数据传输过程中的安全性 

以上是关于Https流程图的主要内容,如果未能解决你的问题,请参考以下文章

HTTPS请求流程分析

HTTPS请求流程分析

HTTPS执行流程解析

markdown流程图

https流程图和一些实现细节

MD-数学公式,甘特图,UML图,Mermaid流程图,Flowchart流程图,classDiagram类图