HTTPS加密概述

2018-10-15  本文已影响12人  狗子孙

HTTPS传输过程

对称加密算法的复杂度低,所以在传输数据的时候,使用的是对称加密算法;
但是对称加密算法使用的是相同的秘钥,为了保证秘钥的安全性,单独对秘钥的传输采用非对称加密;
同时,数据的传输过程中时候用HASH算法用于验证数据的完整性。

  1. 获得网站证书之后浏览器要做以下工作:
    a) 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
    b) 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码(这其实就是用于之后数据通信的对称加密算法的秘钥),并用证书中提供的公钥加密(对秘钥的加密采用非对称的方法)。
    c) 使用约定好的HASH算法计算握手消息,并使用生成的随机数(对称算法的秘钥)对消息进行加密,最后将之前生成的被公钥加密的随机数密码,HASH摘要值(已经被对称算法加密)一起发送给服务器

  2. 网站接收浏览器发来的数据之后要做以下的操作:
    a) 使用自己的私钥将信息解密并取出浏览器发送给服务器的随机密码(得到了对称加密算法的秘钥),使用密码解密浏览器发来的握手消息(用对称算法的秘钥解HASH摘要值),并验证HASH是否与浏览器发来的一致。
    b) 使用随机密码加密一段握手消息,发送给浏览器。

  3. 浏览器解密并计算握手消息的HASH,如果与服务端发来的HASH一致,此时握手过程结束,之后所有的通信数据将由之前浏览器生成的随机密码并利用对称加密算法进行加密。

参考

详细解析 HTTP 与 HTTPS 的区别
https的加密方式 介绍 + 常见的加密技术

上一篇下一篇

猜你喜欢

热点阅读