- 是否借助ai
HTTPS、TLS、CA证书与抓包原理学习笔记
1. 整体关系
互联网安全通信涉及几个核心概念:
HTTPS | | 使用 ↓TLS | | 使用密码算法 | +---- 非对称密码(RSA/ECC) | +---- 密钥交换(ECDHE) | +---- 对称加密(AES) | +---- 哈希/认证算法
同时:CA证书负责身份认证简单理解:
- HTTPS:HTTP + TLS
- TLS:负责建立安全通信的协议
- CA:负责证明“这个公钥属于谁”
- RSA/ECC:生成密钥、签名等密码学能力
- AES:真正加密大量通信数据
2. SSL 和 TLS 的关系
SSL
全称:
Secure Sockets Layer(安全套接层)
最早由 Netscape 提出。
版本:
SSL 1.0SSL 2.0SSL 3.0TLS
全称:
Transport Layer Security(传输层安全协议)
TLS 是 SSL 的后继版本。
发展:
SSL 3.0 ↓TLS 1.0 ↓TLS 1.1 ↓TLS 1.2 ↓TLS 1.3现在实际使用:
TLS但是很多地方仍然习惯叫:
- SSL证书
- SSL配置
- SSL加密
实际大部分指 TLS。
3. TLS解决什么问题?
TLS主要解决三个问题:
3.1 保密性
防止别人看到通信内容。
例如:
HTTP:
password=123456抓包可以看到。
TLS:
x83hd92jd82无法理解。
3.2 身份认证
确认:
我连接的是正确服务器,不是假服务器。
例如:
访问:
https://www.baidu.com需要确认:
这真的是百度吗?靠:
CA证书+数字签名3.3 数据完整性
防止通信内容被修改。
例如:
原数据:
money=100被修改:
money=10000TLS可以检测。
4. 公钥和私钥不是RSA专属
常见误解:
RSA才有公钥和私钥。
正确:
非对称密码算法都有公钥和私钥,RSA只是其中一种实现。
关系:
非对称密码算法
| +--- RSA | +--- ECC | +--- ECDSA
↓
生成密钥对
公钥 私钥5. RSA是什么?
RSA是一种非对称密码算法。
它生成:
公钥 Public Key私钥 Private Key特点:
公钥加密私钥解密
私钥签名公钥验证6. CA是什么?
CA:
全称:
Certificate Authority(证书颁发机构)
作用:
证明某个公钥属于某个实体。
例如:
服务器:
www.baidu.com拥有:
百度公钥百度私钥但是客户端不知道:
这个公钥是不是百度的?所以需要 CA 证明。
7. CA证书里面有什么?
重点:
CA证书包含:
CA名称CA公钥有效期CA签名其他信息不包含:
CA私钥 ❌原因:
证书需要公开。
所有浏览器和操作系统都保存:
根CA证书里面包含:
CA公钥用于验证签名。
8. CA为什么有公钥和私钥?
因为 CA 需要进行数字签名。
CA拥有:
CA私钥 🔴CA公钥 🟢签发证书:
例如百度申请证书:
步骤:
第一步
百度生成:
百度公钥百度私钥保存:
百度私钥提交:
百度公钥+域名给CA。
第二步
CA签名:
计算:
hash(域名 + 百度公钥)
↓
CA私钥签名
↓
生成百度证书最终:
百度证书:
域名百度公钥CA签名第三步
浏览器验证:
百度证书
↓
找到CA公钥
↓
验证CA签名
↓
确认百度公钥可信9. CA私钥为什么不能泄露?
准确说:
不能泄露的是 CA 私钥,不是 CA证书。
CA私钥作用:
签发证书如果泄露:
攻击者可以:
拿CA私钥
↓
生成:
bank.com证书openai.com证书google.com证书
↓
浏览器认为可信后果:
攻击者可以伪造任何网站身份。
10. 抓包工具为什么需要安装CA?
例如:
- Charles
- Fiddler
- Burp Suite
- mitmproxy
它们实现:
HTTPS中间人代理(MITM)。
正常:
客户端 | TLS |服务器抓包:
客户端
| TLS
抓包工具
| TLS
服务器问题:
客户端收到的是:
api.xxx.com证书但是实际上:
抓包工具生成:
api.xxx.com假证书签发者:
抓包工具CA如果没有安装:
抓包工具CA客户端:
不信任连接失败安装后:
系统信任:
抓包工具CA验证:
api.xxx.com证书
↓
抓包工具CA
↓
可信于是抓包工具可以解密HTTPS。
11. 为什么安装CA有风险?
因为:
安装根CA = 增加信任来源。
例如:
默认:
信任:
DigiCertLet's EncryptGlobalSign安装:
某代理软件CA之后:
信任:
DigiCertLet's EncryptGlobalSign某代理软件这个CA理论上可以签发:
bank.com证书openai.com证书你的系统会接受。
12. 公司内部服务为什么需要配置CA?
不是所有内部服务都需要。
原因:
公司可能使用:
公司内部CA例如:
Company Root CA
| | ↓
payment.company.com证书你的电脑收到:
payment.company.com证书检查:
谁签发?
Company Root CA但是:
电脑默认不知道:
Company Root CA所以:
SSLHandshakeException解决:
安装:
Company Root CA证书让系统信任:
公司内部所有服务13. CA和访问外网大模型的关系
安装CA:
不能直接:
获得更强模型权限CA只解决:
HTTPS信任问题如果企业内网访问外部AI:
通常结构:
开发电脑
|
企业代理 / AI Gateway
|
外网大模型代理可能需要:
安装企业CA原因:
代理需要检查或转发HTTPS流量。
真正提供访问能力的是:
代理/网关/网络出口不是CA。
14. TLS现代通信流程(简化)
访问:
https://example.com流程:
① 服务端发送证书
包含:
域名服务器公钥CA签名② 客户端验证
检查:
CA是否可信域名是否匹配证书是否过期③ 密钥交换
现代TLS:
主要使用:
ECDHE生成:
会话密钥④ 加密通信
大量数据:
使用:
AESChaCha2015. 最终知识体系
HTTPS |TLS | +----------------+ | |身份认证 数据加密 | |CA证书 AES |数字签名 |非对称密码 | +------+ | RSA/ECC核心记忆:
- TLS负责安全通信流程
- CA负责证明身份
- 证书里面有公钥,没有私钥
- CA私钥负责签发证书,绝不能泄露
- RSA只是非对称算法的一种
- 抓包工具通过让用户信任它的CA,实现HTTPS中间人代理
- 安装CA不是获得权限,而是扩大信任范围