第 3 课,共 4 课 · 8 分钟
HTTPS 与证书:小锁图标证明了什么,又没有证明什么
TLS 究竟做了什么、一张证书真正证明的是什么,以及为什么小锁图标并不能判定一个网站是否值得信任。
第一课提到过,以 https:// 开头的地址使用了加密。这一课会更仔细地探讨这种加密是如何建立的、浏览器中的小锁图标究竟在担保什么,以及它的保证止步于何处。
TLS:小锁图标背后的协议
HTTPS 就是普通的网页协议 HTTP,运行在传输层安全协议(TLS)之内 —— TLS 最初于 1999 年发布,如今已经是 1.3 版本。Cloudflare 学习中心把 TLS 的作用总结为三部分:加密,让网络上的其他任何人都无法看到数据;身份验证,确认你正在与你以为的那台服务器通信;以及完整性校验,检测数据在传输途中是否被篡改。在交换任何内容之前,你的 Mac 和服务器会先完成一次“TLS 握手”:双方商定使用哪个版本的 TLS、商定使用哪些加密方式,并生成用于加密后续会话的密钥。
一张证书究竟证明了什么
要让这次握手真正有意义,你的浏览器需要证明服务器的公钥确实属于你输入的那个网站。这份证明就是 TLS 证书。根据 Cloudflare 的说法,一张证书会包含域名、公钥、到期日期,以及签发者的数字签名 —— 签发者就是证书颁发机构(CA),一个你的浏览器和操作系统已经信任的组织。广泛使用的免费证书颁发机构 Let’s Encrypt 直白地描述了这个流程:在签发证书之前,它的软件会先检查申请者是否真的掌控着该域名,例如要求对方在网站上发布一个特定文件,或设置一条特定的 DNS 记录。只有通过这项检查之后,它才会签署证书。
这一点很重要,因为它划定了一张标准证书所能证明内容的边界。它只能证明申请者在那一刻掌控着这个域名,而不会审查网站背后的企业、核实运营者是否诚实,也不会保证内容是安全的。任何人,包括骗子,都可以注册一个域名,并在几分钟内为它获得一张有效的证书。
正确解读小锁图标
| 小锁图标确实能证明 | 小锁图标并不能证明 |
|---|---|
| 你的浏览器与这台服务器之间的连接是加密的 | 运营该网站的机构是合法或值得信赖的 |
| 设置该证书的人确实掌控着这个精确的域名 | 这个域名本身不具有欺骗性(例如仿冒拼写) |
| 内容在传输过程中未被第三方篡改 | 该网站不会滥用你输入给它的内容 |
电子前哨基金会(EFF)的“监控自我防卫”指南直接点出了这个根本问题:“一项服务使用了 HTTPS,并不代表它就充分保护了用户的隐私。”HTTPS 保护的是传输通道本身,对目的地拿到内容后会如何处理,它什么都没说。同一份指南指出,HTTPS 能对网络窃听者隐藏你访问了网站上的哪个页面,但网站本身依然会以明文形式收到你输入的一切——搜索内容、消息、登录信息——因为它是这条加密连接的另一端,而不是旁观者。
自签名证书与过期证书
Cloudflare 还解释了没有受信任证书颁发机构时会发生什么:任何人都可以生成自己的“自签名”证书,但浏览器没有外部权威机构可以用来核实它,因此会把这类网站标记为“不安全”,或者直接拒绝加载。过期的证书也会产生类似的警告。这两种警告都不一定意味着正在发生攻击,但确实意味着浏览器目前无法验证它正在与谁通信 —— 而这恰恰是 TLS 本应提供的核查。
要点
- HTTPS 把普通网页流量运行在 TLS 之内,TLS 提供加密、服务器身份验证和完整性校验。
- TLS 证书是证书颁发机构在核实申请者确实掌控该域名后签发的 —— 仅此而已。
- 小锁图标确认连接已加密,且抵达了所声称的域名;但它并不为网站运营者的诚信做担保。
- 攻击者确实能够、也确实会为具有欺骗性的域名获取有效证书,因此仅凭小锁图标无法排除诈骗的可能。
- HTTPS 保护的是传输中的数据,而不是数据抵达目标服务器之后会被如何处理。
自我检测
1. 一张标准的 TLS 证书实际上证明了什么?
- 该网站由一家值得信赖的企业运营
- 证书持有者掌控着证书所签发的那个域名 — 正确。
- 该网站不含任何诈骗内容
- 该网站已经过政府机构审核
像 Let’s Encrypt 这样的证书颁发机构在签发证书前会核实域名的控制权,但不会审查运营者是否诚实。
2. 根据 EFF 的说法,HTTPS 的一个关键局限是什么?
- 它会拖慢每一次连接
- 使用 HTTPS 并不代表该服务就充分保护了用户的隐私 — 正确。
- 它只在 Wi-Fi 下才有效
- 它能取代密码的需求
HTTPS 保护的是连接本身,但对面的网站依然能看到你发送的一切,并且自行决定如何处理这些数据。
3. Cloudflare 表示 TLS 提供了哪三样东西?
- 速度、存储和备份
- 加密、身份验证和完整性 — 正确。
- 压缩、缓存和负载均衡
- 防火墙、日志记录和杀毒
TLS 对窃听者隐藏数据(加密)、确认服务器身份(身份验证),并检测篡改(完整性)。
4. 为什么即使一个网站的地址以 https:// 开头,浏览器仍可能将其标记为“不安全”?
- 因为该网站占用了太多带宽
- 因为它的证书是自签名的或已过期,因此无法通过受信任机构进行验证 — 正确。
- 因为该网站图片太多
- 因为域名太长
没有有效且当前受信任的证书,浏览器就无法确认服务器的身份,因此会提醒用户,而不是径自假定它是安全的。
用 FireAI 动手做
在你自己的 Mac 上练习这节课的内容。
来源
- Cloudflare Learning Center: What is Transport Layer Security (TLS)?
- Cloudflare Learning Center: What is an SSL certificate?
- Let’s Encrypt: How It Works
- EFF Surveillance Self-Defense: What Should I Know About Encryption?
在你的 Mac 上实践
免费试用全部功能 17 天,无需绑定银行卡。