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