Signal-Protokoll
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 denselben 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
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 basiert auf der von Off-the-Record Messaging eingeführten Erneuerung von Sitzungsschlüsseln durch wiederholten Diffie-Hellman-Schlüsselaustausch (DH-Ratchet) kombiniert mit einer Schlüsselableitung mittels einer kryptologischen Hashfunktion (Hash-Ratchet) nach Vorbild des Silent Circle Instant Messaging Protocol (SCIMP).
Eigenschaften
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 einer 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
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
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 Messengers enthalten.[8]
Mit dem Aufgehen der Chatanwendung Silent Text in der Telefonanwendung 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, iOS, Windows Phone, Nokia S40, Nokia S60, Blackberry und BB10) den gesamten Nachrichtenverkehr mit dem Signal-Protokoll.[13][14] Beim Facebook Messenger wird das Protokoll bei den optionalen „secret conversations“ verwendet, genauso wie bei Google Allo im „incognito mode“.
Sicherheitsexperten sehen aber auch hier Schwachstellen, wenn wie in genannten kommerziellen Produkten eigene Server verwendet werden. Insbesondere auch Nachrichten in Gruppenchats können trotz funktionierender Ende-zu-Ende-Verschlüsselung ausgelesen werden. Anwender müssten daher immer dem Dienstanbieter vertrauen. WhatsApp übernimmt zwar die zugrundeliegende Ende-zu-Ende-Verschlüsselung von Signal, setzt aber die darauf aufbauende Gruppenchat-Infrastruktur anders um. Ein Angreifer brauche dafür lediglich Kontrolle über den Kontrollserver des Messengers. Außerdem könne auch der WhatsApp-Besitzer Facebook per US-Gesetz zu einer Offenlegung verpflichtet werden, womit Ermittlungsbehörden einen verdeckten Zutritt zu den entsprechenden Servern erhalten.[15]
Literatur
- 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
- Spezifikation
- Moxie Marlinspike: Advanced cryptographic ratcheting. 26. November 2013 (englisch, abstrakte Darstellung).
Einzelnachweise
- ↑ Moxie Marlinspike: Advanced cryptographic ratcheting. In: whispersystems.org, jetzt signal.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.’“
- ↑ Moxie Marlinspike: Signal on the outside, Signal on the inside. In: www.whispersystems.org, jetzt signal.org. Abgerufen am 1. April 2016.
- ↑ 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]).
- ↑ Andy Greenberg: Ten Million More Android Users' Text Messages Will Soon Be Encrypted By Default, Forbes. 9. Dezember 2013. Abgerufen am 28. Februar 2014.
- ↑ 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.
- ↑ Moxie Marlinspike: TextSecure, Now With 10 Million More Users, Open Whisper Systems, jetzt signal.org. 9. Dezember 2013. Abgerufen am 28. Februar 2014.
- ↑ Beitrag von Adam Langley vom 9. November 2013 in Pond: „Wire in new ratchet system“
- ↑ Christian Schartel: WhatsApp für Android: nach Update mit Verschlüsselung. In: CNET.de. 19. November 2014, abgerufen am 17. Januar 2016.
- ↑ What is Silent Phone? In: support.silentcircle.com. Silent Circle, 17. September 2015, archiviert vom Original am 9. April 2016; abgerufen am 17. Januar 2016 (englisch).
- ↑ Andreas Straub: OMEMO Encryption. In: Website der XMPP Standards Foundation. 25. Oktober 2015, archiviert vom Original am 29. Januar 2016; abgerufen am 4. Januar 2016 (englisch).
- ↑ Daniel Gultsch: OMEMO Encrypted Jingle File Transfer. In: Website der XMPP Standards Foundation. 2. September 2015, abgerufen am 4. Januar 2016 (englisch).
- ↑ Tara Seals: G DATA Adds Encryption for Secure Mobile Chat. In: Infosecurity Magazine. Reed Exhibitions Ltd.. 17. September 2015. Abgerufen am 18. September 2015.
- ↑ heise Security: WhatsApp: Verschlüsselung für alle freigeschaltet. In: Security. Abgerufen am 12. April 2016.
- ↑ WhatsApp: WhatsApp-Security-Whitepaper. 4. April 2016, abgerufen am 1. September 2022 (englisch).
- ↑ WhatsApp und Signal: Forscher beschreiben Schwächen verschlüsselter Gruppenchats, heise online vom 16. Januar 2018, abgerufen am 20. April 2018