背景
我们越来越难以信任所依赖的互联网软件和服务的隐私保护能力。政府、公司、团体和个人可能在未经我们知晓的情况下进行监控。当这种监控由政府依据仅提供有限法庭监督且几乎不允许公众审查的法规执行时,情况尤其令人不安。
由于美国及其他地区的法律,谨慎的用户必须在使用互联网服务时意识到:尽管云服务公司希望保护隐私,但最终大多数大公司都必须遵守法律。政府可以合法地访问用户数据,这可能违反守法用户的隐私期望。更糟糕的是,政府可能强制服务运营商启用监控功能(在Lavabit案例中似乎已发生)。
最糟糕的是,由于禁言令,政府可以在用户完全不知情的情况下完成所有这些操作。
对浏览器的影响
这给开放网络的隐私和安全带来了重大困境。如今每个主要浏览器都由受监控法律管辖的组织分发。正如Lavabit案例所示,政府可能要求浏览器厂商秘密地向分发给用户的浏览器中注入监控代码。我们尚无信息表明任何浏览器厂商曾收到过此类指令。然而,如果发生这种情况,由于禁言令,公众很可能不会发现。
不幸的后果是,包括浏览器厂商在内的软件厂商不能被盲目信任。这不是因为此类厂商不想保护用户隐私,而是因为法律可能强制厂商秘密违反自己的原则,做他们不想做的事情。
Mozilla的独特之处
Mozilla相比所有其他浏览器厂商有一个关键优势:我们的产品是真正的开源软件。Internet Explorer是完全闭源的,虽然渲染引擎WebKit和Blink(chromium)是开源的,但使用它们的Safari和Chrome浏览器并非完全开源。两者都包含相当大比例的闭源代码。
相比之下,Mozilla Firefox是100%开源的[1]。正如我们新西兰办公室的Anthony Jones前几个月指出的那样,安全研究人员可以利用这一事实,通过从源代码构建Firefox并将构建结果与我们的官方分发版本进行比较,来验证Mozilla分发的浏览器中包含的可执行文件。
在我们已经使用开源编译器生成可执行文件的平台上,这将是最有效的,以避免1984年Ken Thompson演示的编译器级攻击。
行动呼吁
为确保没有人能够向Firefox中注入未被发现的监控代码,安全研究人员和组织应当:
- 通过所有有效手段定期审计Mozilla源代码和验证构建
- 建立自动化系统以从源代码验证官方Mozilla构建
- 如果验证结果与官方版本不同,则发出警报
在最佳情况下,我们将在全球范围内建立这样的验证系统,参与者来自许多不同的地理区域,并具有不同的政治和战略利益及归属。
安全永远不是"完成"状态——它是一个过程,而非最终静止状态。没有银弹。所有方法都有局限性。然而,开源的可审计性明显优于无法审计源代码与二进制代码的情况。
通过独立实体的国际合作,我们可以让用户确信Firefox不可能在全世界不知情的情况下被颠覆,并提供可验证满足用户隐私期望的浏览器。
请参阅bug 885777以跟踪我们在可验证构建方面的工作。
端到端信任
除了这第一步,我们能否使用此类经过审计的浏览器作为信任锚点,来验证完全审计的开源互联网服务?这在理论上是可能的。据我们所知,尚未有人构建这样的系统,但我们欢迎先例引用和经验报告,并鼓励研究人员与我们合作。
Brendan Eich,Mozilla首席技术官兼工程高级副总裁 Andreas Gal,Mozilla移动与研发副总裁
[1] Linux上的Firefox是最佳情况,因为C/C++编译器、运行时库和操作系统内核都是自由开源软件。请注意,即使在Linux上,某些硬件供应商提供的系统软件(例如OpenGL驱动程序)可能是闭源的。