4 ms·
So how does the initial key exchange work here?
by robmccoll 12y ago
So how does the initial key exchange work here?
- andyjohnson0 12y agoTextSecure uses the OTR protocol [1,2], which itself uses Diffie-Hellman key exchange [3] to allow the communicating devices to agree on a shared key without the key being transmitted over the channel [4]. OTR actually uses "ephemeral" Diffie-Hellman [5], where a new shared key is generated for each session. This provides forward security by guaranteeing that a key compromise in the future won't render past messages decryptable. [1] http://en.wikipedia.org/wiki/TextSecure http://en.wikipedia.org/wiki/TextSecure [2] http://en.wikipedia.org/wiki/Off-the-Record_Messaging http://en.wikipedia.org/wiki/Off-the-Record_Messaging [3] http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange http://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exch... [4] http://security.stackexchange.com/a/45971 http://security.stackexchange.com/a/45971 [5] https://whispersystems.org/blog/advanced-ratcheting/ https://whispersystems.org/blog/advanced-ratcheting/
- rakoo 12y agoTextSecure doesn't use OTR, it uses a construction based on the Axolotl ratchet as described here: https://github.com/trevp/axolotl/wiki https://github.com/trevp/axolotl/wiki It's much much better than OTR in that: - Asynchronicity is on by default (you don't need both parties to be up and running at the same time to start a convo) - You don't need to wait for your recipient to answer before you can write something (ie you can send multiple messages one after another, directly) - Because you can do both of the above, you can easily do multiparty, something OTR struggles with. For more details: https://whispersystems.org/blog/asynchronous-security/ https://whispersystems.org/blog/asynchronous-security/ https://whispersystems.org/blog/private-groups/ https://whispersystems.org/blog/private-groups/
- andyjohnson0 12y agoYou're right and I was wrong. The TextSecure protocol was originally based on OTR, but I hadn't appreciated the degree of divergence from it required by their introduction of asynchronous ephemeral key negotiation. So, thanks! I learned about some cool stuff.