关键词:HTTPS、原理、CA证书、中间人攻击、TLS握手、加密传输
HTTPS为啥就比HTTP传输更安全,是如何做到的,底层原理是怎样的?这是一个很经典的知识点,前后端的开发者都需要搞清楚。
一、HTTPS核心原理
流程图
HTTPS 的核心工作原理:TLS 握手 + 加密传输
阶段 1:TLS 握手(协商加密参数 + 验证身份 + 交换对称密钥)
TLS 的全称是 Transport Layer Security,即 传输层安全协议;TLS 是 SSL(Secure Sockets Layer)的继任者,提供了更强的安全性和更高的效率。
1、客户端发起请求:txiejun.com 服务端接收请求,返回证书(包含非对称加密公钥,证书签名,证书内容等)
2、客服端判断证书是否合法,如果不合法,警告提示,否则生成随机数(对称加密密钥)
3、通过公钥非对称加密随机数,传输加密后的随机数给后端
4、后端通过非对称私钥解密加密后的随机数,获得对称加密密钥
阶段 2:加密传输 HTTP 数据
5、通过传入的随机数对数据进行对称加密,传递对称加密后的内容给客户端
6、客户端根据本地存储的随机数(对称加密密钥)对内容进行解密,拿到真实数据
7、通过对称加密传输所有内容
二、中间人攻击
中间人攻击,英文为Man-in-the-Middle,简称MITM。是一种网络攻击方式,攻击者在通信双方之间秘密拦截、篡改或伪造消息,使双方以为自己在直接安全通信。
流程图
1、攻击者必须先把自己放到客户端与服务器之间的网络路径上,常用的攻击手段有:
- ARP 欺骗:伪造 ARP 消息,欺骗设备将数据发往攻击者,窃听或篡改流量。
- 伪造 Wi-Fi 热点:创建假 Wi-Fi 热点诱导用户连接,拦截数据或窃取凭据。
- DNS 污染:篡改 DNS 解析,误导用户访问恶意 IP 地址。
- BGP 劫持:伪造 BGP 路由信息,重定向互联网流量到攻击者控制的网络。
- 控制路由/交换设备:通过获取设备管理权限,操纵网络流量或配置以窃听、篡改或阻断数据。
2、向客户端呈现伪造或误签的证书,使客户端信任中间人
3、让客户端与攻击者做密钥交换(而非与真实服务器),从而解密并重建会话
4、在客户端<->中间人<->服务器之间做“解密—检查—重加密”,用于内容过滤或窃听/篡改。
如何防止中间人攻击?
1、不要随意连接公共WIFI
2、确保访问HTTPS网站
3、不要随意忽略证书不安全警告
4、使用VPN保护数据传输
5、不要打开钓鱼邮件
6、安装并及时更新杀毒软件
三、CA证书
CA全称为Certificate Authority,即证书颁发机构。CA证书是证书颁发机构签发的数字证书,主要用于验证和确保网站、应用程序等通信双方身份的真实性。
1. 服务端申请数字证书
-
生成公私钥对:使用工具(如 OpenSSL)生成公钥和私钥。
-
创建证书签名请求(CSR) :包括公钥和基本信息(如域名、组织等),并用私钥签名。
-
提交 CSR 给 CA:选择一个证书颁发机构(如 Let's Encrypt、DigiCert),提交 CSR 申请证书。
-
CA 验证身份并签发证书:CA 验证请求信息后,签发证书(包含公钥和 CA 签名)。
- 生成证书内容(包括申请者公钥等)
- 使用hash算法对证书内容进行计算获得摘要
- CA用自己的私钥对摘要进行加密,生成数字签名
- 颁发数字证书(包含申请者公钥,CA公钥,CA数字签名,证书内容等)
-
安装证书:在 Web 服务器(如 Apache、Nginx)上安装证书和中间证书。
2. 客户端验证 CA 证书
- 客户端收到证书链:包括中间证书。
- 验证证书的有效性:检查证书是否过期,未撤销。
- 验证证书的信任链:确认证书是否由受信任的 CA 签发,检查证书链的完整性。
- 域名匹配:检查证书中的域名是否与请求的域名匹配。
- 验证证书合法性: 客户端通过对比摘要判断是否合法。
- 用CA公钥解密证书的CA签名 得到原始hash1
- 对证书内容用相同hash算法计算出摘要hash2
- 对比hash1和hash2是否相等,如果相等证书未被篡改,否则证书不可信
四、加密机制
算法
1. 对称加密
- 说明:使用同一密钥进行加密和解密。
- 常用算法:DES,AES,RC2
- 优缺点:效率极高,易泄露,适合大量数据加密场景
2. 非对称加密
- 说明:使用一对密钥(公钥加密,私钥解密)
- 常用算法:RSA,DSA,ECDSA
- 优缺点:安全性高,效率低,适合较小数据和安全性较高的加密场景
3. 数据指纹
- 说明:判断数据是否被篡改
- 常用算法:MD5,SHA1,SHA256,SHA512
2. 数据加密:防 “窃听”
HTTPS 结合非对称与对称加密,平衡安全与效率:
- 非对称加密:仅用于 TLS 握手,交换 “预主密钥 / 临时密钥材料”,安全性高但效率低,不适合传大量数据;
- 对称加密:用于数据传输,用 “会话密钥”(经非对称加密安全交换,不明文传输)加密,效率极高(比非对称快 100-1000 倍)。
作用: 黑客截获数据也因无会话密钥,无法解密,仅见乱码。
3. 完整性校验:防 “篡改”
核心依赖 “消息认证码(MAC)” 或 “哈希算法(如 SHA)”:
- 客户端:对 “明文数据 + 随机数” 算 “摘要”(如 SHA-256 生成 256 位哈希值),用会话密钥加密摘要生成 MAC,附在数据后;
- 服务器:用相同算法和密钥重算摘要,与解密后的 MAC 比对 —— 一致则数据未篡改,不一致则丢弃数据。
作用: 杜绝 “中间人篡改”(如改转账金额),篡改后摘要与原 MAC 不匹配,会被识别拒绝。
通过以上知识的整理,发现HTTPS这部分涉及到的知识点真的不简单,以上对一些细节都没有太深入的探究,知识梳理了最核心的逻辑部分。