浏览器锁形图标的真相

访问网站时,地址栏中显示的锁形图标并不意味着"这个网站是安全的"。准确地说,它的含义是"与该网站的通信已加密",而支撑这种加密的就是数字证书。

钓鱼网站也会显示锁形图标。锁形图标表示的是通信路径的安全性,而非网站本身的可信度。要理解这个区别,就需要了解数字证书的工作原理。

什么是数字证书

数字证书是网站的"身份证"。就像现实世界中护照由政府证明"此人确为本人"一样,数字证书由证书颁发机构(CA: Certificate Authority)证明"此域名是真实的"。

证书包含以下信息:

  • 域名:证书有效的域名(例:kakunin-ip.click)
  • 公钥:用于加密通信的密钥
  • 颁发者:颁发证书的证书颁发机构名称
  • 有效期:证书的有效期限(目前最长 398 天)
  • 数字签名:证书颁发机构的防篡改签名

HTTPS 连接背后发生的事

浏览器访问 HTTPS 网站时,一个叫做 TLS 握手的过程会在 0.1~0.3 秒内完成。

  1. 出示证书:服务器将数字证书发送给浏览器
  2. 验证证书:浏览器验证证书的有效期、域名是否匹配、证书颁发机构的签名
  3. 确认信任链:确认颁发证书的机构是否在浏览器内置的"受信任根证书颁发机构"列表中
  4. 密钥交换:验证成功后,安全地交换用于加密通信的对称密钥
  5. 开始加密通信:此后所有通信都被加密

如果这个过程中任何一步失败,浏览器就会显示"此连接不是私密连接"的警告。

证书的种类和信任级别

种类 验证内容 获取成本 用途
DV(域名验证) 仅验证域名所有权 免费~几千日元/年 个人网站、博客
OV(组织验证) 域名 + 组织真实性 数万日元/年 企业网站、电商网站
EV(扩展验证) 域名 + 组织 + 法律实体 十几万日元/年 银行、证券公司、大型企业

Let's Encrypt 的出现使 DV 证书可以免费获取。这大大推进了整个 Web 的 HTTPS 化,但同时也意味着钓鱼网站也能轻松显示锁形图标。

证书的信任链 - 为什么值得信任

数字证书的信任建立在"链条"之上。

你的浏览器中预装了约 100~150 个"根证书颁发机构"的证书。这些是 Mozilla、Apple、Google、Microsoft 等浏览器厂商经过严格审查后选定的。

网站的证书通常不是由根证书颁发机构直接签发,而是通过"中间证书颁发机构"签发。浏览器沿着网站证书→中间证书颁发机构→根证书颁发机构的信任链逐级验证,最终能追溯到浏览器内置的根证书颁发机构,就判定为"可信"。

这个机制失效的情况是证书颁发机构本身签发了非法证书。历史上 DigiNotar(2011 年)和 Symantec(2017 年)就因此失去信任,被浏览器移除。Certificate Transparency 就是用来检测这类非法签发的机制。

证书有效期越来越短的原因

SSL/TLS 证书的最长有效期逐年缩短。2012 年可以有效 5 年,但 2020 年以后被限制为最长 398 天(约 13 个月)。Apple 在 2025 年提出的方案计划到 2029 年缩短至 47 天。

缩短有效期的原因是为了限制私钥泄露时的风险。证书有效期越短,即使私钥被盗,该证书被滥用的时间也能控制在最小范围内。证书验证在保护你的数字足迹方面也发挥着重要作用。想确认自己的通信是否安全加密,可以在IP 确认上查看安全评分和连接状态。

想系统学习数字证书和加密原理的人,可以参考密码学入门书籍。

本文相关术语

SSL/TLS 使用数字证书实现加密通信的协议。 加密 利用证书中的公钥安全地交换对称密钥。 钓鱼 由于 DV 证书可以免费获取,钓鱼网站也能显示锁形图标。