https原理理解

来源:互联网 发布:粮食进出口贸易数据 编辑:程序博客网 时间:2024/06/05 15:46

https要使客户端与服务器端的通信过程得到安全保证,必须使用对称加密算法,但是协商对称加密算法的过程,需要使用非对称加密算法来保证,然而使用非对称加密的过程也不安全,会有中间人篡改公钥的可能,所以客户端与服务器不直接使用公钥,而是使用数字证书颁发机构的证书来保证非对称加密过程本身的安全。

直接将公钥传递给客户端会有公钥被调包的问题,因为客户端无法确认返回公钥的人是服务器还是中间人,需要使用第三方机构使用他的私钥对服务端的公钥进行加密后再传给客户端,客户端使用第三方机构的公钥进行解密。

中间人也可以找第三方机构制作证书,客户端在这种情况下无法分辨接收的是服务器的证书还是中间人的证书。数字签名可以解决同一颁发机构颁发的不同证书被篡改的问题。

第三方机构对证书编号用私钥加密后放在证书上,这样是为了避免证书编号不会被调包。证书上写如何根据证书内容生成证书编号,客户端拿到证书后根据证书上的方法自己生成一个证书编号,如果生成的证书编号与解密后的证书上的证书编号相同,那么说明这个证书编号是真实的。

证书是https中的数字证书,证书编号是数字签名。

现实中,浏览器和操作系统会维护一个权威的第三方机构(包括他们的公钥),因为客户端收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。