返回介绍

签名流程

发布于 2023-08-06 23:35:04 字数 3652 浏览 0 评论 0 收藏 0

使用公钥/私钥部分的加密签名是 F-Droid 如何提供安全应用分发的核心。使用 F-Droid 工具制作你自己的版本需要签名密钥。仔细考虑关键文件的位置、安全性和备份状态。密钥需要在 F-Droid 存储库或 Android 应用程序的整个生命周期内保持安全。签名密钥是 Android 应用程序和 F-Droid 存储库身份的核心,因此必须妥善保管这些密钥并妥善备份!另外,请注意,Google 的保护这些私钥 的说明仅提供了保护密钥所需的最少步骤.

运行存储库涉及两种类型的签名:

  • 存储库索引自身的签名
  • 标准的 Android APK 签名流程

存储库索引签名

设置存储库时,第一步应该是为存储库索引生成签名密钥。这还将创建一个密钥库,它是保存签名密钥的文件。

fdroid init 将自动为 F-Droid 存储库创建一个新的签名密钥。可以像创建 Android 签名密钥 一样手动创建密钥,使用如下命令:

keytool -genkey -v -keystore my.keystore -alias repokey \
  -keyalg RSA -keysize 2048 -validity 10000

在上面,将 my.keystore 替换为要创建的 keystore 文件的名称,并将 “repokey” 替换为识别存储库索引密钥的名称。 你会被要求提供 keystore 的密码和钥匙的密码。它们不应该是相同的。在这两者之间,你会被要求提供一些识别细节,这些细节将被写入证书。

输入的两个密码分别作为 keystorepasskeypass 进入 conconfig.yml。密钥库文件的路径在 密钥库 中设置,你为密钥选择的别名也进入该文件,称为 repo_keyalias

APK 签名

F-Droid 工具可以为其维护的每个应用自动生成和管理 APK 签名密钥。 配置存储库索引签名后,包签名工作所要做的就是将 config.yml 中的 keydname 字段设置为包含你之前输入的相同标识详细信息。 将使用这些详细信息为生成的每个应用生成一个新密钥。如果特定应用需要特定密钥,则可以使用 keyaliases 配置设置覆盖此系统。

要设置 fdroid publish,请在将 APK 复制到并运行 fdroid update 的同一台机器上执行这些步骤。首先,在 config.yml 中设置 keydname,应该是这样的:

keydname = "CN=example.com, O=Example Ltd, C=UK"

metadata/repo/ 目录旁边创建一个名为 unsigned/ 的目录,然后运行这些命令以基于_Application ID_ 和 Version Code

$ cd /path/to/repobasedir
$ touch metadata/com.example.app.yml
$ mkdir unsigned
$ cp /path/to/app-release-unsigned.apk unsigned/com.example.app_1234.apk
$ fdroid publish --verbose
$ fdroid update --verbose
$ fdroid server update --verbose

包签名

使用 F-Droid 工具构建和/或分发的所有包也可以由 PGP 使用 GnuPG 签名,从 APK 到媒体文件的任何内容都将被签名。此过程使用 fdroid gpgsign 运行。将 gpghomegpgkey 添加到你的 config.yml 中进行配置,examples/config.yml 中有更多信息.

硬件安全模块

硬件安全模块 (HSM) 是专门设计的硬件,用于安全地存储和使用加密密钥。 它们提供只写存储,因此私钥只能写入 HSM,而不能读出它。 fdroidserver 支持使用 HSM 进行存储库签名密钥。

有关如何配置 F-Droid 存储库以使用 HSM 的信息,请参阅 examples/config.yml 的”智能卡”部分,特别是 密钥库智能卡选项。 最有可能的是, OpenSC 需要设置为 Java 的 PKCS11 提供程序。 hsmwiz是一种使用智能卡 HSM(如 Nitrokey HSM)的更简单方法。OpenSC 和_hsmwiz_ 都可以在 Debian 中使用。

更深入的信息,请参阅:

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文