Ich hatte ja mal geschrieben, dass OTR den Nachteil hat, dass man darüber nicht asynchron kommunizieren kann. Die Verschlüsselung funktioniere nur, wenn beide User online sind. Und ich schreib, dass mir dafür bisher keine Lösung bekannt ist.
Einige Tage nach dem Blogpost habe ich in der c’t 8/2014 gelesen, dass es dafür durchaus schon eine Lösung gibt. Der Online-Artikel dazu ist leider hinter der Paywall. TextSecure verwendet jedenfalls auch OTR und erlaubt trotzdem asynchrone Kommunikation. Dazu erzeugt die App beim ersten Start viele öffentliche Diffie-Hellman-Tokens, signiert sie mit dem geheimen Schlüssel des Anwenders und lädt sie auf den TextSecure-Server.
Um jetzt jemandem zu schreiben, wird vom Server ein DH-Token des Empfängers geladen, ein eigenes DH-Token erzeugt und das alles mit der AES-verschlüsselten Botschaft verschickt. Der Empfänger hat dann alles, um die Botschaft wieder zu entschlüsseln. Und der Sender kann die Nachricht immer verschlüsselt abschicken, unabhängig davon, ob der Empfänger grade online ist oder nicht.
Sowas müsste man doch auch in XMPP-Server implementieren können. Und dann fehlt nur noch eine Lösung für verschlüsselte Gruppenchats.
Kommentare
Eine Antwort zu „Wie man auch trotz OTR asynchron kommunizieren kann“
Ich glaube da wäre es deutlich sinnvoller direkt das TextSecure V2 Protokoll (über den der Artikel ist) zu implementieren. Dieses hat außerdem andere große Vorteile gegenüber OTR (auf dem es basiert), zum Beispiel verbesserte Abstreitbarkeit:
https://whispersystems.org/blog/asynchronous-security/
https://whispersystems.org/blog/simplifying-otr-deniability/
https://whispersystems.org/blog/advanced-ratcheting/
Da das ganze Protokoll (und die App) open source sind, und darauf hofft, dass jemand eine Library bastelt, die auch von Pidgin und Konsorten genutzt werden kann, wäre das doch vertane Liebesmüh,stattdessen Teile davon in XMPP rein zu fummeln?
Ein Desktop-Client ist wohl schon in Arbeit, der basiert aber (damit es schneller plattformübergreifend ist) auf einem Chrome-Plugin:
https://github.com/TheBlueMatt/textsecure-chrome/
Nen ausführlichen Test + Beschreibung der App gibt es hier:
http://www.kuketz-blog.de/textsecure-crypto-held-oder-weiterer-blindgaenger-teil1/