advisory: Double Public Key Signing Function Oracle Attack on Ed25519#268
advisory: Double Public Key Signing Function Oracle Attack on Ed25519#268frasertweedale merged 1 commit intomainfrom
Conversation
55cd96b to
1578ad2
Compare
|
Thinking about it some more, I wonder if the affected libraries can/will fix this issue. Perhaps this should only concern users who don't validate that the public key is valid, like the gen-ed25-keypair tool. I guess it may be acceptable for crypton* to expose dangerous functions when the caller is responsible of using them correctly. |
I'm not sure we can actually prevent it, but, at least, it should be part of the documentation of exposed functions. |
1578ad2 to
68556b9
Compare
|
If we issue the advisory, please also include this article in the references: I am unsure whether issuing an advisory against the cryptographic implementations themselves is the correct approach.
-- | Derives public key from secret key
signSafe :: ByteArrayAccess ba => SecretKey -> ba -> Signature
-- | Checks that public key corresponds to secret key
signChecked :: ByteArrayAccess ba => SecretKey -> PublicKey -> ba -> CryptoFailable SignaturePing @kazu-yamamoto - what do you think? |
| [advisory] | ||
| id = "HSEC-2025-0002" | ||
| cwe = [] | ||
| keywords = ["crypto", "historical"] |
There was a problem hiding this comment.
I think we should drop the historical tag here, because the issue is in current releases.
There was a problem hiding this comment.
Thanks, I've dropped it
|
Thank you for informing this issue. Either approach (1) and approach (2) is fine with me.
I don't have a strong opinion on this but it seems to me that approach (2) seems better in the long run. |
|
Or what about changing the current |
@kazu-yamamoto yes, if you ignore the argument and re-derive the public key internally, that is the safest way. The downside is that it causes a constant overhead for every signing operation (this is why the "optimisation" exists in the first place). I think it's acceptable to change It might be worth considering exposing the existing behaviour as a functional named, say, |
|
Please give a look at: kazu-yamamoto/crypton#47 If OK, I will change Ed448, too. |
|
@kazu-yamamoto thanks! I left some comments in the PR. |
975d84d to
4451c98
Compare
|
Added the fixed release for crypton |
4451c98 to
6388c18
Compare
|
I added a couple additional references, and updated the Thanks for preparing the advisory. Merging now. |
Advisory
hsec-toolsDiscussed here: awakesecurity/gen-ed25-keypair#8 (comment)