跳到主要内容

认识

2024年04月07日
柏拉文
越努力,越幸运

一、认识


Preview

HTTP 是超文本传输协议, 通信端口为 80, 通信过程为 DNS 解析 -> TCP 连接 -> 传输数据, 中间没有任何安全传输相关的模块。HTTPS 是超文本传输安全协议, 通信端口为 443, 通信过程为 DNS 解析 -> TCP 连接 -> SSL / TLS 连接 -> 传输数据, TLS 相对于 SSL 更安全。其作用为: 对数据进行加密,并建立一个信息安全通道,来保证传输过程中的数据安全、对网站服务器进行真实身份认证

https 通过数字证书验证服务器是否为信任的服务器, 采用非对称加密的方式交换密钥,然后使用对称加密的方式对数据进行加密,并且对消息的内容采用摘要算法得到消息摘要,这样对端在解密数据后可以通过相同的消息摘要算法对计算后的消息摘要和传过来的消息摘要进行对比,从而判断数据是否经过篡改。

二、问题


2.1 详细讲解下 HTTPS 的连接过程?

首先,HTTPS 连接过程开始于 DNS 解析,将域名解析为服务器 IP 后,客户端与服务器进行 TCP 三次握手建立连接。接下来进入 TLS 握手阶段,客户端发送 ClientHello 消息,提供支持的 TLS 版本、加密套件和随机数;服务器响应 ServerHello,确定双方的加密参数,并发送数字证书。客户端验证证书合法性后,根据协商的密钥交换方式(目前主流为 ECDHE)生成共享密钥,并完成加密密钥的计算。双方随后交换 Finished 消息确认握手成功,从此通信采用对称加密保证数据安全。值得一提的是,TLS 1.3 更进一步,通过减少握手往返次数和强制使用前向保密的算法,提高了连接效率和安全性。此外,会话恢复机制还能大幅降低重复连接的延迟。