Deploying key transparency at WhatsApp

  • WhatsApp hat eine neue kryptografische Sicherheitsfunktion eingeführt, um eine gesicherte Verbindung basierend auf Schlüsseltransparenz automatisch zu überprüfen.
  • Die Funktion erfordert keine zusätzlichen Aktionen oder Schritte von Benutzern und trägt dazu bei, dass eine Konversation sicher ist.
  • Schlüsseltransparenzlösungen tragen dazu bei, die Garantie zu stärken, die die Ende-zu-Ende-Verschlüsselung privaten, persönlichen Messaging-Anwendungen auf transparente Weise für alle zur Verfügung stellt.
  • Wir haben eine Open-Source-Bibliothek namens veröffentlicht Auditierbares Schlüsselverzeichnis (AKD). Dies ermöglicht es jedem, Prüfnachweise für die Korrektheit des Verzeichnisses zu verifizieren. Dies untermauert unseren Einsatz für Schlüsseltransparenz.

Ende-zu-Ende-Verschlüsselung ist die Grundlage für privates Messaging auf WhatsApp und trägt dazu bei, dass nur du und die Person, mit der du kommunizierst, lesen können, was gesendet wird, und niemand dazwischen, nicht einmal WhatsApp. Es gehört zu den am weitesten verbreiteten Anwendungen der Ende-zu-Ende-Verschlüsselung und basiert auf der erstmals in den 1970er Jahren entwickelten Public-Key-Kryptographie. Aus technischer Sicht müssen die „Enden“ einer Konversation wissen, dass die Verschlüsselungsschlüssel des anderen authentisch und gültig sind, damit der End-to-End-Verschlüsselung vertraut werden kann.

Zu diesem Zweck konnten unsere sicherheitsbewusstesten Benutzer immer unsere Vorteile nutzen Sicherheitscode-Überprüfungsfunktion verfügbar unter den Kontaktinformationen eines Benutzers. Vor Ort können die Schlüssel mit einem schnellen QR-Code-Scan validiert werden oder, falls entfernt, durch Teilen des eindeutigen 60-stelligen Codes.

Dies ist eine der stärksten Methoden, um zu überprüfen, ob eine Verbindung sicher ist. Aber in Wirklichkeit wissen wir, dass die doppelte Überprüfung eines langen Codes umständlich ist, und unser Team sucht seit einiger Zeit nach Möglichkeiten, dies zu vereinfachen.

Wir freuen uns, eine neue kryptografische Sicherheitsfunktion einzuführen, um eine sichere Verbindung automatisch zu überprüfen, ohne dass dieser lange Code erforderlich ist. Dazu bauen wir auf Schlüsseltransparenz, indem wir eine neue entwickeln Auditierbares Schlüsselverzeichnis (AKD)die auf einem basiert Open-Source-Bibliothek. Der AKD wird es WhatsApp-Clients ermöglichen, automatisch zu validieren, dass der Verschlüsselungsschlüssel eines Benutzers echt ist, und es jedem ermöglichen, Audit-Beweise für die Korrektheit des Verzeichnisses zu überprüfen.

Unser Ansatz zur Schlüsseltransparenz ist zweigleisig und führt zwei neue Komponenten ein:

  1. Der Server (WhatsApp) verwaltet einen AKD nur zum Anhängen von öffentlichen Schlüsseln, die Benutzerkonten zugeordnet sind.
  2. Ein Audit-Datensatz eines Drittanbieters, bei dem jede Änderung im Serververzeichnis in einem öffentlich zugänglichen, die Privatsphäre wahrenden Audit-Datensatz aufgezeichnet wird, damit jeder ihn überprüfen kann.

Mit diesen beiden Ergänzungen können Benutzer ihre Gesprächssicherheit dank des WhatsApp-Verzeichnisses automatisch überprüfen. Wenn dies eingeführt wird, werden sicherheitsbewusste Benutzer, die die Sicherheitscodeseite überprüfen verwenden, feststellen, dass dieser Überprüfungsprozess schnell und automatisch erfolgt.

Dieses System ist ein neuer Dienst von WhatsApp, der sich auf öffentliche Audits stützt, um den End-to-End-Verschlüsselungsstatus persönlicher Gespräche zu überprüfen. Während dieses System unseren Benutzern einfache und bequeme Verifizierungstools bietet, werden diejenigen, die ihre Ende-zu-Ende-verschlüsselten Sitzungen verifizieren möchten, ohne WhatsApp-Server überhaupt zu verwenden, ermutigt, zusätzlich zu diesem neuen automatisierten Verfahren den traditionellen Sicherheitscode-Verifizierungsprozess zu verwenden.

Die öffentlichen Schlüssel sind nur ein Werkzeug, das Benutzer benötigen, um ihre Nachrichten zu verschlüsseln. Der private Schlüssel – der zum Entschlüsseln von Nachrichten verwendet wird – befindet sich auf Benutzergeräten. Niemand – nicht einmal WhatsApp – hat Zugriff auf diese privaten Schlüssel. Eine Liste mit öffentlichen Schlüsseln allein kann keinen Zugriff auf die Inhalte von irgendjemandem gewähren.

Wie die Seite „Sicherheitscode überprüfen“ funktioniert

Der springende Punkt bei Ende-zu-Ende-verschlüsseltem Messaging sind öffentliche/private Schlüsselpaare. Der private Schlüssel ist das, was Sie verwenden, um Ihre Nachrichten zu entschlüsseln, die von einer anderen Partei gesendet wurden, und verlässt Ihr Gerät nie. Den öffentlichen Schlüssel geben Sie jedoch an andere weiter, damit diese Nachrichten verschlüsseln können. Dazu geben Sie den Schlüssel zunächst an WhatsApp weiter, wo wir ihn in Ihrem Namen speichern und an Benutzer weitergeben, die Ihnen eine Nachricht senden möchten.

Das klassische Problem, vor dem die End-to-End-Verschlüsselung schützen soll, ist ein Person-in-the-Middle-Angriff, bei dem Sie denken Sie sprechen nur mit einem Benutzer; Sie sprechen jedoch tatsächlich mit einem Mittelsmann-Angreifer, der einen falschen öffentlichen Schlüssel bereitstellt, damit er den privaten Schlüssel besitzt und Ihre Nachrichten lesen kann. Der Angreifer kann dann den richtigen öffentlichen Schlüssel für Ihren Kontakt verwenden, die Nachricht damit neu verschlüsseln und an den Benutzer senden.

Was hält das heute auf? WhatsApp hat eine Sicherheitsseite für jeden Kontakt, der einen QR-Code und eine 60-stellige Nummer hat, die außerhalb von WhatsApp verifiziert werden kann, um sicherzustellen, dass sie mit dem übereinstimmt, was Ihr Kontakt auf seinem Gerät sieht. Kurz gesagt, es ist ein eindeutiger Hash sowohl Ihrer öffentlichen Schlüssel als auch ihrer öffentlichen Schlüssel. Wenn also einer von Ihnen den falschen Wert hat, stimmen die Hashes nicht überein. Wenn sie übereinstimmen, bestätigt dies eine sichere, Ende-zu-Ende-verschlüsselte Konversation.

Was ist das Problem, das Schlüsseltransparenz behebt?

Die QR-Code-Scanning-/Nummernzuordnungsfunktion bietet zwar eine starke Sicherheitsgarantie, erfordert jedoch die Kommunikation mit Ihren Kontakten außerhalb von WhatsApp – sei es über einen Videoanruf, im wirklichen Leben, am Telefon usw. Dies ist:

  1. Schwierig bei 1:1-Kommunikation, insbesondere wenn Benutzer im Laufe der Zeit Geräte (und damit Verschlüsselungsschlüssel) wechseln;
  2. Noch schwieriger in kleinen Gruppen, da jeder Paar der Teilnehmer hat einen eindeutigen Code (es gibt keine „Gruppen“-Codes);
  3. Es ist fast unmöglich, in großen Gruppen aufzutreten. Jedes Mal, wenn jemand hinzukommt oder geht, ein neues Begleitgerät registriert, sein Telefon wechselt usw., muss dies für alle Teilnehmer wiederholt werden. Bei einer Gruppe von 100 Personen sind das beispielsweise 4950 Paare von Sicherheitsüberprüfungen.

Idealerweise wäre dies kein manueller Prozess und könnte durch eine Art automatisierten Ablauf verifiziert werden.

Eingeben Taste Transparenz: A Protokoll, in dem wir einen AKD auf WhatsApp einrichten, der Aufzeichnungen über Änderungen öffentlicher Schlüssel führt. Darüber hinaus haben wir ein öffentliches Drittanbieter-Repository mit überprüfbaren Änderungsprotokollen für das Verzeichnis eingerichtet, das aktualisiert wird, wenn es Ergänzungen zum Verzeichnis gibt. Dies ist für die Transparenz und die weitere Stärkung unserer Ende-zu-Ende-Verschlüsselungsgarantie von entscheidender Bedeutung. Tatsächlich bestätigt dies, dass dieselben öffentlichen Schlüssel, die ein Benutzer verwendet, um einen Empfänger zu kontaktieren, dieselben sind, die auch alle anderen verwenden, um mit dem Empfänger zu kommunizieren.

Obwohl Schlüsseltransparenz das Scannen von QR-Codes nicht ersetzt, verbessert und ergänzt sie es auf folgende Weise:

  1. Das Scannen von QR-Codes erfordert zwei Personen, um die Out-of-Band-Verifizierung zu koordinieren. Im Gegensatz dazu erfordert Schlüsseltransparenz nur einen einzelnen Client, um eine Prüfung gegen das Verzeichnis zu initiieren und durchzuführen, wodurch die Zugänglichkeit des Prüfprozesses verbessert wird;
  2. Die Schlüsseltransparenz dient als Konsistenzmechanismus für öffentliche Schlüssel, wenn eine manuelle QR-Code-Überprüfung nicht praktikabel ist (z. B. in einem Szenario für die Kommunikation mit großen Gruppen);
  3. Es dient auch als einfache erste Überprüfung der End-to-End-Verschlüsselung, wodurch die Akzeptanz von End-to-End-Verschlüsselungsprüfungen für mehr Benutzer verbessert wird, was der Messaging-Sicherheit insgesamt zugute kommt.

Für den Fall, dass die automatische Überprüfung ein Ergebnis zurückgibt, das zeigt, dass die Verbindung möglicherweise nicht sicher ist, empfehlen wir Benutzern, mit der manuellen Sicherheitsüberprüfung fortzufahren.

Die Geschichte der Schlüsseltransparenz

Schlüsseltransparenz beschreibt ein Protokoll, bei dem der Server eine Nur-Anhang-Aufzeichnung der Zuordnung zwischen dem Konto eines Benutzers und seinem öffentlichen Identitätsschlüssel verwaltet. Dies ermöglicht die Generierung von Aufnahme Beweise dafür, dass eine bestimmte Zuordnung zum Zeitpunkt der letzten Aktualisierung im Verzeichnis vorhanden ist.

WhatsApps Umsetzung der Schlüsseltransparenz basiert auf den ursprünglichen wissenschaftlichen Arbeiten zur Schlüsseltransparenz, beginnend mit KEGEL Und Scheinlosmit Erweiterungen aus einem kürzlich erschienenen Papier namens Sittich. Zusammen ergab dies den Rost AKD Kiste, die als Grundlage für die Aufrechterhaltung einer Schlüsseltransparenzlösung dient und zusammen mit der Generierung von Inklusions- und Schlüsselverlaufsnachweisen aus dem Verzeichnis dient. WhatsApp hostet dieses AKD-Verzeichnis als Infrastruktur, die allen unseren Benutzern zur Verfügung steht.

Öffentliche Schlüssel können nicht verwendet werden, um die Nachrichten eines Benutzers zu entschlüsseln oder festzustellen, mit wem Sie gesprochen haben. Sie sind jedoch notwendig, um sicherzustellen, dass jemand eine Nachricht an den beabsichtigten Empfänger sendet, indem Nachrichten verschlüsselt werden, die nur der Inhaber des zugehörigen privaten Schlüssels des öffentlichen Schlüssels lesen kann.

Ein Benutzer kann viele Einträge haben, wenn er seinen Schlüssel im Laufe der Zeit aktualisiert. Auf der Ebene von WhatsApp entspricht dies Milliarden von Einträgen, die im Laufe der Zeit kontinuierlich wachsen. Wenn ein Benutzer sein Konto löscht, entfernen wir alle öffentlichen Schlüssel für dieses Konto, aber die Tatsache, dass ein Schlüssel zu einem bestimmten Zeitpunkt existierte, ist unveränderlich (wir können nur nicht sagen, was der Schlüssel war).

Wie funktioniert Schlüsseltransparenz?

Sicherheit aus Prinzip

Ausgehend von einer zentralen Designentscheidung halfen uns mehrere Faktoren bei der Entscheidung, die Offenheit und Sicherheit dieses Projekts zu verbessern. Zunächst einmal ist der AKD mit all seiner Proof-Erzeugungs- und Verifizierungslogik Open-Source-Code. Dies ist eine Rust-basierte Kiste (Bibliothek) für jede Entität, die ein Nur-Anhängen-Verzeichnis mit einem öffentlich überprüfbaren Protokoll verwalten oder Nur-Anhängen-Auditnachweise verifizieren und als öffentlicher Prüfer der Schlüsseltransparenzlösung von WhatsApp teilnehmen möchte. Eine Liste mit öffentlichen Schlüsseln allein kann keinen Zugriff auf die Inhalte von irgendjemandem gewähren.

Diese Bibliothek ermöglicht es dem System, eine signifikante Garantie für die Korrektheit der Verzeichniseinträge zu bieten, ohne die Sicherheit zu gefährden, indem es anfällig für speicherbasierte Angriffe ist. Darüber hinaus sind wir bei der Entscheidung geblieben, Rust in den meisten der unten beschriebenen internen Komponenten zu verwenden.

Anwenden von AKD auf WhatsApp

Key-Änderungen mit hohem Volumen

WhatsApp verarbeitet zehntausende wichtige Änderungen (Anmeldung, Ummeldung etc.) pro Minute. Diese Art von Volume ist schwierig zu handhaben, wenn versucht wird, in ein nur angehängtes Protokoll einzufügen.

Daher haben wir uns entschieden, eine verteilte Warteschlange mit hohem Durchsatz zu implementieren, in der „ausstehende Änderungen“ leben, bevor sie zu einem Stapel zusammengefasst und eingefügt werden, um die nächste Epoche zu bilden. Dadurch können wir viel größere Batch-Einfügungen durchführen und die Anzahl der Datenbankoperationen, die wir durchführen müssen, stark einschränken.

Denn die Änderungen am AKD sind additiv auf Basis der bisherigen Epoche Wir müssen sicherstellen, dass jeweils nur ein einziges Update erfolgt. Ein einzelner Prozessor, der jede Aktualisierung nacheinander verarbeitet, wäre nicht in der Lage, mit der Änderungsrate innerhalb von WhatsApp Schritt zu halten (unabhängig von der Datenbankimplementierung). Dadurch entsteht eine gewisse Latenz ab dem Zeitpunkt, an dem ein Schlüssel hinzugefügt oder aktualisiert wird, bis er im Verzeichnis „veröffentlicht“ wird.

Durch Stapeln von Schlüsseln und Erstellen einer Epoche eine Sammlung von Änderungen, die atomar festgeschrieben werden, können wir aufgrund vieler gemeinsam genutzter Pfade im Merkle-Baum, der in der Datenbank gespeichert ist, von vielen Abfrageoptimierungen profitieren. Die Häufigkeit, mit der neue veröffentlicht und ausgegeben werden Epochen ist ein abstimmbarer Parameter, der im Laufe der Zeit angepasst werden kann.

Öffentliche Finanzkontrolle im großen Maßstab

Die generelle Anforderung an alle Transparenzlösungen soll sein öffentlich überprüfbarwas bedeutet, dass jeder, falls er möchte, die Transaktionen im Verzeichnis überprüfen kann, um Folgendes zu bestätigen:

  1. Der Verlauf wurde nicht geändert (vorhandene Datensätze werden nicht gelöscht oder aktualisiert).
  2. Änderungen können nur angefügt werden.

Bei der Veröffentlichung einer neuen Änderung des AKD geben wir einen Prüfungsnachweis dieser Änderungen aus, der für alle Interessierten öffentlich gespeichert wird. Diese Audit-Aufzeichnungen garantieren, dass jeder die Eigenschaften des unveränderlichen Verlaufs überprüfen kann, wenn er dies wünscht, während die Privatsphäre aller Benutzer im Verzeichnis gewahrt bleibt.

Dies riskiert nicht, dass die tatsächlichen Informationen von irgendjemandem öffentlich werden, und offenbart auch keine Verhaltensmuster für Benutzer. Sie können mehr darüber lesen, wie diese Datenschutzgarantie funktioniert, wie in beschrieben Scheinlos Und Sittichdie wissenschaftlichen Arbeiten, auf denen Schlüsseltransparenz basiert.

Schlüsseltransparenzlösungen tragen dazu bei, die Garantie zu stärken, die die Ende-zu-Ende-Verschlüsselung privaten, persönlichen Messaging-Anwendungen auf transparente Weise für alle zur Verfügung stellt. Diese Technologie untermauert das Engagement und die Führungsrolle von WhatsApp im Sicherheitsbereich.

WhatsApp hostet und betreibt bereits einen AKD für alle unsere Benutzer, unabhängig von der Version oder Plattform der Anwendung, die Sie verwenden. Benutzer, die die Funktion zum Überprüfen des Sicherheitscodes verwenden, werden feststellen, dass die Überprüfung automatisch erfolgt, da dies in den kommenden Monaten auf Android eingeführt wird. Dies ist ein wichtiger Mechanismus, der es sicherheitsbewussten Benutzern ermöglicht, eine Ende-zu-Ende-verschlüsselte persönliche Konversation schnell zu überprüfen.

Ein technischeres Deep-Dive-Whitepaper, das potenzielle Angriffe, zusätzliche Details zu Datenflüssen und -formaten und mehr behandelt, wird in Kürze veröffentlicht.

Comments are closed.