416 karma · joined March 10, 2011
MIT PhD 2008 from the PDOS group
[ my public key: https://keybase.io/max; my proof: https://keybase.io/max/sigs/qfuA9DvtaEpA5I3h42XnrOdlozCYGfn3nNsn492YAvU ]
Correct: forward secrecy isn't on by default. We think there's a trade-off here. With forward secrecy, your old messages won't be visible on a new device, but users want this since Slack (and others) make it seem natural. However, you can opt-in to forward security on a per-message or per-conversation basis.
The report says "device and server compromise." Decryption keys never leave the user's client. What they mean is if: (1) the server's stored data is compromised; (2) your phone is also compromised; and (3) the messages weren't marked ephemeral; then the attacker might be able to read past messages, even if the user tried to delete them (i.e., did Keybase really delete the ciphertexts?). This line of reasoning is correct and one of the primary motivations for key ratchets. I don't think the report is claiming that users need to trust Keybase's server in general. They do need to trust Keybase to delete messages that are marked deleted, which would mitigate the attack above if conditions 1 through 3 are met.
https://security.stackexchange.com/questions/27776/block-cha...
Edit (and meta-edit): I changed the wording in the FAQ accordingly.
[1] https://www.usenix.org/legacy/events/usenix07/tech/full_pape...
In turn, all team crypto operations happen for PUKs (and not device keys) so it's necessary to have a PUK before you can use teams. These details are mainly hidden from users, except for bugs (as above, but we'll fix it soon). This is a change from previous designs, but the advantage is that when a user adds a new device, she'll get instant access to all teams, when the PUK's secret key is encrypted for the new device. Whenever a user deletes a device, there's a rekey cascade --- the user's PUK is rotated, and so are all teams the user is a member of.
More info here: https://keybase.io/docs/teams/puk
By contrast, when we sold TheSpark.com to iTurf.com in 2000, we spent several man-months of company time making the parody AyeTurf.com, which pissed a lot of people off.
[1] https://en.wikipedia.org/wiki/Blinding_(cryptography)
Edit: And BTW, yet one more argument for NaCl or libsodium, which boasts "no data-dependent branches."
BTW, our library doesn't support the ECC extensions yet, so any encryptions/signatures generated with ECC keys will fail to decrypt/verify on keybase (and also on GPG v1.4).