On Thu, Jan 23, 2025 at 11:40:04PM -0800, Joel Ray Holveck wrote:
> Package: apt
> Version: 2.9.23
> Followup-For: Bug #1088288
> 
> Dear Maintainer,
> 
> The addition of default-sequoia.config has helped, but seems to be
> incomplete.  Slack still cannot be updated.  It gives this error message:
> 
>     Get:2 https://packagecloud.io/slacktechnologies/slack/debian jessie
> InRelease [29.1 kB]
>     Err:2 https://packagecloud.io/slacktechnologies/slack/debian jessie
> InRelease
>       Sub-process /usr/bin/sqv returned an error code (1), error message is:
> Signing key on DB085A08CA13B8ACB917E0F6D938EC0D038651BD is not bound:
> primary key   because: No binding signature at time 2024-12-17T17:27:20Z
> because: Policy rejected non-revocation signature (PositiveCertification)
> requiring collision resistance because: SHA1 is not considered secure since
> 2013-02-01T00:00:00Z
>     Warning: GPG error:
> https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease:
> Sub-process /usr/bin/sqv returned an error code (1), error message is:
> Signing key on DB085A08CA13B8ACB917E0F6D938EC0D038651BD is not bound:
> primary key   because: No binding signature at time 2024-12-17T17:27:20Z
> because: Policy rejected non-revocation signature (PositiveCertification)
> requiring collision resistance   because: SHA1 is not considered secure
> since 2013-02-01T00:00:00Z
>     Error: The repository
> 'https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease' is
> not signed.
>     Notice: Updating from such a repository can't be done securely, and is
> therefore disabled by default.
>     Notice: See apt-secure(8) manpage for repository creation and user
> configuration details.
> 
> It seems that there are certain requirements regarding the signing key that
> are not allowed by the default-sequoia.config that is currently put into
> place.
> 
> [Analysis] To clarify some of the terminology in the error message, a
> "non-revocation signature" is not one that asserts the key hasn't been
> revoked; it's just any signature that is not a revocation signature. The
> PositiveCertification is a signature associating a user ID with the primary
> key.
> 
> [Analysis] In
> https://docs.rs/sequoia-openpgp/1.21.2/sequoia_openpgp/policy/enum.HashAlgoSecurity.html#variants
> , note that the signature binding the user ID to the primary key need only
> be second preimage resistant if the user ID is a short email address.  The
> Slack user ID is "https://packagecloud.io/slacktechnologies/slack
> (https://packagecloud.io/docs#gpg_signing) <supp...@packagecloud.io>", which
> is an allowable email address format, but is not short: the cutoff is 96
> bytes, according to 
> https://gitlab.com/sequoia-pgp/sequoia/-/blob/93dcddcb5c5a493faa1d958a085f55d7d1eda50c/openpgp/src/packet/userid.rs#L762
> .  spv then falls back to requiring general collision resistance.
> 
> I was able to work around this issue by creating the following
> /etc/crypto-policies/back-ends/apt-sequoia.config :
> 
>     [hash_algorithms]
>     sha1.second_preimage_resistance = 2026-01-01
>     sha1.collision_resistance = 2026-01-01
>     [packets]
>     signature.v3 = 2026-01-01
> 
> If it is desirable to support such keys using SHA-1, then I suggest putting
> this additional sha1.collision_resistance field in default-sequoia.config.

No I am sorry, this is a very significant security issue if you go
start trusting SHA-1 signatures. Because you don't just trust it for
keys now; but for data signatures too.

We haven't trusted them for data signatures since November 2016...

-- 
debian developer - deb.li/jak | jak-linux.org - free software dev
ubuntu core developer                              i speak de, en

Reply via email to