-
-
Notifications
You must be signed in to change notification settings - Fork 517
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
Reconsider 20 recipients limit #139
Reconsider 20 recipients limit #139
Comments
While I don't recall the original motivation, there does need to be a limit on the number of recipients, due to the multi-key attack on ChaCha20Poly1305 that affects age. See 2194f69 for more details about the attack and its mitigation. The specific constraint is that an attacker can test |
@str4d My use case is related to It may be possible for me to instead encrypt the secret with only that server as the recipient, I was thinking about doing that anyway, to limit how easily a secret can be decrypted. |
Ah, it looks like the mentioned attack isn't relevant to SSH keys. |
Hi! I encountered this same problem while developing Agebox. I'll start by saying that I'm not a security expert and most probably that I'm missing something 🤣 sorry in advance: Having this limit on the From the UX perspective, a person could encrypt with 21 public keys, delete the original file/data, and end with an undecryptable file. Shouldn't this error be also on the encryption part to avoid this use case? Thanks! |
For example, if age is behind some service, the attacker wouldn't have direct access to the encrypted file. |
How about updating the README to mention the limit? Since more than one user have been surprised it seems worth mentioning as a limit that has practical effect. |
Turns out I sort of underestimated how fast computers are these days.
I'm thinking this will probably not be a problem, and if it becomes one we will understand it better and maybe have a DecryptWithOptions API already for other reasons. (About the partition oracle attacks, we don't provide anonymity for online oracles, because there are just too many side channels, both in age and in any reasonable application that can be written with it, so having a lot of recipients doesn't cause more trouble than you're already going to have with any online oracle.) I just removed the limit to match rage. |
Why === * Someone said age works better with password protected keys, requiring entering the password less often. * We switched to rage from age in 07ce686 because it was limiting recipients to 20. This was fixed FiloSottile/age#139 What changed === * Switch from rage back to age (the reference implementation) in all the spots * Update the docs to show how to switch back to Rage
Why === * Someone said age works better with password protected keys, requiring entering the password less often. * We switched to rage from age in 07ce686 because it was limiting recipients to 20. This was fixed FiloSottile/age#139 What changed === * Switch from rage back to age (the reference implementation) in all the spots * Update the docs to show how to switch back to Rage
Why === * Someone said age works better with password protected keys, requiring entering the password less often. * We switched to rage from age in 07ce686 because it was limiting recipients to 20. This was fixed FiloSottile/age#139 What changed === * Switch from rage back to age (the reference implementation) in all the spots * Update the docs to show how to switch back to Rage * Skip keys that are empty files, which fixes the integration test.
Why === * Someone said age works better with password protected keys, requiring entering the password less often. * We switched to rage from age in 07ce686 because it was limiting recipients to 20. This was fixed FiloSottile/age#139 What changed === * Switch from rage back to age (the reference implementation) in all the spots * Update the docs to show how to switch back to Rage * Skip keys that are empty files, which fixes the integration test.
What were you trying to do
Trying to decrypt a file with 69 recipients.
What happened
What I expected
The file gets decrypted.
I found a part of the code where it limits the recipient number of decrypted messages to 20:
age/age.go
Line 127 in 0c650f8
Can we expect that
age
will be limited to 20 recipients or is this a temporary limitation?The text was updated successfully, but these errors were encountered: