SSL/TLS 握手是在客户端和服务器之间建立安全连接的过程。
主要包括以下步骤
你好客户(你好客户)
客户端将支持的SSL/TLS版本、密码套件、压缩方法和随机数(客户端随机)发送到服务器。 服务器你好(服务器你好)
服务器从客户端支持的密码套件中选择一个密码套件,并将其与服务器随机数一起返回给客户端。 服务器证书
服务器将包含其公钥的数字证书发送给客户端。客户端使用此证书来验证服务器的身份。 服务器你好完成
服务器向客户端发送消息,表示服务器端Hello消息完成。 客户端密钥交换
客户端生成预主密钥,使用服务器的公钥对其进行加密,然后将其发送到服务器。服务器使用其私钥来解密预主密钥。 生成对称密钥
客户端和服务器根据预主密钥、客户端随机数和服务器随机数生成对称密钥,用于后续数据加密传输。 客户完成
客户端发送加密的“完成”消息以表明握手过程已完成。使用生成的对称密钥对消息进行加密。 服务器完成
服务器还发送加密的“完成”消息以表明握手过程已完成。该消息也使用生成的对称密钥进行加密。
SSL/TLS 握手过程的流程图
下面是SSL/TLS 握手过程的详细流程图。
+———————————————— +
| 客户|
+————————————————- +
|
| 客户您好
|(支持的版本、密码套件、随机数)
v
+————————————————- +
| 服务器|
+———————————————— +
^
| 服务器你好
|(所选版本、密码套件、随机数)
|
| 服务器证书
|(服务器公钥证书)
|
| 服务器您好,已完成
v
+———————————————— +
| 客户|
+———————————————— +
^
| 客户端密钥交换
|(使用服务器公钥加密的预主密钥)
|
| [生成对称密钥]
| 客户完成
|(使用对称密钥加密的完成消息)
v
+———————————————— +
| 服务器|
+———————————————— +
^
| [解密预主密钥并生成对称密钥]
| 服务器完成
|(使用对称密钥加密的完成消息)
v
+———————————————— +
| 客户|
+———————————————— +
【开始发送对称加密数据】
该流程图逐步完成握手过程的各个步骤,最终在客户端和服务器之间建立安全加密通道以进行后续数据传输。
对数字证书要有基本的理解
数字证书是证明实体(例如服务器、个人或组织)身份的电子文档。在SSL/TLS握手过程中,服务器使用数字证书向客户端证明自己的身份,并提供公钥以便客户端可以加密敏感信息。
数字证书的内容
主题信息
包含有关持有证书的实体的信息,例如组织名称、部门名称、国家/地区和电子邮件地址。 公钥
证书所有者的公钥。用于数据加密或签名验证。在SSL/TLS 握手期间,客户端使用此公钥来加密预主密钥。 出版商信息
有关颁发证书的证书颁发机构(CA) 的信息。 有效期
证书的有效期,包括开始日期和结束日期。 证书序列号
证书的唯一标识符。 证书使用范围(KeyUsage)
指定证书的用途,例如数字签名和数据加密。 扩展
其他附加信息,例如证书策略、CRL(证书吊销列表)分发点等。 符号
证书颁发机构对证书内容进行数字签名,用于验证证书的完整性和真实性。
数字证书的作用
认证
客户端可以通过验证数字证书的颁发者和签名来验证服务器的身份,从而确认证书的真实性。 公钥分发
数字证书包含服务器的公钥,客户端可以使用该公钥对敏感数据(例如预主密钥)进行加密,以确保数据传输过程中的安全。
数字证书的结构
标准X.509数字证书的结构如下:
证书:
数据:
版本: 3 (0x2)
序列号: 123456789 (0x75bcd15)
包含签名算法: SHA256RSA加密
Issuer: C=US、O=Let\’s Encrypt、CN=Let\’s Encrypt 权限X3
有效的
先前: 一月1 00:00:00 2024 GMT
: 1 月1 日之后不包含00:00:00 2025 GMT
subject: CN=example.com
主题公钥信息:
公钥算法: rsa 加密
公钥:(2048 位)
模数:
00:af:8c:45:3b:e2:ad:e2:29:ab:ee:6f:12:3f:ad:
59:e2:31:92:e3:ef:dd:7b:58:e2:ab:cb:13:57:aa:
.
索引: 65537 (0x10001)
包含签名算法: SHA256RSA加密
6 0
62:aa:72:bd:e6:df:67:1c:2e:72:e6:df:14:39:b2:cd336022:75 33 36 0
.
详细的握手过程示例
为了更好地理解数字证书在SSL/TLS 握手过程中的作用,这里有一个详细的示例。
你好客户
客户端将支持的SSL/TLS 版本、密码套件和随机数发送到服务器。服务器问候语
服务器选择密码套件并将服务器的随机数和服务器的数字证书发送给客户端。 验证服务器证书
客户端使用预装的CA公钥验证服务器证书的签名,确保证书未被篡改。检查证书有效期和颁发者,确保证书有效且可信。 生成预主密钥
客户端生成预主密钥,使用服务器的公钥对其进行加密,然后将其发送到服务器。服务器使用其私钥来解密预主密钥。 生成对称密钥
客户端和服务器使用预主密钥、客户端随机数和服务器随机数生成用于加密后续通信的会话密钥。
通过这个过程,在客户端和服务器之间建立了安全的加密通道,保证了数据传输的机密性和完整性。
以上关于#SSL/TLS握手过程的相关内容摘自互联网,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92120.html