Hacker News new | past | comments | ask | show | jobs | submit login

My main question is how are these keys generated and exchanged? Normal diffie-hellman is susceptible to man-in-the-middle attacks. You can eliminate this by adding public key certificates to the mix, but how would Silent Circle manage these certificates? How easy would it be to forge an encrypted text from an account? Essentially, how does the app verify that the key it is given is legit? So many questions and so little detail.



For the voice app, it uses ZRTP. Basically, the initiator and responder perform an ephemeral DH key agreement. Both clients then independently generate a "short authentication string" (basically just two English words) from the shared secret they negotiated, and display those two words to the caller.

Both callers then read the two words to each-other, and if they're the same, they know there couldn't have been a MITM attack. In the case where there's a MITM attack, each caller would have different key material, resulting in a different SAS. The protocol uses hash commitment and other tricks to make this really work in practice.

They haven't published the protocol for their chat app's encryption yet, but it sounds similar to OTR. While OTR has some nice tricks for verifying authenticity by using zero-knowledge proofs, it doesn't sound as if they have support for that sort of thing, and parties would have to make a call and read a SAS to each-other over the phone.


So voice is an iteration on Phil's Zfone product he was pushing a few years back...


Yes, although they seem to have much better marketing this time around (a good thing).


They're also doing some iOS/mobile specific tricks with Apple Push to do the key exchange (at least in the text app)


Actually, I found that they use ZRTP from their website. Phil Zimmerman wrote it and he is one of the SC founders. Wikipedia gives a nice overview: http://en.wikipedia.org/wiki/ZRTP


PAKE solves the MITM issue of Diffie Hellman, so if they went the DH route, they probably used something along those lines.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: