Doesn't this construction make forward secrecy impossible? Normally you'd ratchet your key on every message, but if you're decrypting backwards, you can't do that. Also I suppose the fact that it's a group chat makes everything harder.
Doesn't this construction make forward secrecy impossible? Normally you'd ratchet your key on every message, but if you're decrypting backwards, you can't do that. Also I suppose the fact that it's a group chat makes everything harder.
So, no ratchets, just a bunch of "dumb" one-time-use symmetric keys with a lookup table for each chat participant. The value prop here is that, for some reason, you suspect that Eve is capable of cracking assumptions of difficulty or implementations of PKI at a level in which you want a symmetric-only crypto alternative. This puts Handshake squarely in "cyber-punk vanity project".
Operationally, the biggest known risk with Handshake is device security. If Eve was able to get a hold of your device, she'd be able to decrypt all future messages related to that chat conversation (though she wouldn't be able to decrypt messages before interception, since keys used by both the sender and receiver are aggressively destroyed upon use).
Bingo. The demo only generates 10K keys per participant, but 100k keys in storage takes less than 200ms to generate and only uses 6MB of storage space. This will be user configurable per chat. It's important to note, each message burns two keys. The first key encrypts the message, the second key encrypts the reference to that message for the rendezvous point.
> This also probably means you don't support long-running (think multi-year) conversations or the ability to add/remove people to/from the group, is that right?
Correct. There are plenty of other tools that do a beautiful job of handling that. This is designed specifically to provide short-lived chats with specific guarantees. The handshake happens just once at chat creation and all participants must be present.