← Back to context

Comment by barbazoo

17 hours ago

That added some context I didn’t have yet thanks. I’m not seeing yet how Meta if it was a bad actor wouldn’t be able to brute force the pin of a particular user. Of this was a black box user terminal site, Meta owns the stack here though, seems plausible that you could inject yourself easily somewhere.

If you choose an alphanumeric pin they can't brute force because of the sheer entropy (and because the key is derived from the alphanumeric PIN itself.)

However, most users can't be bothered to choose such a PIN. In this case they choose a 4 or 6 digit pin.

To mitigate the risk of brute force, the PIN is rate limited by an HSM. The HSM, if it works correctly, should delete the encryption key if too many attempts are used.

Now sure, Meta could insert itself between the client and HSM and MITM to extract the PIN.

But this isn't a Meta specific gap, it's the problem with any E2EE system that doesn't require users to memorize a master password.

I helped design E2EE systems for a big tech company and the unsatisfying answer is that there is no such thing as "user friendly" E2EE. The company can always modify the client, or insert themselves in the key discovery process, etc. There are solutions to this (decentralized app stores and open source protocols, public key servers) but none usable by the average person.