一、HTTPS 简介
随着互联网的发展,网络安全问题越来越受到重视。在传统的 HTTP 协议中,数据以明文形式传输,容易被窃听、篡改或伪造。为了提高数据传输的安全性,HTTPS(HyperText Transfer Protocol Secure,超文本传输安全协议)应运而生。
HTTPS 是在 HTTP 的基础上加入 SSL/TLS(Secure Sockets Layer/Transport Layer Security)安全层,实现数据加密传输和身份认证,从而保证通信过程中的机密性、完整性和真实性。
二、HTTPS 的特点
相比 HTTP,HTTPS 具有以下优点:
1. 数据加密
通信数据经过加密处理,即使被截获,也无法直接查看内容。
2. 身份认证
通过数字证书验证服务器身份,防止访问到假冒网站。
3. 数据完整性
能够检测数据在传输过程中是否被篡改。
4. 安全性更高
有效防止中间人攻击(MITM)、数据窃听等安全问题。
三、HTTPS 加密原理
HTTPS 采用了两种加密方式结合的方案:
对称加密
特点:
-
加密和解密使用同一个密钥
-
加密速度快
-
适合大量数据传输
常见算法:
-
AES
-
DES
-
3DES
缺点:
- 密钥传输存在安全风险
非对称加密
特点:
-
使用公钥和私钥
-
公钥负责加密
-
私钥负责解密
常见算法:
-
RSA
-
ECC
优点:
- 密钥传输安全
缺点:
- 运算速度较慢
数字证书
数字证书由 CA(Certificate Authority,证书颁发机构)签发。
证书中包含:
-
网站域名
-
网站公钥
-
证书有效期
-
CA 签名信息
浏览器通过验证证书来确认服务器身份是否合法。
四、HTTPS 加密流程
HTTPS 建立连接时主要经历以下几个步骤。
第一步:客户端发起 HTTPS 请求
用户在浏览器中输入:
https://www.example.com
浏览器向服务器发起连接请求,并发送支持的:
-
TLS 版本
-
加密算法
-
随机数 Client Random
第二步:服务器返回数字证书
服务器收到请求后,向客户端返回:
-
数字证书
-
公钥
-
Server Random
浏览器接收到证书后开始验证其合法性。
第三步:客户端验证证书
浏览器检查:
-
证书是否过期
-
证书是否由可信 CA 签发
-
域名是否匹配
-
证书是否被篡改
如果验证失败,浏览器会提示:
您的连接不是私密连接
验证成功则继续通信。
第四步:生成会话密钥
客户端生成一个随机数:
Pre-Master Secret
然后利用服务器证书中的公钥进行加密:
公钥加密(Pre-Master Secret)
并发送给服务器。
第五步:服务器解密
服务器使用自己的私钥解密:
私钥解密(Pre-Master Secret)
获得客户端生成的随机数。
此时:
-
Client Random
-
Server Random
-
Pre-Master Secret
双方都已经拥有。
第六步:生成对称加密密钥
客户端和服务器分别根据:
Client Random
Server Random
Pre-Master Secret
计算出同一个会话密钥(Session Key)。
该密钥用于后续的数据加密。
第七步:开始加密通信
后续所有 HTTP 数据都使用对称加密进行传输。
例如:
客户端发送:
用户名:admin
密码:123456
经过加密后变成:
A8F2D1C9E4...
即使被第三方截获,也无法获取真实内容。
五、HTTPS 通信流程图
客户端 Browser 服务器 Server
1. Client Hello
------------------------------------>
TLS版本
加密套件
Client Random
<------------------------------------
2. Server Hello
数字证书
公钥
Server Random
3. 验证证书
4. 生成Pre-Master Secret
------------------------------------>
公钥加密后发送
<------------------------------------
私钥解密成功
5. 双方生成Session Key
====================================
对称加密通信开始
====================================
加密HTTP数据传输
六、HTTPS 与 HTTP 对比
| 对比项 | HTTP | HTTPS |
|---|---|---|
| 安全性 | 低 | 高 |
| 数据传输 | 明文 | 加密 |
| 身份认证 | 无 | 有 |
| 默认端口 | 80 | 443 |
| 证书要求 | 不需要 | 需要 CA 证书 |
| 性能开销 | 小 | 略高 |
七、总结
HTTPS 是在 HTTP 的基础上增加 SSL/TLS 安全层形成的安全通信协议。其核心思想是利用非对称加密安全地交换密钥,再利用对称加密进行高效的数据传输,并通过数字证书验证服务器身份。
HTTPS 的加密流程主要包括:
-
客户端发起 HTTPS 请求;
-
服务器返回数字证书;
-
客户端验证证书;
-
客户端生成随机密钥并使用公钥加密;
-
服务器利用私钥解密;
-
双方生成会话密钥;
-
使用对称加密进行安全通信。
正是由于这些机制,HTTPS 能够有效保证网络通信过程中的机密性、完整性和真实性,已经成为现代互联网最重要的安全通信协议之一。