HTTPS报文在SSL/TLS证书安全隧道传输的原理

HTTPS 是基于 TLS/SSL 协议的安全通信协议。通常,HTTPS 的认证和加密过程包括以下步骤。

单向认证(常见的HTTPS请求)

① 客户端发送请求给服务器时,服务器会发送自己的证书(server.crt)给客户端,证书中还包含公钥信息、域名信息、证书颁发机构,私钥(server.key)服务端自己留着用不对外公开;

② 客户端验证服务器证书是否由受信任的证书颁发机构(CA)签发、是否过期,并检查证书是否有效,如果验证通过,客户端信任服务器;

③ 客户端和服务器通过一种密钥交换算法(如 RSA 或 Diffie-Hellman)协商出一个对称加密密钥,用于后续的通信加密;

双向认证(需要客户端证书的HTTPS请求)

在双向认证中,除了服务器需要提供证书,客户端也需要提供自己的证书。

① 服务器证书验证:客户端验证服务器的证书,确保服务器是可信的。

② 客户端证书验证:客户端向服务器发送自己的证书(client.crt);服务器验证客户端证书是否由受信任的 CA 签发,并检查证书是否有效,如果验证通过,服务器信任客户端。服务器向客户端发送一个随机数(或挑战),服务器要求客户端使用自己的私钥(client.key)对随机数进行签名,客户端使用私钥对随机数进行签名并将签名结果发送给服务器,服务器使用客户端证书中的公钥(client.crt)验证签名或者解密数据服务器会检查随机数是否与之前发送的值匹配,如果签名验证通过,服务器确认客户端的身份。

③ 秘钥协商与加密:双方协商出一个对称加密密钥,用于后续的通信加密。客户端通过秘钥算法生成预主密钥后使用服务器证书中的公钥加密预主密钥(对称秘钥),并发送给服务器,服务器收到秘钥后用私钥解密

随机数(挑战)发送时机

在 TLS 握手阶段,客户端和服务器会分别发送随机数(Client Random 和 Server Random),用于密钥协商。

在双向认证中,服务器会在握手阶段生成随机数(挑战),用于验证客户端的身份。

随机数是服务器生成的,用于防止重放攻击;客户端对随机数进行签名,服务器验证签名,确保签名是由客户端的私钥生成的。

是否每次 HTTPS 请求都需要重新建立 TLS 会话?

不一定。这取决于是否启用了会话复用机制。

① 情况 1:不启用会话复用

每次 HTTPS 请求都会重新建立一个新的 TLS 会话。

每次握手都会生成新的随机数(ClientHello 和 ServerHello 中的随机数),并协商出新的对称加密密钥。

双向认证的身份验证(如客户端证书验证)会在每次握手中重复进行。

② 情况 2:启用会话复用

如果客户端和服务器支持会话复用(Session Resumption),后续的 HTTPS 请求可以复用之前的 TLS 会话。

会话复用时,不需要重新进行完整的 TLS 握手,也不会生成新的随机数和对称加密密钥。

双向认证的身份验证通常不会重复进行,因为服务器已经在之前的会话中验证过客户端的身份。

③ 总结 1:实际应用中的情况

在实际应用中,是否每次 HTTPS 请求都重新建立 TLS 会话,取决于以下因素:

服务器配置:服务器是否支持会话复用(Session Resumption)。

客户端配置:客户端是否支持会话复用。

安全需求:某些高安全性场景可能会禁用会话复用,强制每次请求都重新建立 TLS 会话。

双向认证通常用于高安全性场景(如银行系统、企业内部系统)。

在这些场景中,每次请求都需要验证客户端的身份,以确保请求是由合法客户端发起的。

如何判断服务器是否开启双向认证?

1、安装openssl

2、cmd输入

bash 复制代码
openssl s_client -connect www.114.com:443 -servername www.114.com -status

这行信息是OpenSSL工具直接报告的结果,明确表示服务器没有发送任何可接受的客户端证书CA名称列表。这意味着服务器在SSL/TLS握手过程中,并没有向客户端请求或要求提供客户端证书。

相关推荐
游戏开发爱好者81 天前
开心上架是什么,一站式 Apple 开发者工作台总览
android·小程序·https·uni-app·iphone·webview
2601_967019511 天前
关于SSL和TLS的常见问题解答
ssl
牛大兵1 天前
机顶盒获取局域网已经使用IP,开放的端口号,扫描摄像头,NAS,共享主机等开机自启局域网全量扫描工具
数据库·网络协议·tcp/ip
Mr. zhihao1 天前
从零手写一个 RPC 框架:用一条因果链推导出 Dubbo 的骨架
网络协议·rpc·dubbo
AI备忘录1 天前
(十一)DHCP 配置命令五厂商对照:华为 华三 锐捷 迈普 思科
服务器·网络·网络协议·网络安全·华为
游戏开发爱好者82 天前
WebSocket 抓包怎么查看内容?从握手到消息帧完整解读
网络协议·计算机网络·网络安全·ios·adb·https·udp
尘世壹俗人2 天前
如何生成SSL要用的自签证书
网络协议
外滩运维专家2 天前
通配符证书到期,阿里云上几个服务的证书怎么一次换完
运维·开发语言·nginx·https·php·消息推送
矩子01X2 天前
保姆级智能座舱测试入门:从 Android Automotive OS 到 SOA 服务的 7 层验证
android·自动化测试·网络协议·汽车测试
我变成萤火虫2 天前
反悔贪心(经典题目讲解)
c++·算法·贪心算法·stl·排序算法·反悔贪心