概述
在HTTPS协议中,"握手"是指客户端(通常是浏览器)与服务器之间建立安全连接的过程。这个过程通常被称为TLS握手(之前叫SSL握手),它的主要目的是确保双方通信的安全性和数据的完整性。
HTTPS 握手过程的主要步骤:
客户端Hello (Client Hello):
客户端向服务器发送一个“Hello”消息,其中包含支持的TLS版本、加密算法以及一个随机数。
服务器Hello (Server Hello):
服务器回应客户端的“Hello”消息,选择双方都支持的TLS版本和加密算法,并发送自己的随机数。
服务器还会发送自己的数字证书,这个证书包含服务器的公钥,并由一个可信的证书颁发机构(CA)签名。
客户端验证服务器证书:
客户端使用预先安装的CA根证书来验证服务器提供的证书是否可信。
如果证书可信,客户端将继续握手流程;如果不可信,握手将失败,并且客户端通常会向用户显示安全警告。
生成会话密钥:
客户端生成一个预主密钥(Pre-Master Secret),并使用服务器的公钥对其加密,然后将其发送给服务器。
服务器使用自己的私钥解密得到预主密钥。
计算会话密钥:
客户端和服务器各自使用预主密钥和先前交换的随机数生成一个对称的会话密钥,这个密钥将用于加密接下来的通信。
客户端完成握手 (Client Finished):
客户端发送一个加密的“Finished”消息,表明握手的客户端部分已经完成。
服务器完成握手 (Server Finished):
服务器也发送一个加密的“Finished”消息,表示握手的服务器部分也已经完成。
安全通信开始:
握手完成后,客户端和服务器之间的通信将使用生成的对称会话密钥进行加密,确保传输的数据安全。
通过这个握手过程,HTTPS确保了通信的保密性(通过加密)、数据的完整性(通过校验)以及身份的认证(通过数字证书)。
最后
以上就是名字长了才好记为你收集整理的闪步面试之: https 握手的全部内容,希望文章能够帮你解决闪步面试之: https 握手所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复