News - page 20

TWIF is back

TWIF generated on Thursday, 14 Sep 2023 ,Week 37 F-Droid core news TWIF is back! After a long break, TWIF is back and it needs your input. If you have any news whatsoever that you feel might be of benefit to the wider F-Droid community, you are encouraged to post...

可重复构建,签名密钥,和二进制存储库

今年早些时候,我们报告了在可重复构建方面的进展。与此同时,越来越多的应用正在使用可重复构建。你可以在这里看到一些统计数据:和 2022 年 11 月时的 20 个应用相比,到 2023 年 9 月,可重复构建的应用数量增长了近十倍,达到了 191 个。大约三分之二的新增应用使用了可重复构建。但是简单来说,不使用那些“术语”,“可重复构建”到底意味着什么呢? 多年以来,F-Droid 为每个应用创建专属密钥对发布的 APK 签名,但现在 F-Droid 通过可重复构建发布使用上游开发者签名的 APK。这向你证明开发者确认:“这是我想要发布的,这是从我的代码构建的”。同时由 F-Droid 分发你可以得知:“F-Droid 也确认了这是从开发者提供的代码构建的 APK。”因此双方都没有塞进应用源代码存储库中没有的东西。 F-Droid 中的验证,仍然使用简单的说法,是这样进行的:应用在 F-Droid 的构建服务器上从源代码构建。然后抓取开发者构建的相应 APK 与之进行比较。唯一的不同应该是签名文件 - 因为来自开发者的 APK 使用他们的私钥签名,F-Droid 无法获取。如果是这种情况(即两个 APK 匹配),它被证明是完全相同的“二进制文件” - 所以 F-Droid 可以分发由开发者签名的 APK。 你可以在这里看到这个流程的大纲,相关技术细节参见这个文档。 收益和风险 一些优势显而易见:首先想到的是更高的信任程度,因为现在双方(F-Droid 和开发者)都能确认分发的 APK 的完整性。但还有更多好处。例如,如果开发者发布了一个“紧急更新”(例如,为了修复安全问题,或者一些关键功能损坏)你不再需要等待一个或者两个构建周期。因为你从 F-Droid 安装的...

社区控制的备份仪式

七位核心贡献者和一位委员会成员在苏格兰,F-Droid 的诞生地,相聚参加第一次 F-Droid 团队线下会议。我们需要处理的最紧迫的任务之一是设置一个由贡献者控制的我们所有签名密钥的备份。冗长,面对面,由共识驱动的计划过程对于这个需求是必要的。我们没有找到关于这个流程的比较好的文档,因此我们冒昧发布了我们的流程的大致框架。在公钥被用于加密之前,这个流程经过了多个具有不同专业技能的人的非正式审计。 F-Droid 管理数以千计应用的签名密钥。掌控这些密钥的人可以发布恶意版本并作为更新透明安装。更重要的是,与 TLS 或 Signal 不同,Android 并未提供容易的轮转密钥的方法。因此保护这些密钥非常重要。备份也很重要,因为 Android 操作系统使用签名密钥和应用 ID 作为表示每个已安装应用的唯一标识符。这次会面给了我们一个完美的机会,使我们可以创建一个新的备份流程,确保至少有 4 位受信任的社区成员亲自出席以解密所有密钥的备份。首先,我们从以下要求开始: 添加新密钥时定期备份。 对所有备份进行高强度,已证明的加密。 解密需要最少四名参与者。 参与不需要特殊技术经验。 各部分物理分散到不同的司法管辖区。 访问权限最小化(例如,签名服务器的维护者不需要备份的访问权限)。 每个参与者的压力尽可能小。 每个参与者如果不得不交出他们保管的组件,加密不会受到影响。 然后出席的人如下: 七名核心贡献者。 一位委员会成员。 一位受信任的外部观察员。 没有其他人。 基于此,我们构建了如下流程: 物理控制的三个角色:签名服务器管理员,加密备份持有者,密码片段持有者。 每个人只承担其中一个角色,例如,片段持有者不能访问签名密钥或加密备份。 数据的加密密钥是公钥加密。 私钥在一个一次性,内存中运行的 TAILS 会话中生成。 私钥使用 Shamir’s Secret Sharing 进行分片。 我们使用一个已经维护了 15 年的 Shamir’s Secret Sharing 实现。使用的安装通过可重复构建确认。 每个片段写入在商店使用现金购买未登记或预订的便携存储设备上。...

F-Droid 的渐进式 Web 应用客户端

我们创建了一个用于浏览 F-Droid 存储库的渐进式 Web 应用的原型。它是用Flutter 构建的,这项技术真的很适合在快速开发周期中工作。它还允许我们使它看起来和感觉像一个现代 Android 应用。作为取舍,Web 应用的大小相当大(约 10 MB)。因此,根据你的网络连接速度,第一次加载它可能需要一些时间。Flutter 也因试图连接到 Google 服务器而臭名昭著,我们还不知道如何使该应用符合 GDPR。 由于它只是一个早期原型,它远没有我们的官方 Android 应用完整。目前它只有一些最基本的功能:显示基本的存储库信息;提供用于将存储库添加到 F-Droid 客户端的链接/二维码;浏览和搜索应用;显示应用详细信息和应用下载。 F-Droid 存储库本身像网站一样部署。因此,自然可以将此 Web 应用部署到任何 F-Droid 存储库中,并立即使其可在 Web 上浏览。我们正在考虑添加一个选项,用于将其自动部署到我们的 F-Droid 存储库管理工具中。 运行 F-Droid 社区的工具可以轻松应用于 iOS 等其他平台。我们的团队提出了一个实验解决方案,用于使用 F-Droid 存储库发布 iOS 应用。因此,我们新的 PWA 提供了一个机会来探索 F-Droid 如何为 iOS 用户提供一点点自由。虽然我们希望帮助自由软件在各地的扩展,即使是在 iOS 等专有平台上,但 F-Droid 只会在 Android...

如何像 CalyxOS 一样使用 F-Droid 库

当我们构建下一代 F-Droid 客户端时,我们将代码重写为可重用的库,因此其他项目可以轻松使用 F-Droid 技术。 库 到目前为止,我们已经发布了三个库。其中两个是用 Kotlin 多平台编写的,因此它们也可以在 Android 之外使用。例如,你可以使用它们编写命令行甚至 iOS 客户端。 查看它们的自述文件了解如何将它们包含在你的项目中。 下载库 该库包含下载 F-Droid 存储库以及其中包含的 APK 和图像所需的一切。它处理下载恢复、存储库镜像并处理 F-Droid 客户端可能遇到的特殊 HTTP 情况。 该库的 Android 版本还负责拒绝早于 1.2 的 TLS 以及弱密码。它在使用 Tor 作为代理时防止 DNS 泄漏,并使用短 TLS 会话超时来防止跟踪和密钥重用。如果你使用 Glide 作为图像加载器,它还附带一个特殊的 ModelLoader 以与 Glide 一起使用。 有关详细信息,请参阅 API 文档。查看F-Droid 如何切换到下载库的示例。 索引库 多平台索引库为你提供处理 F-Droid...

新的 F-Droid 委员会,迎接新的增长时代

2023 年 3 月 20 日,互联网 — 全球 F-Droid 社区很高兴地宣布,它已正式接受合并请求,以采用官方治理计划,并成立了由社区提名的成员组成的首届委员会。 该社区是通过 The Commons Conservancy 依法建立的,该基金会是荷兰的一个基金会 (“Stichting”),它作为公共利益的技术努力的家园而存在。虽然 The Commons Conservancy 是我们的官方的和新的法律上的家园,但 F-Droid 已经建立了自己的独立志愿者委员会,他们受 F-Droid 社区委托制定战略、确定改进领域、帮助解决冲突并监督社区的技术项目和决策,以降低风险并增加全球 F-Droid 用户的信任度。由于最近对现有应用商店政策和政府法规进行了如此多的更改,对于像 F-Droid 这样的 FOSS 应用商店来说,这是一个有趣的时刻。(我们的新委员会成员 John Sullivan 最近在 FOSDEM 2023 期间谈到了这一点。) 在过去的几个月里,未来的委员会成员起草并完善了内部组织章程和条例,它们将成为 The Commons Conservancy 组织文件的一部分,同时将在现有的 F-Droid 管理存储库中进行托管和维护,社区成员可以随时提供反馈以改进治理。官方章程于 1 月 19 日由委员会投票通过,委员会第一次正式会议于 2 月 16...

VPN 信任需要自由软件

VPN 已经变得流行,并且经常被吹捧为改善隐私的工具。虽然有时确实如此,但在选择 VPN 时务必谨慎行事。一个好的起点是查看哪些 VPN 提供商满足运行可信赖的 VPN 服务的要求。值得信赖的 VPN 必须是自由软件,这没有商量的余地。首先,需要检查才能选择信任软件。拥有源代码是查看软件正在做的所有事情的唯一途径。F-Droid 审查我们在本网站上发布的应用,这让我们能够发现潜在的问题和负面特征。我们很高兴听到信誉良好的 VPN 提供商努力在 f-droid.org 上发布他们的应用以建立与用户的信任。进一步,可重复构建 在源代码和设备上运行的实际应用二进制文件之间提供了强有力的链接。 最好的 VPN 不仅客户端应用是自由软件,而且使用自由软件运行服务。事实上,所有 OpenVPN、Shadowsocks 和 WireGuard VPN 都基于自由软件,因为这些标准是由自由软件项目定义的。F-Droid 将此作为审查的一部分进行调查,并标记具有相关负面特征的应用,例如,如果服务器端不是自由软件则标记为非自由网络服务。并且有许多自由软件项目可以更轻松地设置和运行 VPN 或代理服务。以下是 f-droid.org 上的一些内容: Bitmask 是支持 Calyx VPN、Riseup VPN 等的 LEAP VPN 通用客户端。 eduVPN 是用于运行 eduVPN 的 Let’s Connect VPN 的客户端。 OpenVPN for Android 通用...

新的存储库格式实现更快和更小的更新

我们刚刚发布了适用于 Android 的官方 F-Droid 客户端应用 1.16 版本,其中包括许多底层的彻底改变以及针对长期存在的问题的许多错误修复。请继续阅读以了解详情。 不断增长的存储库大小 随着越来越多的应用进入 F-Droid,包含所有应用及其元数据的官方存储库索引也在不断增长。目前,压缩后索引的大小为 8 MB,未压缩时为 33 MB。更新存储库索引时,每个 F-Droid 客户端应用都必须一次又一次地下载和处理那些 8MB。这种有问题的趋势很久以前就已经变得很明显了。 仅更新有变化的内容 我们的存储库索引采用 JSON 格式,我们决定使用 RFC 7396 JSON Merge Patch 创建更小的 JSON 文件,其中仅包含自你的 F-Droid 应用上次更新以来的变化。从技术上讲,这是通过下载新的 entry.json 文件而不是完整索引来实现的。这个入口文件指向完整的索引,以防应用以前从未更新过并且无论如何都需要所有应用元数据。但该条目还包含指向各种较小的 差异 文件的指针。应用会自动选择正确的差异,并且只下载那个小得多的文件而不是完整的索引。这不仅可以节省带宽,还可以更快地更新索引,因为只需要下载、处理和存储最少量的数据。在撰写本文时,最新的差异压缩后 80 KB,未压缩时为 241 KB,仅是完整索引的 1%。官方 F-Droid Android 客户端应用 1.16 版本支持这种新的存储库格式。 其他改进 新版本在底层进行了大量彻底的更改。例如,必须替换整个数据库以支持新的基于差异的存储库格式。我们还借此机会改进了各种边边角角: 改进的镜像支持:所有文件(例如图像)现在都从镜像加载,减少了主服务器上的负载 更好地支持小内存设备,因为索引现在被流式传输到数据库中,而不是将其全部加载到内存中 哈希验证:所有...

RSS RSS