一句话定义:伪造 TLS 证书(Counterfeit Certificate)指攻击者让浏览器误以为某证书由受信任 CA(Certificate Authority,证书颁发机构)签发给目标域名,从而解密或篡改 HTTPS 流量。自己用工具签一张浏览器不认,那叫自签名证书(Self-signed Certificate),不算这种“伪造”。
怎么拿到看似合法的证书:TLS 证书本质是 CA 给“域名+公钥”盖章,浏览器只认信任链。攻击者会骗过 CA 的域名控制验证(DCV):控制 DNS、注册商邮箱、网站验证文件、ACME 账户或 CA 后台;或利用 CA 验证漏洞、DNS/BGP 劫持,把验证流量引到自己机器。签发成功后,证书在浏览器眼里就是合法的。另一条路是偷私钥:证书本身仍合法,但攻击者可冒充站点,这属于私钥泄露,不是伪造签发。
CT 日志为何没拦住:证书透明度(Certificate Transparency,CT)把证书写进公开可审计日志,浏览器可要求 SCT(Signed Certificate Timestamp,签名证书时间戳)。但 CT 是事后记录,不是实时防火墙:证书签发后仍能立刻使用;CA 漏提交或作恶时日志里没有;部分客户端不强制检查;域名所有者不监控日志,就不会知道有人给自己域名签了证;吊销和浏览器更新也有延迟。私钥泄露型冒用,CT 更管不了。内部 CA 签发的证书通常也不进公共 CT,企业中间人(MITM)场景可能看起来“正常”。
| 类型 | 浏览器信任 | CT 记录 | 典型风险 |
|---|---|---|---|
| 伪造/错误签发 | 受信任 | 通常有,可能漏 | 中间人解密 |
| 自签名 | 默认不信任 | 无 | 出现警告 |
| 合法证书+私钥泄露 | 受信任 | 有 | 冒充站点 |
| 已吊销 | 曾受信任 | 有 | 可能被拒 |
实际意义:站点要保护 DNS、注册商、CA/ACME 账户,启用多因素;用 CAA(Certification Authority Authorization,证书颁发机构授权)限制可签发 CA;监控 CT 日志,发现未知证书立即排查;私钥放密钥管理服务或硬件安全模块并定期轮换;部署 HSTS(HTTP Strict Transport Security)。AI/工程团队别在脚本里关闭 TLS 校验,否则下载依赖、模型、数据时容易被中间人投毒。普通用户看到证书警告别硬闯,核对域名拼写和证书详情;但锁标只说明链路加密,不保证站点是好人。企业设备可能预装内部根证书,锁标更不代表没被中间人。具体策略以浏览器和 CA 官方页面为准。
