大家都听说了最近引发风波的“突发新闻”:谷歌拒绝发布数百万台设备的安全更新。哇哦。听起来真的很糟糕。但这真的像最初看起来那样令人震惊吗?请继续阅读,以便更好地了解这里正在发生的事情。首先,让我们回顾一下这场辩论的起因。2014年12月29日,巴基斯坦安全顾问Rafay Baloch发表了一篇文章,内容是关于旧的谷歌Android Webview组件中未修补的漏洞。确切地说,概念验证漏洞可以在4.4 Kitkat之前的安卓版本上使用。两周后的2015年1月12日,安全研究员托德比尔兹利(Tod Beardsley)发表了一篇文章,透露谷歌安全部门无意为最近发现的漏洞开发修复程序。一般来说,他们声称受影响的Webview版本太旧,无法自行解决问题,但坚持要求记者创建一个补丁,以便将其推送到AOSP的上游来源。
谷歌的辩护。
那么,这种不可理解的举动背后的官方原因是什么呢?根据比尔兹利的说法,谷歌不再认证包括安卓浏览器在内的新设备(你知道的是旧浏览器,不是安卓Chrome)。在安卓4.4 Kitkat中,谷歌改用了新的基于chrome的Webview,并摆脱了旧的易受攻击的代码。这完全符合一年前泄露的政策,该政策详细说明了谷歌移动服务认证新设备的审批窗口。
简而言之,这项政策要求原始设备制造商使用最新的安卓版本或其直接前身(大约在新版本发布后9个月),但不允许他们在新设备上运送任何旧产品。根据泄露的消息,任何基于Jellybean的版本的审批窗口已经在2014年7月31日结束,这意味着你在Jellybean上不会看到任何带有谷歌服务的新设备,所以你也不会看到带有旧浏览器和Webview组件的新设备。
好的,但是现有的设备呢?显然,泄漏政策不会限制对市场上现有设备的更新,这就是问题开始出现的地方。当在AOSP代码中发现安全问题时,谷歌会定期修复它们,这样原始设备制造商就可以将这些修复整合到他们的源代码中,并迟早将更新推送到他们的设备上。现在,如果谷歌的上游修复没有出现呢?这些设备必须永远不受保护吗?当然不是。谷歌不是唯一能解决这些问题的公司,但原始设备制造商也能。
显然,这需要制造商的干预,但谷歌确实表示,他们将向合作伙伴通报安全问题(阅读原始设备制造商)。因此,事实上,负责人意识到了这个问题,并可以针对此漏洞启动自定义修复。现在,让我们暂时假设谷歌确实提供补丁。这是什么意思?解决了AOSP码的问题后该怎么办?
更新过程
首先,谷歌需要通知原始设备制造商新的安全补丁,并将其链接到变更集。将修复程序合并到设备特定的代码库中后,制造商还需要创建更新包,这需要进行质量检查。如果是运营商品牌的设备,完成的更新需要运营商的批准,包括更多的开发和更多的测试。
相当复杂,不是吗?这就是为什么你看不到许多旧设备的系统更新。因此,即使有安全相关的bug修复,也不能保证OEM真的会在你的设备更新中发布修复,但整个过程太复杂太耗时,他们很难盈利。
解决问题
谷歌完全意识到这个问题,无法及时向关键系统组件(如Webview)推送安全更新。这就是为什么安卓5.0棒棒糖的重要变化之一是将Webview代码拆分成一个包。用户看不出有什么不同,但对谷歌来说,这意味着他们可以独立于任何其他系统组件来更新这个部分。事实上,他们可以通过游戏商店推送更新,而无需任何原始设备制造商或运营商认证。因此,没错,谷歌确实很关注老安卓版本中涉及快速安全更新的设计缺陷,并试图在每个主要安卓版本中进行改进。
打包东西。
那么,我们来总结一下:谷歌应该责怪它没有提供补丁吗?是的,绝对的,他们对用户的安全负责。是不是只有谷歌一家难辞其咎?不,绝对不是,因为原始设备制造商同样有责任保持他们的设备是最新的和安全的。即使没有谷歌的评论,如果用户的安全受到威胁,制造商仍然可以开发定制修复。面对现实,在如今老安卓设备的更新政策下,无论如何大多数人获得安全更新的几率有多大?