
TLS 1.3通过简化握手流程(减少步骤、支持0-RTT、增强密钥交换安全性),结合证书 pinning、HSTS等机制,有效防范中间人攻击;360浏览器通过这些技术,确保通信安全,防止中间人窃取用户Cookie等敏感数据。
TLS 1.3握手流程分为四个阶段,核心逻辑是“身份认证+密钥协商+加密通信”:
ClientHello(包含支持的协议版本、加密套件如TLS_AES_128_GCM_SHA256、会话标识符),Server回应ServerHello(选择加密套件)。ClientKeyExchange(包含预主密钥,支持0-RTT,即客户端可立即发送应用数据),Server验证证书后生成主密钥。CertificateVerify(Client用主密钥验证身份)。Finished消息,验证握手过程未被篡改。类比:就像两个人见面,先交换“名片”(证书),约定一个“秘密”(密钥),之后用这个秘密加密对话。中间人攻击就是冒充一方,窃取秘密或篡改对话。
| 特性 | TLS 1.2 | TLS 1.3 |
|---|---|---|
| 握手步骤数量 | 4(ClientHello→ServerHello→ClientKeyExchange→CertificateVerify→Finished) | 4(简化,减少步骤,如ClientKeyExchange合并) |
| 0-RTT支持 | 不支持 | 支持(客户端可发送应用数据) |
| 密钥交换算法 | RSA、DHE、ECDHE | ECDHE(默认)、支持0-RTT |
| 认证方式 | 服务器认证客户端(可选),客户端认证服务器(可选) | 服务器认证客户端(可选),客户端认证服务器(可选),更强调密钥交换的安全性 |
| 使用场景 | 传统Web应用,兼容性要求高 | 新建应用,追求性能和安全性 |
| 注意点 | 可能存在弱加密套件,易受攻击 | 需要客户端支持,部分旧设备不兼容 |
HTTP请求(简化):
GET / HTTP/1.1\r\nHost: www.example.com\r\nUpgrade: TLS/1.3\r\nConnection: upgrade\r\nTLS-Protocol-Version: 1.3\r\nTLS-Protocol-Features: 0x0001 (0-RTT supported)HTTP/1.1 200 OK\r\nServer: Nginx\r\nContent-Type: text/html\r\nConnection: close中间人攻击窃取Cookie:
攻击者截获Client的ClientHello,修改为支持弱加密套件(如TLS_RSA_WITH_RC4_128_SHA),并伪造Server的证书(替换为攻击者的证书)。当Client连接时,攻击者冒充Server,接收Client的Cookie(如JSESSIONID=abc123),然后转发给真实Server,实现窃取。
“您好,关于TLS 1.3握手,它简化了流程,主要步骤是ClientHello、ServerHello、密钥交换(支持0-RTT,客户端可发送应用数据)、证书交换和完成。360防范MITM主要通过证书 pinning(绑定特定证书公钥)、HSTS(强制HTTPS)、安全头(如Strict-Transport-Security)以及TLS 1.3的0-RTT保护。比如,中间人攻击中,攻击者可以截获Cookie,因为传统TLS 1.2中客户端可能发送明文Cookie,攻击者通过中间人篡改请求,窃取Cookie。360通过证书 pinning,确保只有合法的证书才能解密,防止伪造。”
0-RTT的优缺点?
如何处理服务器端0-RTT?
证书 pinning的实现方式?
HSTS的作用?
如何绕过证书 pinning?