信任、隐私和自由软件
发布于 2019-05-05,发布者为我们都非常信任我们的设备,我们的生活中越来越多的时间花在了我们的手机和笔记本电脑上。我们相互发送的通信包含我们用我们的设备传送的最敏感的数据。我们在使用这些设备时所拥有的体验都是私密的:如果没有人在看我们的屏幕,似乎也没有人在监控。可悲的是,现实恰恰相反。我们的移动设备充满了跟踪器和间谍软件,无论我们是否注意到它们。植入后门愈发猖獗。但大多数人仍然依赖专有软件来处理他们最敏感的事情。
在过去的十年中,在开发用于强力保护隐私的可用技术方面取得了巨大进步。端到端加密过去需要深厚的技术技能才能使用(想想 PGP 电子邮件),现在每天有超过 10 亿人在使用它。开放平台和自由软件使我们能够控制在我们的计算设备上发生的事情,以及检查软件对我们的私人信息究竟做了什么。可重复构建在几年前似乎是浪费时间,现在它已成为可信赖系统的重要组成部分。F-Droid 社区将所有这些部分组合在一起,创建了一个完整的分发系统,其中源代码是唯一需要信任的部分。
为了更清楚地说明这一点,我们可以类比购买预制食品。成分必须列在盒子上。我们相信成分表与包装盒中的实际成分相符。开源软件与此非常相似。源代码是一个非常精细的配方,可以生成计算机芯片实际运行的可执行二进制文件。现在想象一下,有一个机器人厨房可以完美地执行食谱,每次都产生完全相同的结果,还有一个简单的化学装置可以判断两口食物是否完全相同。任何读过食谱的人都会知道食物里有什么。可以检查机器人厨房以确保其严格遵循食谱。生成的食物可以随着时间的推移进行测试,以确保机器人厨房每次实际上都在制作完全相同的食物。然后可以相信食谱和机器人厨房的组合只使用配料表上列出的东西。任何人都可以使用化学试剂盒来检查他们盒子里的东西是否与其他人盒子里的东西相匹配。
这就是 F-Droid 现在可以做的,只不过面向的是软件而不是食物。它的方式是每次安装应用时都会运行化学工具包,并将其与 F-Droid 构建机器在创建二进制应用时看到的内容进行比较。所以其实比上面的例子验证起来要容易得多。
深入了解细节
自由软件、经过审查的协议、代码审计、可重复构建和正确的硬件:这些是真正值得信赖的系统所必需的要素。
可信计算的全貌现在触手可及。长期以来,自由软件一直是受信任软件的要求。从 Briar 协议到 Signal 协议。可重复构建意味着二进制文件可以明确地链接到源代码。真正的关闭开关让用户可以完全控制何时启用功能。自由硬件设计让我们可以检查用于构建我们的设备的配方。
F-Droid 生态系统现在为可信、可验证的软件提供了必要的部分:
- 自由软件
- 可重复构建
- 开放、经审计的密码学
以上所有内容都已在多个应用中得到应用和验证,其中一些已经包含多种技术。为了让应用提供可信赖的隐私,必须具备所有这些。
- 100% 自由软件:Briar、Bitcoin Wallet、Die Tageszeitung (TAZ)、Tutanota
- 完全在客户端软件中开放、经过审计的加密:Briar、Bitcoin Wallet、Tutanota
- 可重复构建:Briar、Bitcoin Wallet、F-Droid、F-Droid Privileged Extension、Nextcloud、Öffi 和 更多。
- 基于复现开发者的构建的代码签名和分发:Briar,Bitcoin Wallet
适用于 Android 的 Tor 浏览器即将使用 F-Droid 可重复过程发布。这意味着应用通过仅发送源代码和开发者自己的 APK 签名来提交给 F-Droid。这意味着 F-Droid 将仅发布从 f-droid.org 基础架构上的源代码构建的 APK,但与开发者在其基础架构上构建的 APK 生成的签名相匹配。
Signal 等其他项目同意可重复构建很重要,但 Signal APK 不可重复。只有 Java 部分是可重复的。这意味着 C/C++ 代码是不可重复的,而这是最容易和最有效地插入漏洞利用的地方。
还有其他一些问题会影响更广泛的 Android 应用:用于构建应用的工具和插件,以及第三方库,如今基本上每个应用都包含这些库。gradle 是官方的构建系统,许多项目使用 gradle 插件作为其构建过程的一部分。gradle 是自由软件,但很多插件不是。
F-Droid 一直在与 Debian Android 工具 和 Java 团队合作,以使尽可能多的基本构建工具作为 Debian 的一部分打包并可重复地构建 。F-Droid Privileged Extension 使可重复构建更进一步:它由 Debian Android 工具包构建,没有外部依赖项。
最后一个重要的部分是 gradle 使其易于包含的第三方库。JCenter 和 Maven Central 库存储库要求为每个版本上传匹配的源 JAR,但没有任何东西可以验证源 JAR 是否以任何方式与二进制 JAR 匹配。而且 Android AAR 库很常见,但对匹配源码没有这个要求。
考虑硬件
合适的硬件平台也是必不可少的。
将后门插入硬件的可能性意味着我们对硬件和软件都需要同样的东西:自由和开源、可重复性、公共审计和可信设计。不幸的是,在这些方面,硬件比软件落后得多。但是有很多非常有前途的工作:
你现在可以到达的垫脚石
Fairphone Open 提供内置 F-Droid 的自由软件 Android,具有硬件制造商的完全支持。硬件安全可以通过无基带平板电脑和破解的 Moto Gs 来实现。带有隔离和硬件开关的 GSM 基带的 Purism Librem 5 即将推出。
这些工具已在 F-Droid 中准备就绪,任何应用开发者都可以为其用户提供完全受信任的二进制文件。Briar 和 Bitcoin Wallet 是首先满足所有标准的,因为它们已经可以在 F-Droid 中可重复构建了。Tutanota、Conversations、Die Tageszeitung (TAZ)、Nextcloud、Riot、Kontalk 和许多其他都是 100 % 自由软件,由 F-Droid 从源代码构建。Firefox、Wire 和 Zom 等其他软件也很接近,希望更完整的示例能够激励他们朝着正确的方向前进。F-Droid 是将这些部件粘合在一起的胶水。F-Droid 社区已准备好帮助所有项目进入可信赖计算的下一步。
