RSA 以外的加密算法是否对 debian 包签名有效?

RSA 以外的加密算法是否对 debian 包签名有效?

我找到的几乎所有文档debian 包签名完全省略了加密算法的主题,而且我见过的少数涉及该主题的人只提到了 RSA,在一种情况下还提到了 DSA。

gpg 似乎是所有 debian 包签名的根源。

gpg 自 2011 年起就有了椭圆曲线,2014 年发布的 2.1.0 使其正式化。但似乎没有提到它的使用。

问题:

  • 您可以使用 EdDSA (Ed25519) 密钥对来签署 debian 软件包吗?
  • 从 2014 年起,这是否适用于安装的 gpg 版本至少为 2.1.0 的任何地方,或者是否有其他限制?
  • gpg 支持的算法中是否存在不应用于 debian 包签名的算法?如果是,是哪些算法,为什么?

答案1

假设您指的是 APT 存储库的签名(这是常见的),而不是指签名单个包(这不是),那么答案是 APT 使用gpgv,因此支持该二进制文件执行的所有算法。由于gpgv它是 GnuPG 的一部分,因此它应该支持 GnuPG 的等效版本所支持的所有相关算法。

因此,假设您有合适的 gpgv 版本,您确实可以使用 EdDSA 算法。这似乎是 GnuPG 2.1.0 中的新内容,因此应该是可扩展的或更新的。注意依赖关系允许使用 v1 of gpgv,它不支持这一点,但这将是一个奇怪的配置。

一般来说,您的目标应该至少是 128 位安全级别。这意味着,如果您使用 RSA 或 DSA,则它应该至少是 3072 位密钥(这是 DSA 的最大值),或者您应该使用 256 位或更大的椭圆曲线。与 SSH 不同,在 SSH 中,DSA 实际上限制为 1024 位,因此不安全,DSA 在 OpenPGP 中并非不安全,但它在加密社区中已经失宠,因为它比大多数 EC 算法慢。

您还应该确保您的签名是使用 SHA-256 或 SHA-512 进行的。 SHA-1 曾经是默认值,对于签名而言不安全,APT 将不再接受它(即使接受,您也不会愿意这样做)。

由于历史原因以及 EdDSA 尚未标准化为 OpenPGP 的一部分,RSA 目前是默认设置。但是,除非您需要与其他非 GnuPG 实现进行互操作,否则没有理由不使用 EdDSA。

相关内容