Signal-Protokoll

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von Axolotl-Protokoll)
Wechseln zu: Navigation, Suche

Das Signal-Protokoll (ehemals Axolotl-Protokoll) ist ein kryptographisches Kommunikationsprotokoll für Ende-zu-Ende-verschlüsselten Nachrichtenaustausch wie zum Beispiel bei Instant Messaging. Im Gegensatz zum verwandten OTR-Protokoll müssen beim Signal-Protokoll nicht beide Kommunikationspartner gleichzeitig online sein. Dies ist besonders bei Instant Messaging auf Smartphones wichtig.

Das Signal-Protokoll hat nicht nur die Verschlüsselung der Verbindung zum Ziel, sondern auch die Begrenzung des Schadens bei Kompromittierung eines der Teilnehmer. Würden zwei Benutzer zum Verschlüsseln von Nachrichten immer den gleichen Schlüssel verwenden, so könnte ein Angreifer, der in den Besitz des Schlüssels kommt, auch vorher gesendete Nachrichten entschlüsseln, falls er diese gespeichert hat. Um dies zu verhindern, werden zum Verschlüsseln kurzlebige Sitzungsschlüssel verwendet, die in einem besonderen, double ratchet genannten Verfahren häufig erneuert werden. Durch die Erneuerung der Schlüssel kann ein Angreifer, der einzelne Sitzungsschlüssel kennt, auch zukünftige Nachrichten nicht mehr entschlüsseln. Aufgrund dieser Eigenschaft bezeichnen die Entwickler das Protokoll als selbstheilend.[1] Der ehemalige Name spielte auf den vom Aussterben bedrohten, aquatisch lebenden Schwanzlurch Axolotl an, der außergewöhnliche Selbstheilungsfähigkeiten besitzt.

Am 30. März 2016 gab Moxie Marlinspike bekannt, dass das damalige Axolotl-Protokoll zur Vermeidung von Missverständnissen in Signal-Protokoll umbenannt wurde. Er folgt damit der vorhergehenden Vereinheitlichung der Namen der heutigen Kommunikations-App Signal.[2]

Herkunft[Bearbeiten | Quelltext bearbeiten]

Das Protokoll wurde von Trevor Perrin mit Unterstützung von Moxie Marlinspike (Open Whisper Systems) entwickelt und 2013 in TextSecure (heute Signal) eingeführt. Der Entwurf erweitert die von Off-the-Record Messaging eingeführte Erneuerung von Sitzungsschlüsseln durch wiederholten Diffie-Hellman-Schlüsselaustausch um mit einer Schlüsselableitung mittels einer kryptologischen Hashfunktion nach Vorbild des Silent Circle Instant Messaging Protocol (SCIMP).

Eigenschaften[Bearbeiten | Quelltext bearbeiten]

Das Signal-Protokoll gewährleistet die bei Ende-zu-Ende-Verschlüsselungssystemen seit langem üblichen Merkmale Verschlüsselung der Inhalte auf dem gesamten Transportweg sowie die Authentisierung der Gegenstelle und Absicherung gegen Manipulation der Nachrichten.

Es übernimmt die von OTR Messaging bereitgestellten Merkmale der rückwirkenden Folgenlosigkeit bei Offenbarung des geheimen Hauptschlüssels, Absicherung folgender Nachrichten nach der Offenbarung eines Sitzungsschlüssels und die glaubhafte Abstreitbarkeit der Urheberschaft an einer Nachricht. Zusätzlich erlaubt es durch Verwendung eine Schlüsselableitungsfunktion, auch ohne Interaktion mit der Gegenstelle das Sitzungsschlüsselmaterial zu erneuern. Ein weiterer Schlüsselableitungsschritt ermöglicht die folgenlose Vorhaltung von Schlüsseln für außer der Reihe eintreffende Nachrichten.

Es soll Umsortierung, Auslassung und Wiedereinspielung gesendeter Nachrichten entdecken und gegenüber OTR Messaging die Folgenlosigkeitseigenschaften verbessern.

In Kombination mit vorab erzeugten und von einer Public-Key-Infrastruktur (PKI) vorgehaltenen Einmal-Vorschlüsseln kann die Initiierung einer Gesprächssitzung in Abwesenheit der Gegenstelle (asynchrone Kommunikation) unterstützt werden. Die Nutzung mit Dreifach-Diffie-Hellman-Schlüsselaustausch (3DH) als initialem Schlüsselaustauschverfahren (zum Beispiel bei Signal) verbessert die Abstreitbarkeitseigenschaften.

Funktion[Bearbeiten | Quelltext bearbeiten]

Axolotl ratchet scheme, legend.svg
Axolotl ratchet scheme.svg
Diagramm des Funktionsprinzips

Die zentrale Idee des Protokolls nannten die Entwickler double ratchet (von engl. ratchet: Sperrklinke). Wenn ein Teilnehmer nach einer empfangenen Nachricht zum ersten Mal wieder sendet, erneuert er das Sitzungsschlüsselmaterial durch einen Diffie-Hellman-Schlüsselaustausch, bei dem er einen eigenen neuen Schlüssel mit dem bereits bekannten Schlüssel der Gegenstelle kombiniert (Diffie-Hellman-Ratchet). Aus dem Sitzungsschlüsselmaterial werden mittels einer Schlüsselableitungsfunktion symmetrische Schlüssel abgeleitet. Da die Schlüsselableitungsfunktion auf einer Hashfunktion basiert, wird dieser Schritt Hash-Ratchet genannt. Diese Konstruktion erlaubt es, neue Schlüssel zu erzeugen, auch wenn die Gegenstelle nicht online ist.

Das Protokoll schiebt dazu bei jeder Nachricht eine von zwei Hash-Ratchets (eine zum Senden, eine für den Empfang) weiter, die auf Basis eines gemeinsamen Geheimnisses aus einer DH-Ratchet initialisiert wurden. Gleichzeitig versucht es, der Gegenstelle bei jeder Gelegenheit einen neuen öffentlichen DH-Wert zur Verfügung zu stellen und jedes Mal die eigene lokale DH-Ratchet weiterzuschieben, sobald ein neuer öffentlicher DH-Wert von der Gegenstelle eintrifft. Sobald ein neues gemeinsames Geheimnis zur Verfügung steht, wird daraus eine neue Hash-Ratchet initialisiert.

Das Signal-Protokoll nutzt als kryptographische Primitive

für die DH-Ratchet
Elliptic Curve Diffie–Hellman (ECDH) mit Curve25519,
für Nachrichtenauthentifizierungscodes (MAC, Authentisierung)
Keyed-Hash Message Authentication Code (HMAC) auf der Basis von SHA-256,
für symmetrische Verschlüsselung
den Advanced Encryption Standard (AES), teils im Cipher Block Chaining Mode (CBC) mit Füllbits nach PKCS #5 und teils im Counter Mode (CTR) ohne Füllbits,
für die Hash-Ratchet
HMAC.[3]

Nutzung[Bearbeiten | Quelltext bearbeiten]

In der Kommunikationssoftware Signal wird es auf hunderttausenden Endgeräten genutzt. Ende 2013 wurde die Integration in die Textnachrichtenfunktion des unabhängigen Android-Betriebssystems CyanogenMod ab Version 11 bekanntgegeben, welches zu dieser Zeit 10 Millionen Nutzer zählte.[4][5][6] Im November 2013 wurde es in das experimentelle asynchrone Nachrichtensystem Pond integriert.[7] Im September 2014 sorgte die Integration in WhatsApp für Schlagzeilen. Durch eine Kooperation mit Open Whisper Systems ist das Protokoll ab Version 2.11.448 in der Android-Ausgabe des hundertmillionenfach genutzten Messengers enthalten.[8] Mit dem Aufgehen von der Chatanwendung Silent Text in der Telephonanwendung Silent Phone mit der Veröffentlichung vom 28. September 2015 ersetzte Silent Circle das eigene Protokoll SCIMP durch das Signal-Protokoll.[9] 2015 wurde im Rahmen eines Google-Summer-of-Code-Projektes eine Erweiterung zum Extensible Messaging and Presence Protocol (XMPP, „Jabber“) namens „OMEMO Multi-End Message and Object Encryption“ (OMEMO) entwickelt, welche die Signal-Ratchet integriert. Sie wurde im Android-Messenger Conversations eingeführt und im Herbst der XMPP Standards Foundation (XSF) zur Standardisierung vorgelegt.[10][11] Daneben ist die Verwendung von dem Signal-Protokoll in G Data Secure Chat bekannt.[12] Seit Anfang April 2016 verschlüsselt WhatsApp systemübergreifend (Android, iPhone, Windows Phone, Nokia S40, Nokia S60, Blackberry und BB10) den gesamten Nachrichtenverkehr mit dem Signal-Protokoll.[13][14]

Literatur[Bearbeiten | Quelltext bearbeiten]

  • Nik Unger, Sergej Dechand, Joseph Bonneau, Sascha Fahl, Henning Perl, Ian Avrum Goldberg, Matthew Smith: SoK: Secure Messaging. In: IEEE Computer Society's Technical Committee on Security and Privacy (Hrsg.): Proceedings of the 2015 IEEE Symposium on Security and Privacy. 2015, S. 232–249 (ieee-security.org [PDF]).

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. Moxie Marlinspike: Advanced cryptographic ratcheting. In: whispersystems.org. Open Whisper Systems, 26. November 2013, abgerufen am 11. Januar 2016 (englisch): „The OTR style ratchet has the nice property of being ‘self healing.’“
  2. Open Whisper Systems >> Blog >> Signal on the outside, Signal on the inside. In: www.whispersystems.org. Abgerufen am 1. April 2016.
  3. Tilman Frosch, Christian Mainka, Christoph Bader, Florian Bergsma, Jörg Schwenk, Thorsten Holz (Ruhr-Universität Bochum): How Secure is TextSecure? In: Cryptology ePrint Archive. Report 2014, Nr. 904, 2014 (iacr.org [PDF]).
  4. Andy Greenberg: Ten Million More Android Users' Text Messages Will Soon Be Encrypted By Default, Forbes. 9. Dezember 2013. Abgerufen am 28. Februar 2014. 
  5. Seth Schoen: 2013 in Review: Encrypting the Web Takes A Huge Leap Forward, Electronic Frontier Foundation. 28. Dezember 2013. Abgerufen am 1. März 2014. 
  6. Moxie Marlinspike: TextSecure, Now With 10 Million More Users, Open Whisper Systems. 9. Dezember 2013. Abgerufen am 28. Februar 2014. 
  7. Beitrag von Adam Langley vom 9. November 2013 in Pond: „Wire in new ratchet system“
  8. Christian Schartel: WhatsApp für Android: nach Update mit Verschlüsselung. In: CNET.de. 19. November 2014, abgerufen am 17. Januar 2016.
  9. What is Silent Phone? In: support.silentcircle.com. Silent Circle, 17. September 2015, abgerufen am 17. Januar 2016 (englisch).
  10. Andreas Straub: OMEMO Encryption. In: Website der XMPP Standards Foundation. 25. Oktober 2015, abgerufen am 4. Januar 2016 (englisch).
  11. Daniel Gultsch: OMEMO Encrypted Jingle File Transfer. In: Website der XMPP Standards Foundation. 2. September 2015, abgerufen am 4. Januar 2016 (englisch).
  12. Tara Seals: G DATA Adds Encryption for Secure Mobile Chat. In: Infosecurity Magazine. Reed Exhibitions Ltd.. 17. September 2015. Abgerufen am 18. September 2015.
  13. heise Security: WhatsApp: Verschlüsselung für alle freigeschaltet. In: Security. Abgerufen am 12. April 2016 (de-de).
  14. WhatsApp: WhatsApp-Security-Whitepaper. 4. April 2016, abgerufen am 12. April 2016 (englisch).