https原理

​ 之前对https过程的理解过于表面,只知道三方机构的数字签名证书对服务端发来的公钥进行加密,保证公钥不被篡改,随后非对称加密(一般为RSA)保证对称加密算法的保密性和随机性,最后建立连接,但其实里边有很多细节,之前有过疑惑,但没有深究过。


​ 这玩意儿不好分板块还是直接一路往下写好了。

​ 最开始我也以为消息传输都是用非对称加密,后来才知道这样开销太大,所以都是用的对称加密。

​ 那么如何保证对称加密是安全的呢?

​ 用非对称加密保证对称加密的方式和密钥不会泄露呗。

​ 咦,那公钥肯定是服务端发给本地的,怎么确定公钥没被中间人篡改呢?

​ 这里就要用到数字证书了。

​ 服务端用第三方机构的私钥对公钥进行加密,再丢给客户端,然后客户端用第三方机构的公钥进行解密,确定非对称加密的公钥没有问题。

​ 那我怎么确定证书是真的呢?(你问题真特么多!

​ 所以还需要数字签名,用来解决同一机构颁发的不同证书被篡改的问题,证书是通过哈希算法(信息摘要算法)生成的,对证书内容进行哈希后,如果生成的签名一致,则说明没有问题。而且签名本身也会用第三方私钥进行加密。

​ 然而还有问题,第三方的公钥又怎么到客户端呢?

​ 这就要靠权威的第三方权威机构列表(CA),一次把公钥都丢过来,然后根据证书里边的颁发机构去本地找对应的公钥。

​ 所以说到底,还是需要第三方的。

​ 另外,没事不用纠结这么多细节,反而很乱,知道CA保证公钥安全,公钥保证对称加密安全就行了。