Fallstudie
Im Inneren des Sitzungsaufbaus von WhatsApp Desktop
Wie initialisiert eine Closed-Source-Desktopanwendung eine Ende-zu-Ende-verschlüsselte Sitzung — und was verrät dieser Vorgang einem Beobachter? Die folgenden Aufzeichnungen verfolgen die kryptografische Logik von WhatsApp Desktop unter macOS mit dem Debugger LLDB und prüfen Kommunikationszustände sowie die Auslöser eines Sitzungsaufbaus.
Aufzeichnung 01
Analyse des technischen Ablaufs & Debugging-Logik
Eine schrittweise Methodik, um mit LLDB den Ausführungsfluss kryptografischer Funktionen zu beobachten — mit Fokus auf die Auslöser bei Interaktionen in der Oberfläche, etwa dem Start eines neuen Chats oder dem Anlegen einer Gruppe.
- Den WhatsApp-Prozess anbinden und einen Breakpoint auf
session_builder_process_pre_key_bundlesetzen. - Diejenigen Speicheradressen bestimmen, die anzeigen, dass noch keine Konversation mit einem Empfänger besteht.
- Einen Backtrace erzeugen, um den Aufrufstapel der Signal-Protokoll-Implementierung abzubilden.
Aufzeichnung 02
Lebenszyklus der Ende-zu-Ende-Sitzung & Sicherheitsanalyse
Über das reine Nachvollziehen der Logik hinaus: ein sicherheitszentriertes Audit des E2E-Sitzungslebenszyklus — die Grenzen rund um kontobezogene Ereignisse und die Verwaltung von Kommunikationszuständen über Gerätewechsel hinweg.
- Der vollständige Lebenszyklus, von Registrierung und Kontoeinrichtung bis zum Löschen einer Konversation.
- Die Sicherheitsimplikationen einer erneuten Registrierung durch einen Angreifer und der Verknüpfung der Desktop-Anwendung mit einem neuen Konto.
- Wie die Anwendung Key-Bundles abruft und sichere Zustände über mehrere Kontakte hinweg aufrechterhält.
Methodik
Die dynamische Analyse mit LLDB zeigt, an welcher Stelle der Binärdatei die relevante kryptografische Arbeit stattfindet. Dieser Bereich wird anschließend an die CryptoBAP-Pipeline übergeben, die ihn hebt, mit einem Leakage-Contract instrumentiert und ein Modell für die Verifizierer extrahiert.