HTTPS加密原理

1.HTTPS对称加密

服务器每次发送真实数据前,会先生成一把密钥传输(以明文方式传输密钥容易被劫持)给客户端,服务器给客户端发送的真实数据会先用这把密钥进行加密,客户端收到加密数据后再用密钥进行解密(客户端给服务器发送数据同理)

2.HTTPS非对称加密

客户端和服务器都有两把密钥,一把公钥一把私钥(公钥加密的数据只有私钥才能解密,私钥加密的数据只有公钥才能解密),服务器在给客户端发送真实数据前,先用客户端明文传输给服务器的公钥进行加密,客户端收到后用自己的私钥进行解密,反之同理

3.HTTPS对称加密+非对称加密

鉴于HTTPS非对称加密在加密时速度特别慢,可使用HTTPS对称加密+非对称加密(以非对称加密的方式传输对称加密密钥),接着就可使用对称加密的密钥传输数据

非对称加密之所以不安全是因为客户端不知道接收的公钥是否属于服务器

4.HTTPS数字证书

核心在于证明客户端接收的公钥是属于服务器的,解决这个问题方法是使用数字证书(即找到一个大家都认可的认证中心CA)

服务器在给客户端传输公钥的过程中,会将公钥+服务器个人信息通过hash算法生成信息摘要,为防止信息摘要被掉包服务器会用CA提供的私钥对信息摘要加密形成数字签名。最后还会将没有进行hash算法计算的服务器个人信息+公钥和数字签名合并在一起形成数字证书

客户端拿到数字证书后,用CA提供的公钥对数字签名进行解密得到信息摘要,然后对数字证书中服务器个人信息+公钥进行hash得到另一份信息摘要,两份信息摘要进行比对,若一样则是目标服务器,否则不是

服务器会申请证书,客户端会内置证书

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章