为什么内容管理和去中心化比数百万的应用更好
发布于 2022-11-23,发布者为
每台电脑或移动设备都有某种形式的 “应用商店”。Android 有 F-Droid。Debian 的核心是“软件库”。然后也有真正庞大、专有的应用商店:苹果应用商店和 Google Play。这些应用商店有数以百万计的应用,而 Debian 有几万个,F-Droid 大约有 4000 个。这些大应用商店宣传自己时经常提及这个统计数字。当通过这个数字进行比较时,F-Droid 微不足道。但实际上,你需要你的应用商店里有多少个应用呢? 每一个软件集合从根本上说都是一种内容管理行为。只有有用的软件才会被收录。恶意软件被过滤掉。在你所在地区被认为是非法的软件被阻止。任何不符合标准或服务条款的软件都被删除。在由社区进行内容管理的发行版(如 Debian 或 F-Droid)中,贡献者通过选择值得他们关注的应用来进行内容管理。没有一个主要的面向最终用户的软件发行版是不进行内容管理的。理想的情况是,这些软件对你这个用户是有用的。可悲的是,实际情况往往并非如此。想想那些优先考虑监控资本主义的公司:它们包括旨在捕捉你的注意力的软件,以便它们可以卖给广告商。或者一些承诺对应用进行隐私保护,但随后豁免他们自己的软件的公司。 从用户的角度来看,理想的应用商店将仅包含用户想要的东西。没有人在他们的设备上安装数百万个应用。所有这些额外的应用只会妨碍寻找重要应用。更糟的是,在大型应用商店里,它不仅仅是噪音,它是恶意软件或公司试图诱使你加入一些东西。他们正试图成为最闪亮的东西,以便人们点击“购买”按钮。或者更糟糕的是,他们试图让你上瘾,以便他们可以将你的数据卖给广告商。 F-Droid 是围绕不同原则组织的:用户选择、去中心化和社区控制的内容管理。这意味着 F-Droid 默认为你提供选定的应用,没有封禁或审查。当你安装 F-Droid 应用时,它会自动连接到由这个社区维护的 f-droid.org 上的集合。F-Droid 还使任何人都能轻松根据他们自己的审查规则发布存储库。Repomaker 是一个用于发布的简单网络应用,而 fdroidserver 命令行工具为 f-droid.org 提供了动力。 这样的组织方式使很多困难的问题消失了。儿童、黑客、宗教人士、祖父母、活动家、单身汉和成人电影演员;我们都使用日历,阅读新闻,需要帮助导航,玩游戏。多年来,在 f-droid.org 社区内形成了一个粗略的共识,即我们的集合应该这样进行内容管理。事实证明,这与其他自由软件社区,如 Debian 相当相似。这篇博文的目的是让我们的用户更清楚地了解这一点。 每个社会都有公认的对冒犯性事物进行沟通的方式。如果 f-droid.org 是软件的唯一来源,那么我们的内容管理将是审查制度,因为我们将阻止言论。作为自由软件和隐私的支持者,我们也不希望与审查制度有关。这就是去中心化的意义所在。去中心化意味着人们可以以精细的方式选择他们信任的人,而不是全都要或全都不要。我们投入了大量的工作,使任何人都可以轻松地制作他们自己的应用存储库,这些存储库可以遵循其创建者想要的任何规则。由于 F-Droid 存储库是一种用户控制的订阅形式,它不是 F-Droid 贡献者做决定的地方。F-Droid 用户在自己的设备中包含哪些应用或存储库完全取决于他们。 关于去中心化系统的一个常见的抱怨是,它们不好用。对于 Android 应用生态系统,以及一般的软件分发来说,这并非事实。软件库通常不是单一的,大型移动应用商店才是例外。Windows 允许许多来源。GNOME 软件有一个基于...
自由软件和检查是我们可以信赖的软件的关键
发布于 2022-09-30,发布者为
检查软件对于了解该软件实际在做什么至关重要。自由软件意味着所有用户都有机会全面检查他们所依赖的源代码。网络安全行业建立在检查软件以发现恶意软件并建立防御的基础上。恶意软件扫描器使用大量软件特征签名来扫描数十亿台设备,而发现新的攻击需要代码审计,技术分析和取证。这是最著名的软件检查领域。还有志愿者、学者和民间社会组织寻找跟踪,针对性攻击,令人上瘾的黑暗模式,监视资本主义和其他不道德的做法。 F-Droid 社区也建立在检查之上,确保我们分发自由软件并标记负面特征。 一些开发者会描述这些功能,但会忽略关键细节。这可能只是一个简单的疏忽,也可能他们知道用户会不高兴,因此他们的目标是让这些细节远离公众视线。即使是努力保持透明并诚实地为用户服务的开发者也可能掉进坑里。我们有庞大的设施告诉开发者在他们的应用中包含了哪些库和服务,因为这将改善功能或开发过程。 “寻找创收机会应该轻而易举!” “出色的数据收集软件使您能够最大限度地提高生产力!” “应用货币化是一种帮助您从移动应用中赚钱而无需收费的方式。” 这些通常包括用户不想要的东西。这些行业实际上在说的是:收集尽可能多的个人数据,跟踪用户,用令人上瘾的黑暗模式留住他们,并吸引他们的注意力向他们展示尽可能多的广告。这些是我们正在努力揭露的事情,并且我们正在构建工具以提高效率并使更多人可以参与其中。 使用签名进行扫描 人工检查软件的最可靠方法之一是自动扫描感兴趣特征的签名并将结果展示给人工审查者。签名可以是二进制机器代码块、URL、函数名、域名或元数据位(如 API 密钥 ID)。二进制代码签名是各种恶意软件扫描程序使用的主要方法。恶意软件研究人员致力于寻找特定恶意软件独有而其他软件没有的小模式。以下是此类签名的示例,它是 Silentbanker 木马的 YARA 配置文件: strings: $a = {6A 40 68 00 30 00 00 6A 14 8D 91} $b = {8D 4D B0 2B C1 83 C0 27 99 6A 4E 59 F7 F9} $c = "UVODFRYSIHLNWPEJXQZAKCBGMT"...
从慢速走向快速
发布于 2022-09-20,发布者为
我们最近在某些方面有点沉默,比如这个博客和要审查的合并请求。我们努力让用户了解情况,并且我们总是感谢贡献,即使我们无法立即审查它们。F-Droid
创始于 2010 年,因此我们有一些技术债务,不能总是快速行动。 我们感谢在贡献时的耐心。
好消息是,这是因为由于一系列似乎同时发生的重大改进我们真的非常忙碌。 所以下面是一个快速的概述:
您可能已经注意到,这个网站有时运行得非常慢。 我们一直在努力改善这一点。 自从我们推出新的前置网络服务器以来,我们已经看到了很大的改进。
现在,我们获得了有关网络使用情况和服务器状态的更好数据,这意味着我们可以更有效地进行故障排除和优化。
我们正在完成对官方 F-Droid
客户端应用的重大更新(感谢
FFDW
的资助),包括一项安全审计(感谢 NLnet
的资助)。这替换了大量的技术债务,修复了许多错误,增加了一个全面的测试套件,并且应该使贡献者更容易理解代码。
我们有了一些新的贡献者 构建服务器 实例,用于在生产设置上测试应用构建。这加快了应用审查过程,特别是对于构建复杂的关键应用,例如
Element 或 Jitsi Meet。这些实例还允许我们执行定期的存储库范围的扫描,以查找任何可能潜入的非自由依赖项。
在对贡献者 构建服务器 实例使用 Ansible 自动化后,此设置现已得到验证,我们现在正在切换生产设置以使用它。
这意味着任何人都可以相对轻松地检查和重新创建生产设置。
我们正在为生产 构建服务器 设置新硬件,以实现构建过程的并行化。
我们正在最终确定我们的新法人实体及其委员会。
让更多 F-Droid 核心贡献者获得在 F-Droid 上工作的报酬。
这只是所有正在发生的事情中的一个例子。借助更多的贡献 F-Droid
可以加快速度,我们期待您的贡献!它可以是任何事,如应用审查,潜心解决问题,以及捐赠以使更多的人花更多的时间让 F-Droid 变得更好。
万岁,F-Droid 网站现在有了印度尼西亚语版本!
发布于 2022-09-15,发布者为
F-Droid 网站让您可以访问各种自由软件应用,而不必担心失去您的隐私或数据;以印度尼西亚语提供它对于使印度尼西亚的人们广泛使用自由软件很重要。
感谢为 F-Droid 网站、文档和应用描述添加印度尼西亚语支持的志愿者。不过仍有改进的余地,所以如果你有兴趣帮助翻译
F-Droid,您可以点击此处贡献翻译。
您还可以通过捐款来支持
F-Droid,或者如果您有编码或设计等技能,您可以通过加入邮件列表或在 GitLab
上检查问题。
谢谢你 :)
Maven Central 并没有它看起来的那么自由
发布于 2022-07-22,发布者为
F-Droid 始终致力于分发自由开源 Android 应用。从源代码为 Android 构建自由软件面临与 Debian 等 GNU/Linux 发行版不同的一系列挑战。 Android 应用是交叉编译的:它们与运行的操作系统不同。最重要的是,Android 只提供了一组内置的准系统库。与 Java 生态系统一样,应用通常从 Maven 存储库中获取库二进制文件并使用它们构建应用。为了确保应用只使用自由开源依赖构建,我们在 fdroidserver 中开发了一个扫描系统来限制依赖源并找出有问题的依赖项。 自 2015 年起,F-Droid 禁止使用未知的 Maven 存储库并仅信任一些知名的 Maven 存储库。之后,更多存储库被添加到了列表中。目前有 8 个我们信任的 Maven 存储库: Maven Central 谷歌 Maven 存储库 JCenter OSS Sonatype OSS JFrog JitPack.io Clojars CommonsWare Gradle 插件存储库 2020 年,源代码中包含的 JAR 和...
我们的构建和发布基础设施,以及即将到来的更新
发布于 2022-05-24,发布者为
F-Droid 的背后是一大堆自动化系统,用于管理从源代码构建数千个应用的过程。这意味着检查数以千计的源代码库,检查它们是否有更新、构建和新版本,并安全地对它们进行集体签名。所有构建都在称为 buildserver 的全新客户虚拟机实例中运行。所有 Gradle 二进制文件和 Android SDK 包都根据我们观察到的 SHA-256 校验和的公开记录进行了验证。透明度记录流程还会根据上游的公共校验和进行验证。 我们的设置几乎完全在 Debian 上运行。 Debian 是自由软件、坚如磐石的服务器和可重复构建的领导者。这使它成为 F-Droid 的天然家园。我们还努力确保我们维护我们使用的软件包,并在 Debian 软件包之上构建我们的流程。这意味着我们与任何使用 Debian 的人共享维护。回馈似乎需要付出更多的努力,但我们的经验是,从长远来看,它会带来回报。 F-Droid 社区可以通过一个小团队来维护很多东西。另一个例子是这个网站本身:它是使用 Debian 中的 Jekyll 包构建的。 如果你在 f-droid.org 上有一个应用,你可能已经注意到所有构建都发生在 5 年前的 Debian 版本上:stretch。我们正在努力升级到最新的 bullseye 版本。这不仅仅是一个简单的 apt-get upgrade,我们还借此机会彻底改革了构建过程,以便应用构建可以使用相对简单的 Debian 安装作为基本操作系统。我们必须提供一个平台来构建数以千计的应用,所以我们不能随心所欲地升级基础镜像。有些应用需要最新、最好的。其他应用需要古老、稳定的基础操作系统。此更改意味着元数据包含尽可能多的构建逻辑,以便应用维护者可以控制所有步骤。为了实现这一点,我们将尽可能多的部分从 buildserver 基础镜像中剥离出来。 我们考虑过提供一系列基础镜像。这是一个可能的解决方案,但它并不像使用任何可用的 Docker 映像那样容易。只有保证是自由软件的基础镜像才是合适的。仅仅指向任意 Docker 镜像将会产生带来专有构建依赖项的可能性,因为无法自动检查任何 Docker 镜像是否是...
从用户到贡献者并更进一步
发布于 2022-04-25,发布者为
这篇博文由 F-Droid 的贡献者之一 Licaon_Kter 撰写。为了帮助支持 Licaon_Kter 和其他贡献者的工作,请考虑向 F-Droid 捐赠。我们希望每周筹集 1,200 欧元,以便 Licaon_Kter 可以继续全职进行贡献。 一名用户 20 多年来,我一直在使用自由开源软件。我开始使用双引导来测试 GNU/Linux 发行版,并在几年前决定使用 Slackware。由于 WINE 总是越来越好,双启动的理由很少,我已经切换到 Debian 并完全删除了 Windows 分区。因为我总是离联网的电脑不到 15 分钟,所以我不关心智能手机。当然,我已经为家人设置了几台设备,但是在我拥有自己的旧设备之前,我很惬意地不知道为什么 Android 是自由的,或者为什么 iOS 是封闭的。 我的这台旧设备运行良好,但我听说了 XDA 论坛并开始探索自定义 Android ROM,钻研 Gapps、root 和 AFWall+,这让我非常清楚 Google 是如何在“免费”Android 许可证上赚钱的。 XDA 提到了“替代应用商店”,但那些商店通常不过是从 Google Play 商店复制应用收集它们。这么做我可以避免跟踪,但始终担心这些 apk 会被恶意软件感染。然后 F-Droid...
没有用户账户,设计如此
发布于 2022-02-28,发布者为
从一开始,道德就一直是 F-Droid 社区的核心,其中重点是自由软件、隐私和用户控制权。F-Droid 设计的一个关键部分是缺少用户帐户。在向用户交付应用的过程中,从未使用过任何用户帐户。这是设计使然。F-Droid 从来没有在 Android 客户端应用中识别或跟踪用户的方法,并且从 f-droid.org 获取信息也从来不需要任何类型的身份信息。 拥有用户帐户使一些问题更容易解决:它使包含评级和评论以及管理文档编辑变得容易。但是,拥有用户帐户会使其他问题更难以解决。用户帐户不可避免地意味着个人身份信息 (PII) 将被收集和存储。用户帐户还需要密码,通常还需要电话号码或电子邮件地址。所有这些数据都需要得到保护。我们的核心目标之一是消除跟踪用户的可能性。拥有用户帐户将使该目标几乎不可能实现。 事实证明,用户帐户几乎不会是构建服务的必要条件,尽管许多服务都让它看上去是这样。用户帐户是收集数据并将所有链接起来创建非常详细的用户画像的好方法。这对于跟踪用户以将其商品化并将他们的注意力出售给最高出价者至关重要。 用户帐户还用于控制对信息和数据的访问。它们用于“区域锁定”视频以及选择性地阻止访问应用。当然,限制访问也有一些有价值的用例,例如确保小孩只能访问适合年龄的内容。但是还有其他方法可以做到这一点,例如通过策划存储库使成人内容通过单独的选择加入存储库交付。 用户帐户是跟踪人们的核心 用户帐户和 ID 是跟踪用户并建立长期画像的关键部分。如果一项服务需要一个帐户来访问它,那么该服务很可能会跟踪其用户。当用户登录时,他们清楚地告诉服务他们是谁。然后,该服务可以轻松地将操作关联到该帐户以建立画像。这并不是说没有正当理由来跟踪用户。如前所述,维基百科编辑器是基于用户帐户的基本服务的一个示例。我们所说的是,如果隐私对你很重要,那么登录要求应该让你停下来思考。 Google 为我们提供了一个丑陋的例子。它在让人们尽可能多地登录方面付出了很多努力,而且他们的大多数服务都要求用户使用帐户登录。以及那些不催促你登录的服务。Chrome 浏览器甚至有登录选项,这些都与 Google 帐户相关联。他们经常说它使服务更易于使用为这一要求辩护 。虽然跟踪用户确实可以在某些方面更好地为用户服务,但 Google 似乎一直将这些案例应用于意味着他们获得更多跟踪数据的情况。使用 Google Meet 时,他们仍然需要登录才能创建会议,即使他们支持在没有帐户的情况下通过 URL 加入会议。Jitsi Meet 的用户体验更加轻松,并且没有账户。或者考虑一下 Google 问题跟踪器:它现在需要 Javascript 和有效的 Google 帐户才能以任何方式使用该服务,即使你只是想阅读现有的帖子。它可以在没有 Javascript 或用户帐户的情况下运行多年,因此很明显该服务不需要它们来运行。 哪些仍然有用即使没有用户帐户? 事实证明,F-Droid 并不是唯一在没有用户帐户或画像的情况下提供关键服务的。有浏览器、wiki、共享记事本、视频会议,甚至消息和分析。许多使用帐户的系统也允许在不登录的情况下阅读甚至编辑。 要回答的第一个问题是:该服务是否需要知道用户是谁才能发挥作用?该信息能否仅保留在用户设备上?例如,电子邮件或消息服务需要对其用户有足够的了解,才能将发送消息的用户的数据定向到预期的收件人。这主要意味着服务器依赖于每个用户在服务器上都有一个帐户。这是实现这种系统的常用方法,但不是唯一的方法。Tor Onion Services 开辟了另一种方法。它们被设计为在系统的任何部分都无法查看谁在向谁发送数据以及谁在发出请求的情况下路由数据。Briar 在此基础上构建了除了参与对话的人之外,任何人都不知道谁在向谁发送消息的通信服务。使用 Briar,用户联系信息只保存在用户的设备上。...
