TLS/SSL 协议层主要的职责就是借助下层协议的信道安全地协商出一份加***,并且用此**来加密HTTP请求响应报文。它解决了一下三个安全方面的问题:
- 提供验证服务,验证本次会话 实体身份的合法性
- 提供加密服务,强加密机制能保证通信过程中的消息不会被破译
- 提供防篡改服务,利用Hash算法对消息进行消息签名,通过验证签名保证通信内容不被篡改
加密算法参考:https://blog.csdn.net/fd2025/article/details/80035647
HTTPS的工作原理及流程如下:
- 客户端浏览器向服务器发送SSL/TLS协议的版本号、加密算法的种类、产生的随机数,以及其他需要的各种信息
- 服务器从客户端支持的加密算法中选择一组加密算法与Hash算法,并且把自己的证书(包含网站网址、加密 公钥、证书颁发机构等)也发送给客户端
- 浏览器获取服务器证书后 验证其合法性,验证颁发机构是否合法,验证证书中的网址是否与正在访问的地址一致,通过验证的浏览器会显示一个小锁头,否则,提示证书不 授信。
- 客户端浏览器生成一串随机数并用服务器传来的公钥加密,再使用约定好的Hash算法计算握手信息,发送服务端
- 服务器接收到握手信息后用自己的私钥解密,并用散列算法验证,这样双方都有了此次通信的**
- 服务器再使用**加密一端握手 信息,返回给客户端浏览器
- 浏览器用**解密,并用散列算法验证没确定算法与**
完成以上7步后双方就可以利用此次协商 好的**进行通信。