HTTPS 与 TLS
校招考察频度:★ 高频(核心必背·高频生死线) 一句话速记:非对称加密换会话密钥,对称加密传业务数据;CA 数字签名验真伪,防中间人窃听与篡改。
HTTPS = HTTP + TLS(传输层安全协议)。面试核心主线:为什么单纯对称或非对称都不行?CA 证书怎么防中间人攻击(MITM)?TLS 1.2 与 1.3 握手性能差异?
一、解决三大网络安全危机
| 面临威胁 | 危害后果 | HTTPS 应对机制 |
|---|---|---|
| 窃听风险 | 黑客在路由节点嗅探明文密码和敏感信息 | 机密性:混合加密(对称加密批量传输,性能高;非对称加密安全分发密钥)。 |
| 篡改风险 | 网络运营商插广告、黑客篡改传输内容 | 完整性:摘要算法(HMAC/SHA256),每个数据包附带消息认证码,被改即校验失败。 |
| 冒充风险 | 黑客搭建假冒钓鱼网站(DNS 劫持)诱骗登录 | 真实性/身份认证:数字证书(CA 签发),验证服务端真实合法身份。 |
混合加密体系
- 对称加密(AES):快,适合加密数据,但密钥分发难
- 非对称加密(RSA/ECC):慢,适合交换密钥,公钥公开私钥保密
- 实际方案:非对称交换对称密钥,对称加密数据(混合加密)
TLS 握手(1.2)
TLS 1.2 握手: 非对称换密钥, 对称传数据
握手要点:
- 双方交换随机数 + 客户端生成预主密钥(公钥加密传输),三者派生会话密钥
- 证书验证:客户端验证服务端证书是否可信(证书链 → 根证书)
- 之后所有数据用对称密钥加密(AES),性能可接受
TLS 1.3 的变化
- 握手从 2-RTT 降到 1-RTT(甚至 0-RTT 恢复):ClientHello 里直接带密钥共享(ECDHE)
- 移除旧的不安全套件(RSA 密钥交换、静态 DH)
- 前向保密成为默认:每次握手临时密钥,私钥泄露也解不开历史流量
- 考点:1.3 更快 + 更安全,说”1-RTT + 默认前向保密”即可
证书体系
证书链: 逐级信任到内置根
- 证书 = 公钥 + 域名 + 有效期 + 签发者签名
- 验证:从服务端证书沿签发链查到内置根证书,验签通过即可信
- 自签名证书:不在信任链,浏览器报错(内网/测试用)
- 证书失效/过期是生产事故常见原因(HTTPS 报错排查第一步)
面试追问
- HTTPS 怎么防窃听? 对称加密数据。密钥通过非对称加密安全交换(混合加密)
- TLS 握手做了什么? 协商套件 → 服务端发证书 → 客户端验证并加密传输预主密钥 → 派生会话密钥 → 对称通信
- 证书是干什么的? 证明”我是 example.com”:公钥 + 签名链到内置根。防冒充
- TLS 1.3 改进? 1-RTT 握手(0-RTT 恢复)、默认前向保密、移除弱套件
- 前向保密? 每次握手用临时密钥(ECDHE),长期私钥泄露也解不开历史流量