Doppelratschenalgorithmus - Double Ratchet Algorithm

In der Kryptographie ist der Double Ratchet Algorithm (früher als Axolotl Ratchet bezeichnet ) ein Schlüsselverwaltungsalgorithmus , der 2013 von Trevor Perrin und Moxie Marlinspike entwickelt wurde. Er kann als Teil eines kryptografischen Protokolls verwendet werden , um Ende-zu-Ende bereitzustellen Verschlüsselung für Instant Messaging . Nach einem anfänglichen Schlüsselaustausch verwaltet es die laufende Erneuerung und Wartung von kurzlebigen Sitzungsschlüsseln. Es kombiniert ein kryptografisches sogenanntes „Ratchet“ basierend auf dem Diffie-Hellman Key Exchange (DH) und ein Ratchet basierend auf einer Key Derivation Function (KDF), wie einer Hash-Funktion , und wird daher als Double Ratchet bezeichnet.

Der Algorithmus gilt als selbstheilend, da er einen Angreifer unter bestimmten Bedingungen daran hindert, auf den Klartext zukünftiger Nachrichten zuzugreifen, nachdem er einen der Schlüssel des Benutzers kompromittiert hat. Neue Sitzungsschlüssel werden nach einigen Kommunikationsrunden ausgetauscht. Dies zwingt den Angreifer effektiv dazu, die gesamte Kommunikation zwischen den ehrlichen Parteien abzufangen , da sie den Zugang verlieren, sobald ein Schlüsselaustausch stattfindet, der nicht abgefangen wird. Diese Eigenschaft wurde später Future Secrecy oder Post-Compromise Security genannt .

Etymologie

Ein Gif einer Ratschenbewegung, die zeigt, dass sich der Mechanismus nur in eine Richtung bewegen kann
Eine mechanische Ratsche

Axolotl “ bezog sich auf die selbstheilenden Eigenschaften des Salamanders. Der Begriff "Ratsche" wird in der Kryptographie in Analogie zu einer mechanischen Ratsche verwendet . Im mechanischen Sinne erlaubt eine Ratsche nur den Vorschub in eine Richtung; eine kryptografische Ratsche erlaubt nur die Generierung von Schlüsseln aus dem vorherigen Schlüssel. Im Gegensatz zu einer mechanischen Ratsche ist jedoch jeder Zustand einzigartig.

Herkunft

Der Double Ratchet Algorithmus wurde 2013 von Trevor Perrin und Moxie Marlinspike ( Open Whisper Systems ) entwickelt und im Februar 2014 als Teil des Signal Protocol eingeführt . Das Design des Double Ratchet Algorithm basiert auf der DH Ratchet, die von Off-the- Record Messaging (OTR) und kombiniert es mit einer symmetrischen Schlüsselratsche, die dem Silent Circle Instant Messaging Protocol (SCIMP) nachempfunden ist . Die Ratsche wurde ursprünglich nach dem vom Aussterben bedrohten Wassersalamander Axolotl benannt , der über außergewöhnliche Selbstheilungskräfte verfügt. Im März 2016 haben die Entwickler das Axolotl Ratchet in Double Ratchet Algorithm umbenannt, um besser zwischen der Ratchet und dem vollständigen Protokoll zu unterscheiden, da einige den Namen Axolotl verwendet hatten, um sich auf das Signal Protocol zu beziehen.

Eigenschaften

Der Double Ratchet Algorithm bietet Eigenschaften, die bei Ende-zu-Ende-Verschlüsselungssystemen seit langem üblich sind: Verschlüsselung von Inhalten auf dem gesamten Transportweg sowie Authentifizierung der Gegenstelle und Schutz vor Manipulation von Nachrichten. Als Hybrid aus DH- und KDF- Ratschen vereint sie mehrere gewünschte Eigenschaften beider Prinzipien. Aus dem OTR- Messaging übernimmt es die Eigenschaften Forward Secrecy und automatische Wiederherstellung der Geheimhaltung im Falle der Kompromittierung eines Sitzungsschlüssels, Forward Secrecy mit Kompromittierung des geheimen persistenten Hauptschlüssels und plausible Abstreitbarkeit für die Urheberschaft von Nachrichten. Darüber hinaus ermöglicht es die Erneuerung des Sitzungsschlüssels ohne Interaktion mit dem Remote-Peer mithilfe von sekundären KDF-Ratchets. Ein zusätzlicher Schlüsselableitungsschritt wird durchgeführt, um das Beibehalten von Sitzungsschlüsseln für Nachrichten außerhalb der Reihenfolge zu ermöglichen, ohne die folgenden Schlüssel zu gefährden.

Es soll das Neuordnen, Löschen und Wiedergeben von gesendeten Nachrichten erkennen und die Weiterleitungsgeheimhaltungseigenschaften im Vergleich zu OTR-Nachrichten verbessern.

In Kombination mit einer Public-Key-Infrastruktur zur Aufbewahrung vorgenerierter Einmalschlüssel (Prekeys) ermöglicht es die Initialisierung von Messaging-Sitzungen ohne Anwesenheit der Gegenstelle ( asynchrone Kommunikation ). Die Verwendung des dreifachen Diffie-Hellman-Schlüsselaustauschs (3-DH) als anfängliches Schlüsselaustauschverfahren verbessert die Verweigerungseigenschaften. Ein Beispiel hierfür ist das Signal Protocol, das den Double Ratchet Algorithm, Prekeys und einen 3-DH-Handshake kombiniert. Das Protokoll bietet Vertraulichkeit, Integrität, Authentifizierung, Teilnehmerkonsistenz, Zielvalidierung, Vorwärtsgeheimnis, Rückwärtsgeheimnis (auch bekannt als zukünftige Geheimhaltung), Kausalitätsbewahrung, Unverknüpfbarkeit von Nachrichten, Nachrichtenablehnung, Teilnahmeablehnung und Asynchronität. Es bietet keinen Schutz der Anonymität und erfordert Server für die Weiterleitung von Nachrichten und das Speichern von öffentlichem Schlüsselmaterial.

Funktion

Image
Image
Schema des Arbeitsprinzips

Ein Client erneuert das Sitzungsschlüsselmaterial in Interaktion mit dem entfernten Peer, wann immer dies möglich ist, unter Verwendung von Diffie-Hellman-Ratchet, andernfalls unabhängig von einem Hash-Ratchet. Daher schaltet ein Client, der die Doppelratsche verwendet, mit jeder Nachricht eine von zwei Hash-Ratschen (eine zum Senden, eine zum Empfangen) weiter, die mit einem gemeinsamen Geheimnis von einer DH-Ratsche gesät werden. Gleichzeitig versucht er jede Gelegenheit zu nutzen, der Gegenstelle einen neuen öffentlichen DH-Wert zur Verfügung zu stellen und die DH-Ratchet immer dann vorzurücken, wenn ein neuer DH-Wert von der Gegenstelle eintrifft. Sobald ein neues gemeinsames Geheimnis etabliert ist, wird eine neue Hash-Ratchet initialisiert.

Als kryptografische Primitive verwendet der Double Ratchet-Algorithmus

für die DH-Ratsche
Elliptische Kurve Diffie-Hellman (ECDH) mit Curve25519 ,
für Nachrichtenauthentifizierungscodes (MAC, Authentifizierung)
Keyed-Hash Message Authentication Code (HMAC) basierend auf SHA-256 ,
für symmetrische Verschlüsselung
dem Advanced Encryption Standard (AES), teilweise im Cipher Block Chaining Modus (CBC) mit Padding nach PKCS  #5 und teilweise im Counter Modus (CTR) ohne Padding,
für die hash ratsche
HMAC.

Anwendungen

Im Folgenden finden Sie eine Liste von Anwendungen, die den Double Ratchet-Algorithmus oder eine benutzerdefinierte Implementierung davon verwenden:

Anmerkungen

Verweise

Literatur

  • Cohn-Gordon, Katriel; Cremers, Cas; Dowling, Benjamin; Garratt, Lukas; Stebila, Douglas (25. Oktober 2016). "Eine formale Sicherheitsanalyse des Signal-Messaging-Protokolls" (PDF) . Kryptologie ePrint-Archiv . International Association for Cryptologic Research (IACR).
  • Frosch, Tilman; Mainka, Christian; Bader, Christoph; Bergsma, Florian; Schwenk, Jörg; Holz, Thorsten (2014). "Wie sicher ist TextSecure?" (PDF) . Kryptologie ePrint-Archiv . Internationale Vereinigung für kryptologische Forschung (IACR) . Abgerufen am 16. Januar 2016 .
  • Unger, Nik; Dechand, Sergej; Bonneau, Joseph; Fahl, Sascha; Perl, Henning; Goldberg, Ian Avrum; Smith, Matthäus (2015). SoK: Secure Messaging (PDF) . Proceedings of the IEEE Symposium on Security and Privacy 2015. Technischer Ausschuss für Sicherheit und Datenschutz der IEEE Computer Society. S. 232–249. doi : 10.1109/SP.2015.22 .

Externe Links