手机上会出现三种看起来相似的通知,其中只有一种与证书有关。VPN 状态行、信任存储警告和受管设备横幅各自指向不同的控制项,而当时屏幕上的应用可能并不拥有其中任何一个。先读懂准确措辞,能避免删错东西。按顺序完成下面五项检查,并在第一项失败处停下,因为每一步的正确做法都完全不同。

第 0 步:确认你看到的是哪种通知

措辞比图标更重要。VPN 状态通知意味着某个应用持有活动的 VpnService。证书警告意味着信任存储里安装了东西。受管设备通知意味着管理员应用了策略,而该策略可能顺带安装了信任。

NoticeWhat it assertsFirst check
VPN statusAn app is running a local VPN serviceWhich app holds the active VPN right now
Certificate authority installedA CA exists in a trust storeIssuer, validity and which store holds it
Managed device or profileAn administrator owns part of the configurationWhether device policy installed the credential

当文字明确写着「Network may be monitored」时,发出者是系统而不是 VPN 服务商:只要应用持有活动的 VpnService,安卓就会打印这一行,所以主流商业客户端会产生它,却不会往信任存储里放任何东西。三种通知中有两种可以同时成立,这就是投诉常常指错对象的原因。如果句子说安装了 CA,那么 VPN 充其量只是嫌疑对象,卸载它可能让警告原封不动地留在原处。

第 1 步:找到凭据及其存储位置

在安卓 9 到 12 上,路径是设置、安全、加密与凭据、受信任的凭据;安卓 13 及更高版本把同一屏幕移到安全与隐私、更多安全设置之下,而厂商定制界面又会重命名层级,所以路径不符时请在设置应用里搜索「受信任的凭据」。用户标签页存放由个人或应用安装的机构,系统标签页存放随系统构建而来的内容。由管理端推送的机构会通过设备策略或工作资料出现,而不是作为用户存储里随手一点的项目。

记录颁发者、有效期以及是谁安装的。如果该条目根本不在用户存储里,就停在这里,因为它是系统项或受管项,从设置屏幕删除它并不是你的职责。在那里删错一行,手机就会丢失 Wi-Fi 或工作登录,而信任问题仍然没有答案。

第 2 步:把 VPN 配置文件的 CA 与手机的信任分开

OpenVPN 配置文件,或任何通过 TLS 认证其服务器的客户端,都可能携带一个仅供该客户端验证自己服务器的 CA。WireGuard 配置文件根本不携带 CA:它依赖公钥对,所以安卓信任存储里的机构绝不可能来自 WireGuard 配置。那份仅属于配置文件的证书到不了任何其他应用,而把它复制进系统信任存储是另一项操作,影响范围也另算。把两者分开正是这一步的全部要点,因为只有后者才会改变其他应用接受什么。

因此,含有 CA 的 VPN 配置文件不是被拦截的证据,VPN 应用也不是它从未创建过的信任条目的所有者。测试成本很低:停掉 VPN 再读一遍通知。如果证书警告仍在原处,说明 VPN 没有放它,卸载应用也不会让它消失。

第 3 步:区分服务器机构与客户端身份

客户端身份证书及其私钥用于向服务器认证这台设备。CA 被信任用于向应用认证服务器。它们存放在一起,在列表里看起来相似,承担的职责却完全不同。

删除客户端身份可能破坏 Wi-Fi 或 VPN 认证,却对 HTTPS 信任毫无影响;删除 CA 则会影响每一个接受该机构的应​​用。按下任何按钮之前,先确定你看的是两者中的哪一个,因为答案决定了所有者与恢复路径。

第 4 步:问清哪些应用真正信任它

安卓的网络安全配置划定了应用边界。目标为 API 24 及以上的应用默认信任系统机构,而目标为 API 23 及以下的应用默认也信任用户添加的机构,并且应用可以指定自己的锚点、添加按域名的规则,或完全退出默认设置。

所以「装在手机上」并不描述每个应用的 HTTPS 信任:用户添加的机构可能被较旧的应用尊重、被当前应用忽略,也可能被自带锚点的应用显式信任。如果该机构是为工作 Wi-Fi、私有 Web 服务或经批准的检查而安装的,有用的问法是哪些应用和配置文件依赖它。网络安全配置指南是了解已安装机构在特定应用中能延伸多远的参考,而这正是本条警告的大多数摘要所省略的部分。

第 5 步:做决定,然后记录所有者和退出计划

如果该机构是预期之内的,记录是谁安装的、哪些连接依赖它以及如何退役。即使在今天没有发生拦截,信任一个机构也是有分量的决定,因为正是这种信任让日后的拦截成为可能。

如果它是意料之外的,先通过设备或服务的所有者调查,再往那台手机上输入敏感数据。如果它已经过时,在确认有什么依赖它之后,通过安装它的人删除那个具体条目,绝不要从清空所有凭据开始。隐藏警告只改变显示,别的什么也不改。永远不要把私钥或完整配置文件上传到公共证书检查服务来弄清问题。

离开屏幕之前,你需要三个答案:是谁安装的、哪些连接依赖它,以及它如何退役。

相关文章