News - page 27

改善我们的“公共汽车系数”

“公共汽车系数”是衡量一个自由软件项目是否健康的一个重要指标,尽管这个想法是相当可怕的。随着 F-Droid 从一个项目扩展到整个社区的努力。而且还有很多工作不是一个人能做的。基本基础设施需要由不同的人维护,以使整个项目具有弹性并由社区拥有。 为此,我们为关键基础设施提供了一个新主机。网站构建和部署过程现在由 Calyx Institute 的 Nick Merrill 在冰岛托管。对于涉及隐私的项目,很难找到更好的组合。Nick 是 F-Droid 用户,Calyx Institute 正在构建尽可能私密的互联网服务,其中 F-Droid 是关键部分。尼克还与美国政府的秘密命令作斗争并在经过 11 年的艰苦法律诉讼后在美国联邦法院获胜。最后,冰岛是托管需要强大隐私的互联网服务的最佳地点之一。 技术细节 几年前,我们对这个网站进行了大修,让它可以由 F-Droid 贡献者翻译成任何语言。我们现在有 15 种语言,还有更多正在进行中。 虽然我们当时没有意识到,但看起来我们已经创建了使用静态站点生成器 (SSG) 生成的最大网站。目前大约有 30,000 个页面,(staging.f-droid.org 有 75,000 个页面!),我们还没有找到更多页面的 Jekyll 网站。所有这些都意味着构建和部署过程是资源密集型的,并且可能需要一段时间。它也被证明有点脆弱,主要是因为该过程使用了太多的内存和 CPU。 新的部署服务器设置完全使用 Ansible 编写脚本,在普通的 Debian 机器上运行。因此,如果当前服务器由于某种原因出现故障,我们可以轻松地重新创建一个新服务器。这对于公共汽车系数也很有用,因为如果现有维护者完全消失,任何人都可以重新创建整个部署设置。 欢迎贡献! 最后一件事:如果你曾经问过为什么 F-Droid 的某些方面不能正常工作,那么答案很可能是:F-Droid 需要更多的贡献者!这个新的部署服务器是任何人都可以独立于当前贡献者开发的完美示例。整个网站是自由软件并且是公开可用的,因此任何人都可以访问所有部分以构建真实网站的完整工作副本。

在 Android 上删除旧的 TLS

传输层安全性 (TLS) 是当今为大多数互联网提供支持的协议。它为 HTTPS 提供了“安全”的 S。F-Droid 使用它来保持与存储库的连接私有。经过多年缓慢的更新和越来越多的漏洞,促使停止使用旧的、损坏的版本的最后一根稻草终于落下了。TLS 1.2 版不易受到攻击,基本上在所有地方都受支持。TLSv1.2 于 2008 年完成,因此离最前沿还很远。TLSv1.0 和 TLSv1.1 将被 IETF(实际创建 TLS 标准的标准机构)正式弃用。主要的浏览器供应商都承诺在 2020 年放弃它们。 由于 F-Droid 使用 NetCipher,TLSv1.2 一直向后支持到 Android 4.1 强制执行 TLSv1.2 支持的一种方法是配置 f-droid.org 网络服务器以停止支持 TLSv1.0 和 TLSv1.1,就像我们对 SSLv2 和 SSLv3 做的一样。我们更喜欢在客户端执行此操作,以便旧版本的 F-Droid 和没有 TLSv1.2(在 Android 4.1 中添加)的旧设备可以继续使用 f-droid.org。此外,在客户端执行此操作意味着与所有存储库的连接将获得这种保护,而不需要更改存储库服务器设置。 使用 NetCipher 的方法,最新版本的 F-Droid...

在没有互联网的情况下获得附近的应用的两种新方法

不使用互联网通常更好的原因有很多:你的数据计划很昂贵,该地区的覆盖范围有限,互联网中断或关闭,或者甚至一些事情是私人的,根本不应该在线。甚至,如果你正在设置新设备,你可以轻松地将所有现有应用发送到新设备。这就是为什么 F-Droid 包含用于在没有互联网的情况下交换应用和文件的“附近选项卡”。F-Droid v1.7 对现有功能进行了大修,因此现在应该可以更好地工作,尤其是在使用 Wi-Fi 时。在此之上添加了两种新的“附近”方法,以提供在设备之间交换应用的有效方式。 第一种是“热点”模式,其中一个设备充当 Wi-Fi 接入点。 Android 并没有使它可以轻松实现,因为应用并不总是知道 Wi-Fi 的状态。感谢长期 F-Droid 贡献者 @mvdan 提供的 accesspoint 库,它可以做更多事情。 第二个是使用 SD 卡和 USB On-The-Go (OTG) 闪存驱动器作为 F-Droid 存储库的来源。闪存驱动器可以为传输文件提供非常高的带宽方法,因为它们很容易在设备之间移动。我们的目标是让整个用户体验尽可能流畅,这样人们就可以使用这些负担得起的、广泛使用的数据存储定期移动数据。USB-OTG 和 SD 卡可以托管独立的存储库以及现有存储库的镜像。需要先将这些存储库复制到闪存驱动器,例如从笔记本电脑复制。这可以使用 fdroid mirror 来完成,例如: $ cd /media/user/F-DROIDORG $ fdroid mirror https://guardianproject.info/fdroid $ wget https://guardianproject.info/fdroid/repo/index-v1.jar $ mv index-v1.jar fdroid/repo/ USB...

紧急应用卸载和存储库重置

有时我们的设备上有一些非常敏感的东西,以至于我们需要在紧急情况下完全隐藏或删除它们。F-Droid 已经支持接收 PanicKit 触发器来让 F-Droid 隐藏自己。F-Droid v1.7 添加了更多 alpha 功能,以扩大 F-Droid 应对紧急情况的选项范围。我们认为这些对许多用户来说可能非常有价值,但请记住,这些功能是 Alpha 版。它们在功能上是完整的,但在我们称它们为稳定之前,它们需要进行广泛的测试。具体来说,用户体验应该清楚地传达哪些类型的数据将被永久删除,哪些类型的数据可能在之后仍然存在。 完全擦除选定的应用 F-Droid 现在允许用户选择卸载任何已安装的应用以响应紧急触发。卸载将擦除该应用的内部数据,将其永久删除。它可能不会擦除应用存储在外部存储上的数据,例如图像、视频、下载的文档等。为了确保这些数据被擦除,需要一个单独的紧急响应应用。在尝试此新功能之前,必须有一个完整的、经过测试的备份。 任何 F-Droid 可以卸载的应用都可以包含在内,包括 Ripple 和 F-Droid 本身。因此,整个紧急设置可以作为响应的一部分被擦除。这需要在设备上安装 F-Droid Privileged Extension,以便在不对每个应用显示提示的情况下卸载应用。 Android ROM,例如 CalyxOS, CopperheadOS, Fairphone Open, Replicant, 和 LineageOS for microG 都包含 F-Droid 特权扩展。 将存储库重置为默认值 存储库配置也可能包含敏感信息。例如,私人服务器上可能有一个自定义存储库,或者包含一个特定的应用存储库,如 Briar 或 Tor,以确保最快的更新。因此,现在还有一个选项可以将存储库配置重置为默认值。请记住在尝试此操作之前备份你的存储库配置。存储库 URL 可以从“存储库详细信息”视图中单独分享,或者如果你在“设置”中的“专家模式”中启用该选项后分享安装历史记录,则可以将它们包括在内。 内置紧急按钮 本轮工作包括将...

公共资金,公共代码!

我们的日常生活依赖于公共基础设施。道路、桥梁、供水、学校、医院等使现代文明成为可能。大多数欧洲国家在用公共资金资助公共基础设施方面有着悠久而成功的历史。 政府在软件上花费了大量资金,但他们几乎没有贡献任何公共数字基础设施。他们所有的软件和源代码都通过专有许可证对公众保密。更糟糕的是,政府机构通常无法访问他们自己的关键应用的源代码。这可以改变。 数字化转型在很大程度上依赖于由自由开源社区构建和维护的大量公共数字基础设施。现在是各国政府加入我们并开始做出贡献的时候了。他们的移动应用当然应该尊重用户对自由和尊重软件的隐私的需求。 欧洲自由软件基金会发起了一项令人惊叹的活动来实现这一转变:“公共资金?公共代码!”。我们很高兴地宣布,我们已经签署了他们的公开信,并希望你也考虑宣传并签署。 有关此运动的所有详细信息,请访问:publiccode.eu

信任、隐私和自由软件

我们都非常信任我们的设备,我们的生活中越来越多的时间花在了我们的手机和笔记本电脑上。我们相互发送的通信包含我们用我们的设备传送的最敏感的数据。我们在使用这些设备时所拥有的体验都是私密的:如果没有人在看我们的屏幕,似乎也没有人在监控。可悲的是,现实恰恰相反。我们的移动设备充满了跟踪器和间谍软件,无论我们是否注意到它们。植入后门愈发猖獗。但大多数人仍然依赖专有软件来处理他们最敏感的事情。 在过去的十年中,在开发用于强力保护隐私的可用技术方面取得了巨大进步。端到端加密过去需要深厚的技术技能才能使用(想想 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 本身之外管理翻译和图形。Fastlane 和 Triple-T 这两个工具甚至提供了一种在应用源代码库、F-Droid 和 Google Play 之间同步它们的方法。 使用 Weblate 来处理所有的 F-Droid 本地化工作,可以让精通特定语言并了解如何进行翻译的贡献者能够掌控所有翻译工作的进行。Weblate 是进行翻译工作的地方,是 F-Droid 社区语言方面的 GitLab。 作为一个社区,我们需要避免让少数人进行过多的维护工作,这样我们才能将我们的“公共汽车系数”保持在足够高的水平,以便在我们遇到的所有事情中生存下来。人们经常要求 F-Droid 处理他们的应用的本地化,但这会将工作集中在一个更难分担工作量的地方。所以应用图形或本地化文本应尽可能由上游应用开发者处理,而不是将所有内容都粘贴到 fdroiddata 中。 尽管如此,在 fdroiddata 中有一些具有本地化元数据的应用。这些图形和描述是在元数据本地化首次推出时添加的,以使其开始工作。现在我们有数百个应用管理自己的本地化,我们也可以将所有这些都移动到上游。 我们还启动了一个项目,为存档中的所有应用提供翻译后的 80 个字符的摘要。因此,如果上游开发者不愿意管理本地化,F-Droid 至少可以翻译这个关键部分,以便用户在浏览 Android 客户端和网站时能看到只包含他们语言的屏幕。你可以在 fdroiddata-localizations 上看到此项工作。我目前正在管理它,但希望通过让更多的维护人员参与进来增加我们的公共汽车因数。目前,主要是运行一些同步脚本,并检查以确保脚本没有做任何愚蠢的事情。

保护隐私的分析

F-Droid 总是尽可能地避免跟踪用户。我们永远不需要帐户,并且我们投入了很多努力使 f-droid.org 服务器也很难跟踪用户。我们也认识到使用数据具有价值。它可以用来帮助显示受欢迎程度,并为应用开发者提供一些用户喜欢的反馈。 经过多年完全远离数据,包括禁用 f-droid.org 上的下载计数,我们开始了一项在不跟踪用户的情况下跟踪__使用__的实验。我们基于 Tor 项目和 Guardian Project 构建我们的工作。我们已在 https://search.f-droid.org 和 https://mirror.f-droid.org/ 上启用访问日志以进行初始试用。(_注意:在 f-droid.org 上可能完全在客户端使用 javascript 进行搜索,在这种情况下,这些搜索将永远不会命中 search.f-droid.org,因此不会被记录 _)。 这里需要注意的是,Nginx 不允许像 Apache 那样的自定义时间格式,因此 Web 日志将包含每次点击的确切日期和时间。时区已归零。原始日志不会被发布,它们会在被输入任何分析系统(如 Matomo/Piwik)之前进行清理。此外,Nginx 不允许自定义错误日志格式,因此错误将具有完整的信息。因此,错误日志不会在没有完全清理的情况下用于分析,并且只会保留很短的时间。 我们的设置 我们的服务器运行 Debian,因此我们将会为该环境提供命令。首先,确保 Nginx 设置了 “geoip” 扩展。这使 Nginx 能够将 IP 地址转换为国家代码,以便记录国家代码而不是 IP 地址。 # apt-get install libnginx-mod-http-geoip geoip-database 然后在 /etc/nginx/nginx.conf...

RSS RSS