本文主要是介绍什么是https加密协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http
了解https,首先要了解下http协议,如果不清楚,可以看下这位大佬的文章,很详细。
https
https即使用了内容对称加密的http。对称加密有一个前提,就是双方都清楚密钥。为了避免密钥泄漏,需要使用非对称加密来加密密钥。为了解决"中间人攻击"问题,引入了CA机构 。
密钥传递的过程
密钥传递的过程大致如下:
客户端对服务器端发起请求,服务器返回一个证书。
证书的内容有很多,比如过期时间等,这里我们的关注点:
- 服务器端公钥;
- 校验Hash值生成算法;
- CA使用私钥加密后的校验Hash值。
客户端通过相同算法生成Hash值,并用CA的公钥解密校验Hash,看两者是否相等。
如果相等则生成对称秘钥,并用服务器端公钥加密对称秘钥,发给服务端。
然后客户端和服务端就可以使用对称密钥加解密数据了。
这里只是大致的过程,如果深究,可能要具体到加密算法、tls协议版本、握手包等,感兴趣的话可以看看这个文章。
包含CA公钥的证书一般会提前预装在系统内,也就是系统内根证书。
这篇关于什么是https加密协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!