【资料图】

与往年不同,今年的 Android 14 并未如期在 8 月与广大开发者、用户见面,不过谷歌方面的延期并未浇灭开发者对于 Android 14 抽丝剥茧的热情,毕竟大家都想知道 Android 14 正式版会带来哪些新的东西。根据目前曝光的相关信息显示,好消息是开发者调试工具 HTTP Toolkit 在最近确实发现了谷歌为 Android 14 带来的新变化,但坏消息是这一新的变化对于开发者而言并非是个好兆头。

HTTP Toolkit 是一款大量被 App/Web 开发者使用的调试、测试和构建工具,其开发团队日前在博客中透露,谷歌方面正在让 Android 变得更加封闭,并且在 Android 14 中开发者将没有任何途径来修改系统内置根证书进行调试。其实早在 Android 7 时代,开发者就不再被允许访问位于 /system/etc/security/cacerts/ 的 Android 系统证书库,但在 root 后,开发者还是可以修改证书库的路径,并直接注入自己需要的证书。

然而到了 Android 14 上,谷歌方面直接修改了 Android 系统证书的存储模式,相比以往证书是存储在系统里,现在谷歌则是通过 Google Play 来更新证书。但问题在于,谷歌新的证书更新方式不再从旧路径读取证书,而是从 /apex/com.android.conscrypt/cacerts/ 这一路径来读取。并且开发者发现,针对新路径的一切修改都是无效的,系统会直接忽略,也就是说未来开发者将无法做到让系统信任自签名证书。

为什么谷歌对 Android 14 的这一点点改变会被开发者吐槽,当然是因为数字证书这玩意的重要性实在是太大。

其实数字证书是一种权威性的电子文档,是在网络信息传播中证明身份的工具,在互联网中也起到了类似 " 身份证 " 的作用,并提供了验证身份的方式。

比如我们在上淘宝时,浏览器是怎么知道访问的网址到底是淘宝的官网、还是钓鱼网站呢?靠的就正是 SSL/TLS 证书。当访问淘宝站点时,我们使用的浏览器无论是 Chrome、Edge,还是 Safari 等,都会检查网站证书的有效性,以对服务器进行身份验证。如果 SSL 证书无效,用户就会看到一条警告,显示该连接不是私有的。

既然数字证书的作用如此重要,确保数字证书本身不能被伪造也就成为了关键。而为了实现这一点,过去三十余间,互联网行业也进行了诸多努力。

一个常规的数字证书是这样诞生的,首先需要有一个数字证书认证中心(Certificate Authority)来作为权威、公正、 可信赖的第三方来负责签发,并使用非对称加密技术来产生一对公钥和私钥,然后用自己的私钥对自己的公钥进行签名,生成所谓的一份公开文件。该文件中就会包含签发该证书的 CA、有效期、签发对象,而这些则都是未加密的明文。

紧接着 CA 机构会对明文进行哈希计算得到一个哈希值,然后证书的签发对象会使用 CA 下发的私钥来对这一哈希值进行加密,最终得到签名信息后,明文 + 签名信息就构成了数字证书。有了数字证书后,网络通信的双方只需要向 CA 验证数字证书的真实性,就可以知道在通信过程中有没有被篡改。

而想要获得业界的信任,让浏览器、操作系统信任证书,通常都需要很长时间的积累,例如目前全球最权威的 CA 机构 Verisign、Globalsign,就是从 1995 年和 1996 年就开始从事数字证书签发服务,靠着几十年如一日的服务在业界打响自己的招牌。如果不想通过水磨功夫来获得信任,那么更便捷的方式就是找到一个足够权威的背书。例如工信部批准的 54 家 CA 机构颁发的数字证书,就是由工信部进行背书,微软的 Microsoft 受信任根证书计划则是微软来背书。

数字证书本质上其实是一个信任机制,从理论上来说,在互联网上任何个人和组织都能签发证书,只不过有的 CA 机构更权威、受到的认可程度更高,所以这也就意味大家可以自己为自己签发一个证书,也就是所谓的 " 自签名证书 "。但自签名证书是由不受信的 CA 机构颁发的数字证书,所以看到这里大家可能会问,不受信任的数字证书又有什么用呢?

因为就像大家需要有身份证一样,数字证书也是应用程序的必要构件。一款 App 在正式上传到应用商店,乃至被部署到用户的手机里之前,必然会经历多轮的测试工作,这时候开发者往往会使用自签名证书来作为过渡,或是修改系统内置根证书来调试 App。作为互联网世界的基石之一,失去数字证书的代价无疑是巨大的。比如就在数周前,用友和金蝶这两大在国内被广泛使用的财务软件,就出现了用户大批量无法正常使用的情况,而导致这一问题的原因,就是是微软突然吊销了 Windows 10 和 Windows 11 上的 Verisign Class 3 Public Primary Certification Authority-G5 证书,导致使用该证书的用友和金蝶代码签名失效、程序被 Windows 拦截,导致无法正常使用。

这就是为什么开发者会吐槽谷歌在 Android 14 上的这一调整了,因为这就等于说谷歌在客观上给部分开发者的开发工作设置了阻碍。

不过为什么谷歌非要这样做呢?当然是因为在 Android 14 之前的受信任证书与 iOS 一样,都是预先存储在系统里,谷歌歌无法直接更新信息,这就会导致某些证书出于各种原因被吊销后,他们无法及时应对。在能够通过 Google Play 更新证书库后,谷歌就可以随时应对诸如不久前微软突然吊销多个根证书,又在数日内恢复的操作。

【本文图片来自网络】

推荐内容