it-swarm.com.de

Wie funktioniert das neue Gruppenchat-Protokoll von WhatsApp und welche Sicherheitseigenschaften hat es?

Inzwischen hat jeder bemerkt, dass WhatsApp hat kürzlich die vollständige End-to-End-Verschlüsselung eingeführt , für die direkte Kommunikation, für Medienanhänge und für Gruppenchats.

Ich habe ihr Whitepaper (PDF) gelesen und einen Unterschied zu Signal's Gruppenchats festgestellt, bei dem Signal die Gruppennachricht an alle Mitglieder selbst sendet (mit einem speziellen Flag in) der verschlüsselte Header) und WhatsApp sendet die Nachricht an den Server, der sie verteilt.

Jetzt bin ich verwirrt, wie das Gruppen-Chat-Protokoll von WhatsApp funktioniert, da es nicht das einfache Person-zu-Person-Protokoll verwenden kann (wie es Signal tut), sondern eine etwas komplizierte "Ratschen" -basierte Schlüsselableitung verwendet (glaube ich) und was günstig ist Sicherheitseigenschaften werden von WhatsApp geopfert.

Welche Sicherheitseigenschaften bietet das Gruppenchat-Protokoll und wie funktioniert es (auf hoher Ebene)?


Da "Sicherheitseigenschaften" etwas allgemein gehalten sind, finden Sie hier eine Liste der Sicherheitseigenschaften, nach denen ich frage:

  • Passive Sicherheit (ein Lauscher kann die Verschlüsselung nicht aufheben)
  • Aktive Sicherheit (ein Mann in der Mitte kann die Verschlüsselung nach dem ersten Setup nicht unbemerkt aufheben)
  • Geheimhaltung weiterleiten (Ein Kompromiss der heutigen geheimen Verschlüsselungsschlüssel beeinträchtigt nicht die Sicherheit früherer, von Angreifern aufgezeichneter Nachrichten.)
  • Plausible Deniability (es gibt keinen eindeutigen Beweis dafür, dass eine bestimmte Nachricht von me gesendet wurde, sobald X verstrichen ist)
  • Transkriptkonsistenz (es gibt einen "harten" Beweis dafür, dass jeder in der Gruppe die gleichen Nachrichten gesehen hat)
18
SEJPM

Erstens aus ihrem Papier

Nachrichten an WhatsApp-Gruppen bauen auf den oben beschriebenen paarweise verschlüsselten Sitzungen auf, um für die meisten an Gruppen gesendeten Nachrichten ein effizientes serverseitiges Fan-Out zu erzielen. Dies wird mithilfe der Komponente „Sender Keys“ des Signal Messaging Protocol erreicht.

Das erste Mal, wenn ein WhatsApp-Gruppenmitglied eine Nachricht an eine Gruppe sendet:

  1. Der Absender generiert einen zufälligen 32-Byte-Kettenschlüssel.
  2. Der Absender generiert ein zufälliges Curve25519-Signaturschlüssel-Schlüsselpaar.
  3. Der Absender kombiniert den 32-Byte-Kettenschlüssel und den öffentlichen Schlüssel aus dem Signaturschlüssel zu einer Absenderschlüssel-Nachricht.
  4. Der Absender verschlüsselt den Absenderschlüssel einzeln für jedes Mitglied der Gruppe unter Verwendung des zuvor erläuterten paarweisen Nachrichtenprotokolls. Für alle nachfolgenden Nachrichten an die Gruppe:
  5. Der Absender leitet einen Nachrichtenschlüssel vom Kettenschlüssel ab und aktualisiert den Kettenschlüssel.
  6. Der Absender verschlüsselt die Nachricht mit AES256 im CBC-Modus.
  7. Der Absender signiert den Chiffretext mit dem Signaturschlüssel.
  8. Der Absender überträgt die einzelne Chiffretextnachricht an den Server, wodurch alle Gruppenteilnehmer ein serverseitiges Fan-Out durchführen. Die "Hash-Ratsche" des Kettenschlüssels des Nachrichtensenders bietet Vorwärtsgeheimnis. Wenn ein Gruppenmitglied abreist, löschen alle Gruppenteilnehmer ihren Absenderschlüssel und beginnen von vorne.

Ich würde sagen, der entscheidende Punkt hier ist Nummer 4: Der Absender einzeln verschlüsselt den Absenderschlüssel für jedes Mitglied der Gruppe unter Verwendung des zuvor erläuterten paarweisen Nachrichtenprotokolls

Es ist eine clevere Anpassung, die auf dem Eins-zu-Eins-Protokoll aufbaut: Verwenden Sie es, um einen gemeinsamen Schlüssel an jedes einzelne Mitglied der Gruppe zu verteilen, damit die Gruppe den Server verwenden kann, um ein effizientes "Fan-Out" bereitzustellen. (sowie Blob-Speicher), ohne dass der Server mit den erforderlichen privaten Schlüsseln vertraut ist.

"Welche Sicherheitseigenschaften bietet das Gruppenchat-Protokoll und wie funktioniert es (auf hoher Ebene)?"

In Bezug auf die Funktionsweise denke ich, dass das Papier so detailliert ist, wie es derzeit verfügbar ist, bis jemand anderes eine vollständige (angewandte) Analyse durchführt.

In Bezug auf die Funktionen bietet es ...

  • Vorwärtsgeheimnis: Der beschriebene Ratschenmechanismus bietet dies (oder so behaupten sie)

  • Passiv: Die Verteilungsmethode "Absenderschlüssel" in Punkt 4 macht passive Angriffe nahezu unmöglich: Beachten Sie, dass eine passive Partei für jede der Parteien in der Verschlüsselungsschicht der Rauschpipes (zu den WhatsApp-Servern) durchkommen müsste Gruppe und würde wahrscheinlich mehrere Präsenzpunkte erfordern, was den Zugriff auf den Datenverkehr für jede Partei in der Gruppe erleichtert. Sie können also praktisch jeden dort ausschließen, es sei denn, er ist ein wichtiger Backbone-Anbieter oder eine NSA.

  • Aktiver Angriff: Ich würde sagen, ein Seitenkanalangriff auf einem der Geräte in der Gruppe wäre möglich, aber wenn Sie über diesen Grad an invasivem Zugriff auf das Gerät verfügen (und daher höchstwahrscheinlich dessen Besitzer! ), eine Zange und 5 Minuten mit dem Gerätebesitzer ist wahrscheinlich weitaus fruchtbarer.

  • Transkriptkonsistenz: Alle Nachrichten verwenden HMAC, um die Integrität sicherzustellen (Schritt 7).

  • Plausible Verleugnung: Wenn überhaupt, macht es die zusätzliche Sicherheit, die die neue Implementierung bietet, sehr schwierig zu leugnen, dass ein bestimmter Benutzer eine Nachricht gesendet hat.

9
Nathan

Nach dem, was ich im Whitepaper sammeln kann, werden Gruppennachrichten innerhalb der Gruppe verschlüsselt. Das gleiche Sender Key Wird von jedem Teilnehmer verteilt und verwendet, wodurch die Nachricht durch die Konstruktion nicht authentifiziert wird.

Wie synchronisiert sich die Ratsche zwischen Absendern, keine Ahnung.

Eigenschaften:

  • Passive Sicherheit: Ja (ein Lauscher kann die Verschlüsselung nicht aufheben)
  • Aktive Sicherheit (ein Mann in der Mitte kann die Verschlüsselung nach dem ersten Setup nicht unbemerkt aufheben): Ja, auch wenn er versucht, sich als Server auszugeben, da der Server keinen Schlüssel erhält.
  • Vorwärtsgeheimnis: ja mittels der Ratschenfunktion.
  • Plausible Verleugnung: Ja, jeder signiert und verschlüsselt mit demselben symmetrischen Schlüssel (soweit ich das beurteilen kann).
  • Transkriptkonsistenz: Ja, da sie über die Chain Key - Änderungen informiert werden müssen.

Das Whitepaper ist weit entfernt von einer technischen Beschreibung des Protokolls. Also würde ich das mit äußerster Vorsicht nehmen.

1
M'vy