Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Accept SHA1 hash algorithm #3275

Closed

Conversation

Rustin170506
Copy link
Member

close #3250

Signed-off-by: hi-rustin <rustin.liu@gmail.com>
@Rustin170506
Copy link
Member Author

Tested locally:

rustup git:(master) ✗ RUSTUP_HOME=home CARGO_HOME=home home/bin/rustup install 1.8.0 
info: syncing channel updates for '1.8.0-aarch64-apple-darwin'
info: latest update on 2016-04-12, rust version 1.8.0 (db2939409 2016-04-11)
error: target 'aarch64-apple-darwin' not found in channel.  Perhaps check https://doc.rust-lang.org/nightly/rustc/platform-support.html for available targets

@Rustin170506 Rustin170506 requested a review from rbtcollins March 18, 2023 08:31
None,
);
// cutoff date when verifying the signature key bindings.
policy.accept_hash(HashAlgorithm::SHA1);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this permits SHA1 in any context, which will permit it to be used to attack distributions, and it really is thoroughly broken for plain collision resistance. https://sequoia-pgp.org/blog/2023/02/01/202302-happy-sha1-day/

I don't know yet whether the failed signatures are:
a) a bug in the sequoia binding-case detection
b) some other place SHA1 is turning up in our distribution signatures that is attacker controlled

If it is (a) the fix is to work with sequoia to get their extended period fixed, or to issue new binding signatures on the keyring we're using (using keyring-linter), or both.

If it is (b) we need to cover that case once we understand it, since it means we are flat vulnerable.

Copy link
Member Author

@Rustin170506 Rustin170506 Mar 19, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this permits SHA1 in any context, which will permit it to be used to attack distributions, and it really is thoroughly broken for plain collision resistance. https://sequoia-pgp.org/blog/2023/02/01/202302-happy-sha1-day/

We had a discussion about it last time. You can see #3186 (comment)

@nwalfield Do you have any thoughts about this issue? Could you please give us some help? Thanks!

@pietroalbini Could you please share how we sign these manifest files in our release process? Thanks!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with @rbtcollins, this patch allows data signatures, which definitely require collision resistance, using SHA-1. We definitely don't want that.

It would be good to understand where the data signatures using SHA-1 are coming from and fix that.

Copy link
Contributor

@rbtcollins rbtcollins left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.

@Rustin170506
Copy link
Member Author

Closed by #3277

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

incorrectly reported signature validation failure (Rust 1.8.0 to Rust 1.21.0, some nightlies)
3 participants