• Android 14正式版会带来哪些新的东西?
  • 发布于 2个月前
  • 301 热度
    0 评论
与往年不同,今年的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更新证书库后,谷歌就可以随时应对诸如不久前微软突然吊销多个根证书,又在数日内恢复的操作。
用户评论