If the key is the same password you use to login, then they already have the key. They may not store it unhashed, but you transmit it to them every time you login. If law enforcement forces Proton, or if Proton turns evil (or gets infiltrated by a three letter agency), they can use it from the auth to decrypt your key and your data.
Plus, a bad actor having access to the encrypted key is free to brute force it. It may be hard but not guaranteed to stay hard forever.
Edit: didn’t realize I was in a Proton fanboy community where you can’t criticize or ponder the service security…
You don’t send them the password. The password never leaves your device. The password is the decryption key to decrypt your encrypted private key, which is what they send to your device. This is why, for Proton Mail, and others that use this technique, it is imperative to have a strong password to protect your private key.
How do they authenticate* you? They just send the encrypted key and if you can decrypt it then it’s you?
If so I can request any account encrypted key and try to brute force it offline
I can request any account encrypted key and try to brute force it offline
This is likely wrong, any password would allow you to produce a valid key from an encrypted key, it will not be a correct key, so you will fail during decryption, but it will take a lot of time to check and may not be easy to automate.
Regarding the auth, they may provide you with a challenge that is encrypted with your public key, and if you have decrypted it correctly, authenticate you, but I don’t know how it’s done or should be done.
it will not be a correct key, so you will fail during decryption, but it will take a lot of time to check and may not be easy to automate.
If you have any way to check the key validity offline (for example, you subpoena the encrypted data) then it’s trivial to check and automate.
Of course not everybody is capable of this, but it’s becoming less and less difficult to brute force it, and renting a few hours of GPU time to do it is within the means of small bad actors.
Renting a few hours of GPU may not cut it, depending on how long the key is, but you’re right, getting some data offline would help in breaking the encryption
It may not cut it now, but we can’t guarantee it will stay the same within a few years (either faster compute, or other techniques that speed up the brute force)
If the key is the same password you use to login, then they already have the key. They may not store it unhashed, but you transmit it to them every time you login. If law enforcement forces Proton, or if Proton turns evil (or gets infiltrated by a three letter agency), they can use it from the auth to decrypt your key and your data.
Plus, a bad actor having access to the encrypted key is free to brute force it. It may be hard but not guaranteed to stay hard forever.
Edit: didn’t realize I was in a Proton fanboy community where you can’t criticize or ponder the service security…
You don’t send them the password. The password never leaves your device. The password is the decryption key to decrypt your encrypted private key, which is what they send to your device. This is why, for Proton Mail, and others that use this technique, it is imperative to have a strong password to protect your private key.
How do they authenticate* you? They just send the encrypted key and if you can decrypt it then it’s you?
If so I can request any account encrypted key and try to brute force it offline
I’m also interested in that, but
This is likely wrong, any password would allow you to produce a valid key from an encrypted key, it will not be a correct key, so you will fail during decryption, but it will take a lot of time to check and may not be easy to automate.
Regarding the auth, they may provide you with a challenge that is encrypted with your public key, and if you have decrypted it correctly, authenticate you, but I don’t know how it’s done or should be done.
If you have any way to check the key validity offline (for example, you subpoena the encrypted data) then it’s trivial to check and automate.
Of course not everybody is capable of this, but it’s becoming less and less difficult to brute force it, and renting a few hours of GPU time to do it is within the means of small bad actors.
Renting a few hours of GPU may not cut it, depending on how long the key is, but you’re right, getting some data offline would help in breaking the encryption
It may not cut it now, but we can’t guarantee it will stay the same within a few years (either faster compute, or other techniques that speed up the brute force)