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

SHA-3/Keccak #11

Open
smarts opened this issue Oct 28, 2015 · 9 comments
Open

SHA-3/Keccak #11

smarts opened this issue Oct 28, 2015 · 9 comments

Comments

@smarts
Copy link

smarts commented Oct 28, 2015

SHA-3 has been published. Why not require (or strongly suggest) support for it as well?

@fmarier
Copy link
Member

fmarier commented Oct 28, 2015

Why not require (or strongly suggest) support for it as well?

That's certainly something we should add to V2. Adding this requirement to V1 at this point would move us away from having our two shipping compliant implementations.

@joelweinberger joelweinberger added this to the v2 milestone Oct 28, 2015
@fmarier fmarier removed the SRI-next label Oct 29, 2015
@hillbrad hillbrad modified the milestone: v2 Jan 22, 2016
@smarts
Copy link
Author

smarts commented Mar 19, 2016

Why was this removed from the v2 milestone?

@isaacs
Copy link

isaacs commented Feb 18, 2020

It'd be good to get this included, particularly with some guidance about the algorithm indicator to use, since SHA v3 is really 3 different algorithms depending on the bit count.

As I understand it, the - character delimits the algorithm from the hash, so sha3-512-<hash> is not ideal. It'd be nice to know if we should be using sha3_512-<hash> or keccak512-<hash> or what. Even before there's browser buy-in, Node.js programs using the ssri library could benefit from stronger and more future-proofed integrity values, and we could add support for it there very easily.

Related: npm/ssri#5

@devd
Copy link
Contributor

devd commented Feb 18, 2020 via email

@mikewest
Copy link
Member

From Chromium's perspective, we're unlikely to be able to easily support primitives that don't make it into BoringSSL. AFAIK, that doesn't yet support SHA-3, and given that @agl has suggested that we consider skipping SHA-3, it's not clear to me whether that's likely to happen.

@isaacs: Can you help me understand why this is valuable to y'all? Does SHA-256/512 not meet your need?

@agl
Copy link

agl commented Feb 18, 2020

Adding primitives costs implementation time, validation & compliance time, and code size. It also has non-linear costs in terms of supporting and testing all the various combinations that it introduces across various protocols.

Since we already have secure hash functions in the form of SHA-256 and SHA-512, we've no plans to support SHA-3 generally.

@isaacs
Copy link

isaacs commented Feb 21, 2020

This is certainly not a pressing issue, as SHA-512 is still secure, and I'm sure will be for some time.

But, as we saw with md5, and then sha1, "secure" (in a boolean sense) is a temporary state. One of the benefits of SRI as a standard is that it allows for future-proofing by swapping out weaker algorithms for stronger ones over time.

Eventually, I expect that SHA-512 will not be sufficiently secure, and we'll want to migrate to something stronger. SHA3-512 is stronger. Support for SHA3 has been added to Node.js in the latest stable releases, so it'd be nice to have a plan for supporting SHA3 integrity values in npm packages.

I understand the resistance to adding SHA-3 support to browsers, given the lack of urgency and the costs involved. But still, it'd be nice to have some guidance from the SRI specification what a valid SHA-3 SRI would look like, once supported, so that those of us who are ready to support it can do so in a way that is forward compatible.

@annevk
Copy link
Member

annevk commented Feb 22, 2020

But it's not clear it will be supported, per the prior two replies, so why would we update the formal standard to suggest otherwise?

@isaacs
Copy link

isaacs commented Mar 12, 2020

@annevk Seems fine for now, I guess. (Where "now" = "the next few years at least".) If sha-3 ends up being skipped in favor of some other update to make sha2 faster and/or more secure, then we've saved the hassle of adding it.

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

No branches or pull requests