Zuletzt aktualisiert am

Signal: Einführung der automatischen Schlüsselüberprüfung

Signal bietet nun eine Funktion namens „Automatische Schlüsselüberprüfung“ an, die das bestehende Sicherheitsnummernsystem ergänzt. Signal ist stets durchgehend verschlüsselt, und die automatische Schlüsselüberprüfung bietet eine zusätzliche, vereinfachte Möglichkeit, um sicherzustellen, dass sich zwischen Ihnen und dem anderen „Ende“ einer durchgehend verschlüsselten Sitzung kein unerwarteter Dritter befindet.
Eine Übersetzung von s3n🧩net

Das System basiert auf einer Reihe von Überprüfungen, die von Ihnen, Ihren Signal-Kontakten und externen Prüfern durchgeführt werden und zusammen dieselbe Sicherheit bieten wie die manuelle Überprüfung von Sicherheitsnummern. Im Gegensatz zu Sicherheitsnummern erfolgen diese Überprüfungen unabhängig voneinander und erfordern weder ein persönliches Treffen noch einen zweiten Kommunikationskanal.

Dieses Verifizierungssystem stellt sicher, dass die Zuordnung zwischen einer Telefonnummer oder einem Benutzernamen und dem dazugehörigen öffentlichen Verschlüsselungsschlüssel weltweit konsistent und für alle Teilnehmer im Signal-Ökosystem transparent ist. Dies schützt vor Szenarien, in denen ein Schlüssel ohne Wissen des Schlüsselinhabers ausgetauscht wird – beispielsweise wenn ein Angreifer Signal kompromittiert und der Telefonnummer Ihrer Verbindung einen anderen Schlüssel zuordnet.

Um diese Funktion in Aktion zu sehen, rufen Sie das Profil eines Signal-Kontakts auf, tippen Sie auf Sicherheitsnummer anzeigen und anschließend unter der Überschrift Automatische Schlüsselüberprüfung auf die Schaltfläche Automatisch überprüfen. Die Schaltfläche zeigt ein grünes Häkchen und den Text "Verschlüsselung verifiziert" an, wenn die Funktion verfügbar ist und die Überprüfung erfolgreich war. Im Laufe der Zeit gewährleistet diese Überprüfung – in Kombination mit den kontinuierlich von Ihrem Signal-Kontakt und externen Prüfern durchgeführten Überprüfungen – die Konsistenz des Schlüssels dieses Signal-Kontakts im gesamten Signal-Ökosystem.

Diese Funktion basiert auf einem Konzept, das als „Schlüsseltransparenz“ bekannt ist. Diesen Begriff werden wir im weiteren Verlauf dieses Beitrags verwenden, um zu erläutern, warum wir ein System zur Schlüsseltransparenz entwickelt haben, und um einen allgemeinen Überblick über dessen Funktionsweise zu geben.

Eine Einführung in öffentliche und private Schlüssel

Die Asymmetrische Kryptografie ermöglicht es Ihnen, Nachrichten an einen Freund zu senden, die nur dieser lesen kann. Dabei kommt ein Paar mathematisch miteinander verknüpfter Schlüssel zum Einsatz, der sogenannte öffentliche Schlüssel und der private Schlüssel, die in einer Vielzahl von Anwendungen genutzt werden können, darunter auch das Senden und Empfangen von Nachrichten.

Stell dir vor, du hättest einen verschlossenen Briefkasten mit einem Einwurfschlitz. Dein öffentlicher Schlüssel ist wie deine Briefkastenadresse – du kannst ihn jedem mitteilen, der dir Post schicken möchte. Dein privater Schlüssel ist wie der Schlüssel zu deinem Briefkasten. Du bist die einzige Person, die ihn besitzt, und du kannst ihn verwenden, um die an dich gesendeten Nachrichten zu lesen. Jeder kann Post in deinen Briefkasten einwerfen (mit deinem öffentlichen Schlüssel verschlüsseln), aber nur du kannst ihn öffnen und lesen (mit deinem privaten Schlüssel entschlüsseln). Deine Postfachadresse muss öffentlich zugänglich sein; du kannst keine Post empfangen, wenn niemand weiß, wohin sie gesendet werden soll.

Wenn du dich bei Signal anmeldest, generiert die Signal-App im Rahmen des Registrierungsprozesses ein öffentliches/privates Schlüsselpaar¹ für dich. Der private Schlüssel verbleibt auf deinem Gerät – nur du, nicht Signal und niemand sonst, hast Zugriff auf diesen privaten Schlüssel. Dein öffentlicher Schlüssel wird an Signal gesendet, das als zentrales Verzeichnis für die öffentlichen Schlüssel aller Nutzer fungiert. Wenn du eine Nachricht an einen anderen Signal-Nutzer senden möchtest, fragst du bei Signal den öffentlichen Schlüssel deines Gesprächspartners ab und verschlüsselst deine Nachricht mit dem von Signal zurückgegebenen Schlüssel und deinem privaten Schlüssel.

Mallory in the middle attack

Das Versenden von Nachrichten erfordert das Abrufen der öffentlichen Schlüssel der Empfänger, und das Abrufen öffentlicher Schlüssel bedeutet, dass man auf ein zentrales Verzeichnis angewiesen ist. Theoretisch könnte ein böswilliger Verzeichnisbetreiber einen sogenannten Mallory-in-the-Middle Angriff durchführen, wofür jedoch entweder ein Außenstehender die Sicherheitsvorkehrungen großer Cloud-Anbieter umgehen müsste oder ein privilegierter Insider gezielt ein bestimmtes Konto ins Visier nehmen müsste. Doch auch wenn es sich hierbei um einen sehr ausgeklügelten und unwahrscheinlichen Angriff handelt, möchten wir uns dennoch davor schützen. Wir werden weiterhin die Analogie mit dem Postfach verwenden, um zu veranschaulichen, wie dieser Angriff hypothetisch ablaufen würde.

Stellen Sie sich vor, Bob möchte seiner Freundin Alice eine Einladung zum Kaffee schicken, also sucht Bob ihre Postfachadresse im zentralen Verzeichnis. Wenn das Verzeichnis irgendwie von einer Angreiferin (Mallory) kompromittiert wurde, könnte es Bob an Mallorys Postfach statt an das von Alice weiterleiten. Wenn Bob seine Nachricht an das Postfach sendet, von dem er glaubt, dass es Alices ist, landet sie tatsächlich in Mallorys Postfach. Mallory nutzt dann ihren eigenen Postfachschlüssel, um Bobs Nachricht abzurufen, liest sie, ändert sie gegebenenfalls, steckt sie in einen neuen Umschlag und leitet sie an Alices Postfach weiter.

In ihrer Abwandlung könnte Mallory beispielsweise den Ort des Cafés oder die Uhrzeit des Treffens ändern, was dazu führen würde, dass Alice am falschen Ort oder zur falschen Zeit erscheint. Alice hätte keinen Hinweis darauf, dass die Nachricht abgefangen oder manipuliert wurde, sodass es für sie so aussieht, als stamme die Nachricht direkt von Bob. Unterdessen würde Bob vergeblich darauf warten, dass Alice erscheint. Und selbst wenn Mallory sich entscheiden würde, Bobs Nachricht nicht zu verändern, stellt allein die Tatsache, dass sie diese lesen kann, bereits eine schwerwiegende Verletzung der kommunikativen Privatsphäre dar.

Missverständnisse beim Kaffeetrinken sind relativ harmlos, doch diese Art von Angriff kann in anderen Kontexten weitaus größeren Schaden anrichten.

Dieser Angriff funktioniert, weil Bob Alices Adresse nie wirklich überprüft hat. Bob ist einfach davon ausgegangen, dass das im Verzeichnis angegebene Postfach ihr gehört, was eine vernünftige Annahme ist.

Wenn Bob jedoch besonders vorsichtig sein wollte, könnte er Alice direkt nach ihrer Adresse fragen – entweder bei einem persönlichen Treffen oder über einen sekundären, vertrauenswürdigen Kommunikationskanal², was jedoch möglicherweise nicht machbar ist, wenn Alice und Bob ausschließlich Brieffreunde sind.

Wie kann Bob also Alices Adresse überprüfen, wenn er sie nicht persönlich treffen oder einen zweiten Kanal nutzen kann?

Im weiteren Verlauf dieses Blogbeitrags werden wir darlegen, wie wir ein System entworfen haben, das es Bob ermöglicht, die Daten im zentralen Verzeichnis automatisch zu überprüfen, ohne direkt mit Alice kommunizieren zu müssen.

Eine Analogie für die Entwicklung eines Systems zur Schlüsseltransparenz

Eine Möglichkeit, wie wir Bob dabei helfen könnten, zu überprüfen, ob das Verzeichnis die richtige Adresse von Alice enthält, bestünde darin, jede jemals am Verzeichnis vorgenommene Änderung zu protokollieren. Wenn jemand Alices Adresse im Verzeichnis ändert, wird dies in diesem chronologischen Protokoll erfasst und ist somit nachverfolgbar. Um dies zu veranschaulichen, wollen wir die Analogie mit dem Briefkasten weiterführen.

Nehmen wir an, ein Sachbearbeiter trägt die Adressänderungen aller Personen in ein öffentliches Register im städtischen Postamt ein. Wann immer jemand eine neue Adresse erhält oder eine bestehende aktualisiert, fügt der Sachbearbeiter dem ständig wachsenden Hauptbuch eine neue Seite am Ende hinzu und trägt die Adressänderung dort ein. Der Sachbearbeiter tut dies mit einem Permanentmarker, sodass niemand, sobald etwas geschrieben ist, zu einer Seite zurückkehren und sie herausreißen oder ihren Inhalt ändern kann. Jeder kann das Postamt besuchen und eine Adresse im Hauptbuch nachschlagen, einschließlich seiner eigenen.

Verwendung des Hauptbuchs

Für jede beliebige Adresse gibt es zwei Möglichkeiten, wie Postkunden mit dem Hauptbuch interagieren können:

  1. Ein Kunde wie Bob kann die Adressen anderer Personen (wie Alice) nachschlagen.
  2. Eine Kundin wie Alice kann ihre eigene Adresse nachschlagen, um sicherzustellen, dass die Buchführung korrekt ist.

Damit Bob Alices aktuelle Adresse finden kann, müsste er an der letzten Seite des Hauptbuchs beginnen und jeweils eine Seite zurückblättern, bis er eine Seite mit Alices Daten findet. Bob beginnt am Ende des Hauptbuchs und arbeitet sich rückwärts vor, da er Alices aktuellste Adresse benötigt und sich Alices Adresse im Laufe der Zeit möglicherweise geändert hat. Je mehr Seiten dem Hauptbuch hinzugefügt werden, desto aufwendiger kann dies für Bob werden, insbesondere wenn Alice ihre Adresse schon länger nicht mehr aktualisiert hat und es viele Adressänderungen bei anderen Personen gibt, die Bob durchsehen muss.

Das Hauptbuch ermöglicht es Alice, zu überprüfen, ob ihre eigene Adresse korrekt aufgeführt ist, doch dazu muss sie alle neuen Seiten seit ihrem letzten Besuch durchsehen und sicherstellen, dass ihre Adresse nirgendwo falsch angegeben ist. Genau wie für Bob wird dies zu einem großen Arbeitsaufwand, je mehr Seiten dem Adressbuch hinzugefügt werden.

Wenn Alice und Bob in einer geschäftigen Stadt leben, in der die Menschen häufig umziehen, müssten beide einen unzumutbaren Arbeitsaufwand betreiben, um das Adressbuch zu nutzen, indem sie Seite für Seite durchblättern. Wir brauchen eine effizientere Möglichkeit für Alice und Bob, mit dem Adressbuch zu interagieren.

Einführung von Indexbüchern

Im Alltag enthalten Bücher oft ein alphabetisch sortiertes Stichwortverzeichnis, das es den Lesern ermöglicht, das Gesuchte schnell zu finden. Wir können dieses Prinzip auf unser Hauptbuch übertragen, indem wir ein alphabetisch sortiertes Indexbuch einführen, das die Namen aller Personen enthält, deren Adressen bisher in das Hauptbuch aufgenommen wurden.

Wenn dem Hauptbuch neue Seiten hinzugefügt werden, um neue Adressen oder Adressänderungen zu erfassen, muss auch das Indexbuch aktualisiert werden. Daher veröffentlicht der Sachbearbeiter jedes Mal, wenn er dem Hauptbuch eine Seite hinzufügt, eine neue Ausgabe des Indexbuchs, die alle Personen enthält, deren Adressen bis zu dieser Seite im Hauptbuch erfasst wurden. So entsteht eine riesige Sammlung aller bisherigen Indexbücher, die der Öffentlichkeit zugänglich sind.

Nehmen wir vorerst an, dass Alice und Bob für jede beliebige Seite des Hauptbuchs immer dasselbe Indexbuch einsehen. Im nächsten Abschnitt werden wir eine weitere Komponente des Systems erörtern, die es Alice und Bob ermöglicht, diese Annahme zu überprüfen.

Mit dieser Konstruktion kann Bob nun Alices Adresse im Hauptbuch mithilfe einer „Binären Suche“ leichter nachschlagen – ein Verfahren, das sich am besten anhand eines konkreten Beispiels veranschaulichen lässt.

Nehmen wir an, dass es über einen bestimmten Zeitraum 100 neue oder aktualisierte Adressen gab, sodass das Hauptbuch 100 Seiten umfasst und der Sachbearbeiter 100 verschiedene Ausgaben des Indexbuchs veröffentlicht hat. Der Einfachheit halber nehmen wir an, dass Alices Adresse nur einmal im Hauptbuch erscheint, nämlich als sie in die Stadt gezogen ist.

Bob schlägt zunächst die Mitte des Hauptbuchs auf. Dann schaut er im zu dieser Seite gehörenden Indexbuch nach. Das Indexbuch ist alphabetisch sortiert, sodass sich der Name einer Person leicht finden lässt. Wenn Alices Name in diesem Indexbuch vorkommt, handelt es sich entweder um die erste Ausgabe des Indexbuchs, die einen Eintrag für Alice enthält, oder der erste Eintrag befindet sich in einer früheren Ausgabe und somit auf einer früheren Seite im Hauptbuch.

In beiden Fällen kann Bob die hintere Hälfte des Hauptbuchs ignorieren und den Vorgang mit der vorderen Hälfte des Hauptbuchs wiederholen, bis er die genaue Seite im Hauptbuch findet, auf der Alices Adressänderung stattfand. Genauer gesagt endet Bobs Suche, wenn er zwei benachbarte Indexbücher findet, wobei das erste Alices Adresse nicht enthält und das zweite schon.

Dieser Suchvorgang hat einige Vorteile, wobei der erste darin besteht, dass er effizient ist. In einem Hauptbuch mit einer Milliarde Seiten muss Bob, anstatt (im schlimmsten Fall) alle eine Milliarde Seiten rückwärts durchzublättern, höchstens 30 verschiedene Seiten überprüfen, um Alices Adresse zu finden. Bobs Aufgabe ist nun viel einfacher als zuvor.

Alice möchte weiterhin sicherstellen, dass der Sachbearbeiter niemals neue Seiten hinzufügt, die falsche Angaben zu ihrer Adresse enthalten. Allerdings muss Alice nicht jede Seite des Hauptbuchs und jedes Indexbuchs überprüfen. Sie muss lediglich dieselben Seiten überprüfen, die Bob durchgesehen hat, um ihre Adresse zu finden. Dadurch wird sichergestellt, dass die Adresse, die Bob für Alice gefunden hat, von Alice selbst verifiziert wurde.

Dies bringt uns zum zweiten Vorteil des Suchvorgangs: Er ist deterministisch, wenn Alice und Bob das Hauptbuch mit derselben Seitenanzahl durchsehen. Etwas komplizierter wird es, wenn der Sachbearbeiter zwischen Bobs und Alices Suche weitere Seiten hinzufügt, doch der Grundgedanke bleibt derselbe. In einem Hauptbuch mit einer Milliarde Seiten kann Alice denselben Suchvorgang wie Bob durchlaufen, dieselben Seiten überprüfen, die Bob überprüft hat, und sicherstellen, dass keine davon falsche Angaben zu ihrer Adresse enthält.

Indem sie sich auf ein Verfahren zur Durchsuchung des Ledgers geeinigt haben, haben Alice und Bob eine Möglichkeit geschaffen, mit dem Ledger zu interagieren, die es ihnen ermöglicht, ihre jeweiligen Ziele praktisch zu erreichen. Während das Ledger weiter wächst, verfügt Bob über eine effiziente Möglichkeit, Alices Adresse zu finden, und Alice hat eine effiziente Möglichkeit, sicherzustellen, dass die von Bob gefundene Adresse korrekt ist.

Diese Analogie wurde der Übersichtlichkeit halber vereinfacht. In der Praxis kann Alice ihre Adresse mehrfach aktualisieren, und um diese Art der Suche zu unterstützen, müssen in den Indexbüchern mehr Daten als nur Namen gespeichert werden. Wir haben einen Open-Source-Server für Schlüsseltransparenz entwickelt, der dieselben Prinzipien auf den Signal-Messenger anwendet.

Was ist mit dem Sachbearbeiter?

Bisher haben wir den Suchvorgang so beschrieben, als würden Alice und Bob persönlich die Seiten des Hauptbuchs durchblättern und die Indexbücher überprüfen. In der Praxis ist das nicht realistisch, da das Hauptbuch und die Indexbücher zu umfangreich sind, als dass Alice oder Bob sie direkt bearbeiten könnten. Stattdessen bitten Alice und Bob den Sachbearbeiter, die Suche in ihrem Namen durchzuführen und ihnen die Ergebnisse mitzuteilen.

Das Postamt könnte jedoch von einem Angreifer wie Mallory kompromittiert werden, der sich als Sachbearbeiter ausgibt und Bob letztendlich dazu verleiten will, zu glauben, dass Alices Adresse tatsächlich Mallorys Wohnadresse ist. Daher können Alice und Bob dem Sachbearbeiter nicht einfach vertrauen; sie müssen in der Lage sein, den Suchvorgang selbstständig zu überprüfen.

Zu diesem Zweck bitten sie den Sachbearbeiter, ihnen alle Daten aus den spezifischen Hauptbuchseiten und Indexbüchern zurückzugeben, die er während des Suchvorgangs eingesehen hat, und überprüfen die Ergebnisse selbst noch einmal.

Eine doppelte Überprüfung funktioniert nur, wenn man den Daten, die der Sachbearbeiter zurückgibt, vertrauen kann, was eine naheliegende Frage aufwirft: Was ist, wenn Mallory, die sich als Sachbearbeiterin ausgibt, über den Inhalt der Unterlagen lügt? Mallory könnte beispielsweise ein geheimes zweites Hauptbuch führen, in dem die falsche Adresse von Alice vermerkt ist, oder zwei verschiedene Ausgaben eines Indexbuchs für dieselbe Seite des Hauptbuchs veröffentlichen. Mallory könnte Alice Daten aus einer Ansicht und Bob Daten aus der anderen Ansicht zur Verfügung stellen und sie so dazu verleiten, die bereitgestellten Daten zu überprüfen, ohne Mallorys Täuschung zu bemerken.

Alice und Bob benötigen einen unabhängigen Zeugen, um sicherzustellen, dass der Sachbearbeiter ehrlich bleibt.

Externe Prüfer

Um zu verhindern, dass Mallory Alice und Bob unterschiedliche Daten liefert, verlassen sie sich auf externe Prüfer. Diese Prüfer sind wie Notare, die dem Sachbearbeiter über die Schulter schauen, während dieser jede weitere Seite in das Hauptbuch einträgt und die entsprechende Ausgabe des Indexbuchs veröffentlicht.

Sie überprüfen, ob jede Ausgabe des Indexbuchs mit Ausnahme eines Eintrags genau dieselben Daten enthält wie die vorherige Ausgabe und ob der Sachbearbeiter keine früheren Seiten im Hauptbuch entfernt oder auf andere Weise heimlich verändert hat. Sind diese Bedingungen erfüllt, unterzeichnet³ der Prüfer
die betreffende Seite des Hauptbuchs und des Indexbuchs und bestätigt damit, dass der Eintrag korrekt hinzugefügt wurde.

Prüfer unterschreiben jede Seite und jedes Indexbuch immer nur einmal. Wenn der Sachbearbeiter also versuchen würde, Alice und Bob unterschiedliche Versionen der 50. Ausgabe des Indexbuchs zu zeigen, könnte er nur für eine dieser Versionen eine gültige begleitende Prüferunterschrift vorlegen. Durch die Überprüfung und Verifizierung dieser Prüferunterschriften können Alice und Bob sicher sein, dass der Sachbearbeiter genau ein Hauptbuch und den dazugehörigen Satz an Indexbüchern führt und dass sie daher denselben Datensatz einsehen.

Bei der Umsetzung der Schlüsseltransparenz durch Signal fungieren Cloudflare und Trail of Bits als vertrauenswürdige externe Prüfer.

Überwachung

Unabhängige Prüfer stellen sicher, dass der Sachbearbeiter Alice und Bob denselben Datensatz zur Verfügung stellt, können jedoch die Richtigkeit der erfassten Daten nicht überprüfen. Mallory könnte beispielsweise versuchen, dem Hauptbuch eine Seite hinzuzufügen, auf der eine gefälschte Adressänderung für Alice vermerkt ist. Aus Sicht eines Prüfers handelt es sich dabei um eine legitime Änderung, solange Mallory die neue Seite korrekt in das Hauptbuch einfügt und eine neue Ausgabe des Indexbuchs veröffentlicht. Wenn Bob jedoch Alices Adresse im Hauptbuch nachschlägt, wird er diesen gefälschten Eintrag finden und glauben, dass es sich um Alices echte Adresse handelt.

Hier kommt die Überwachung ins Spiel. Erinnern wir uns daran, dass es zwei Möglichkeiten für Kunden gibt, mit dem Hauptbuch zu interagieren: die Adresse einer anderen Person nachzuschlagen und die eigene nachzuschlagen. Die Überwachung erfordert, dass Alice und Bob beide dieser Schritte regelmäßig durchführen, wobei jeder eine andere Art von Manipulation aufdeckt.

Alice überwacht ihre eigenen Daten im Hauptbuch, indem sie regelmäßig ihren aktuellsten Adresseintrag nachschlägt und überprüft. Wenn sie eine unerwartete Adresse findet, sollte sie Bob über einen zweiten, vertrauenswürdigen Kanal darauf hinweisen, dass die Adresse, die er für sie erhalten hat, nicht vertrauenswürdig ist.

Auch Bob muss regelmäßig Alices aktuellsten Adresseintrag abrufen und prüfen, ob dieser mit dem übereinstimmt, den er zuvor erhalten hat. Dies ist wichtig, da Mallory nach dem Einfügen einer gefälschten Adressänderung versuchen könnte, ihre Spuren zu verwischen, indem sie später einen Eintrag hinzufügt, der Alices korrekte Adresse wiederherstellt.

Es ist wichtig zu beachten, dass es aus Bobs Sicht so aussieht, als hätte Alice eine andere Adresse angegeben – genau wie bei einer legitimen Adressänderung, was die weitaus häufigere Erklärung ist. Dennoch sollte er sich über den sekundären Kanal bei Alice vergewissern, dass sie tatsächlich umgezogen ist. Falls dies nicht der Fall ist, sollte er die frühere Adresse als unzuverlässig betrachten.

Alice führt in regelmäßigen Abständen Selbstüberprüfungen durch, und Bob überprüft das Hauptbuch nach seinem eigenen Zeitplan, sodass keiner von beiden garantiert Mallorys Eingriff sofort bemerkt, sobald er stattfindet. Doch diese beiden Arten der Überwachung bilden in Kombination mit einer Prüfung durch Dritte ein lückenloses Erkennungssystem: Die Prüfung garantiert, dass Alice und Bob dieselben Daten einsehen, und die Überwachung garantiert, dass beide diese Daten regelmäßig auf ihre Richtigkeit überprüfen. Zusammen stellen sie sicher, dass Manipulationen durch Mallory letztendlich aufgedeckt werden.

Um den Bogen zu Signal zu schlagen

Wie hängt das alles nun mit der Schlüsseltransparenz in Signal zusammen?

In Signal kannst du wählen, ob du über deine Telefonnummer oder über einen Benutzernamen auffindbar sein möchtest, sofern du einen solchen anlegst. Wenn du dich dafür entscheidest, über deine Telefonnummer oder deinen Benutzernamen auffindbar zu sein, kann jemand deine Nummer oder deinen Benutzernamen in Signal eingeben, um eine Nachrichtenanfrage zu starten. Signal unterhält ein zentrales Verzeichnis, das diese öffentlichen Identifikatoren letztlich dem öffentlichen Schlüssel des Nutzers zuordnet – genau wie der „Name“ und die „Adresse“ in unserer Briefkasten-Analogie.

Wenn sich Signal-Nutzer registrieren, ihre Telefonnummer oder ihren Nutzernamen ändern oder ihr Konto neu erstellen, protokolliert Signal die Änderungen in einem Protokollbaum („dem Ledger“) und erleichtert die Suche in diesem Protokollbaum mithilfe von Präfixbäumen („den Indexbüchern“). Cloudflare und Trail of Bits fungieren jeweils als unabhängige Prüfer dieser beiden Baumtypen, die zusammen das Schlüsseltransparenzprotokoll bilden.

Alle Benutzerdaten im Protokoll sind kryptografisch verschleiert – öffentliche Identifikatoren werden durch eine überprüfbare Zufallsfunktion verarbeitet, und die Werte, auf die sie abgebildet werden, sind durch eine schlüsselbasierte Hash-Funktion geschützt – sodass Prüfer niemals Benutzerdaten im Klartext sehen.

Ihre Signal-App überprüft automatisch und in regelmäßigen Abständen Ihre eigenen öffentlichen Identifikatoren in diesem Protokoll, doch die Überprüfung der Identifikatoren einer Verbindung muss auf dem Bildschirm namens „Sicherheitsnummer anzeigen“ initiiert werden. Alle Anfragen zum Nachschlagen von Identifikatoren im Protokoll sind nicht authentifiziert und daher nicht an ein bestimmtes Benutzerkonto gebunden.

Wir werden in diesem Beitrag zwar nicht näher auf die Implementierungsdetails eingehen, interessierte Leser finden diese jedoch in unserem Open-Source-Repository, das auf der Grundlage eines früheren Entwurfs des IETF-Schlüsseltransparenzprotokolls implementiert wurde und Anpassungen enthält, die auf den Anwendungsfall von Signal zugeschnitten sind.

Schlüsseltransparenz in der heutigen Praxis

Schlüsseltransparenz bedeutet, dass alle Geräte im Signal-Ökosystem dieselbe Sicht auf die Zuordnungen zwischen einer Kennung und ihrem öffentlichen Verschlüsselungsschlüssel haben. Die Identität des Nutzers, der eine bestimmte Telefonnummer oder einen bestimmten Benutzernamen kontrolliert, wird dabei nicht überprüft. Konkret bedeutet dies, dass Alice und Bob Schlüsseltransparenzprüfungen durchführen können, um sicherzustellen, dass sie jeweils über den richtigen öffentlichen Schlüssel für ein bestimmtes Konto verfügen. Eine zusätzliche Überprüfung (beispielsweise nach einer Änderung der Sicherheitsnummer) wäre jedoch weiterhin erforderlich, um ein Szenario zu erkennen, in dem Mallory die vollständige Kontrolle über Alices Konto übernommen hat.

Derzeit überprüft Ihre Signal-App automatisch Ihre eigene Telefonnummer und Ihren Benutzernamen im Protokoll. Um dies jedoch für eine andere Person zu überprüfen, benötigen Sie deren Telefonnummer. Das bedeutet: Wenn Sie über den Benutzernamen mit jemandem auf Signal in Kontakt getreten sind und keine Telefonnummern ausgetauscht haben oder anderweitig keinen Zugriff auf dessen Telefonnummer haben, können Sie diese Person nicht verifizieren.

Sie verfügen wahrscheinlich über die Telefonnummer Ihres Signal-Kontakts, wenn eine der folgenden Bedingungen zutrifft:

  • Sie haben über die Option „Nach Telefonnummer suchen“ einen Signal-Chat mit dieser Person gestartet.
  • Sie haben die Kontaktdaten dieser Person im Adressbuch Ihres Smartphones gespeichert (und die Person hat in Signal die Option aktiviert, über die Telefonnummer gefunden werden zu können).
  • Ihr Kontakt hat die Option ausgewählt, dass jeder seine Telefonnummer in Signal sehen kann (standardmäßig ist dies nicht möglich).

Beachten Sie, dass Signal die Telefonnummer eines Signal-Kontakts in der App nur dann anzeigt, wenn dieser in Ihrem Telefonadressbuch gespeichert ist oder wenn er die Sichtbarkeit seiner Telefonnummer für alle freigegeben hat.

Es ist auch möglich, dass Sie eine veraltete Telefonnummer haben, falls Ihr Kontakt auf Signal seine Telefonnummer ändert. Diese Änderung hat keine Auswirkungen auf die Sicherheit des öffentlichen Verschlüsselungsschlüssels Ihres Kontakts und der zugrunde liegenden verschlüsselten Nachrichtenübertragung. Es bedeutet jedoch, dass Sie die automatische Schlüsselüberprüfung für diesen Kontakt nicht nutzen können, da Ihr Smartphone weiterhin die alte Telefonnummer Ihres Kontakts gespeichert hat, die nicht mehr mit dem aktuellsten Eintrag im Ledger übereinstimmt. Dies ähnelt der im Abschnitt zur Überwachung beschriebenen Situation, in der Bob für Alice eine andere Adresse sieht als die, die er zuvor erhalten hatte. Es handelt sich sehr wahrscheinlich um eine legitime Änderung, aber Ihr Gerät kann diese nicht von einer Server-Störung unterscheiden, und Sie sollten sich über einen zweiten, vertrauenswürdigen Kanal bei Ihrem Gesprächspartner erkundigen.

Aus Datenschutzgründen ist die automatische Schlüsselüberprüfung in all diesen Fällen standardmäßig deaktiviert. Wir empfehlen den Nutzern daher, das bestehende Sicherheitsnummernsystem zu verwenden, mit dem sie manuell überprüfen können, ob sie denselben Satz von Verschlüsselungsschlüsseln mit einer bestimmten Verbindung teilen, indem sie einen QR-Code scannen oder eine lange Verifizierungsnummer vergleichen. Nutzer, die sich lieber nicht auf Dritte – einschließlich Signal und die Prüfer – verlassen möchten, können die automatische Schlüsselüberprüfung in den Einstellungen unter „Datenschutz“ > „Erweitert“ > „Automatische Schlüsselüberprüfung“ deaktivieren und weiterhin die manuelle Überprüfung anhand der Sicherheitsnummer nutzen.

Fazit

„Key Transparency“ bietet eine benutzerfreundliche Möglichkeit, einen wichtigen Aspekt der Nachrichtensicherheit zu überprüfen, und ergänzt unser bestehendes System der Sicherheitsnummern.

Diese Arbeit ist das Ergebnis einer bedeutenden Zusammenarbeit innerhalb und außerhalb von Signal, und wir sind insbesondere Cloudflare und Trail of Bits dankbar, dass sie als unabhängige Prüfer fungiert haben. Wir danken ihnen und den vielen anderen Menschen in unserem Ökosystem, die diese Arbeit erst möglich machen.


¹ In der Praxis generiert Signal tatsächlich mehrere verschiedene Arten von Schlüsselpaaren und abgeleiteten Schlüsseln, die als Teil des Signal-Protokolls zusammenwirken, anstatt sich auf ein einziges öffentliches/privates Schlüsselpaar zu stützen.

² Auf der Signal-Plattform entspricht dies unserer bestehenden Funktion der Sicherheitsnummer, die eine persönliche Verifizierung oder den Abgleich von Sicherheitsnummern über eine zweite, vertrauenswürdige Plattform erfordert.

³ In der realen Welt lassen sich Signaturen leicht fälschen. In dem System der Schlüsseltransparenz, das diese Analogie beschreibt, verwenden die externen Prüfer von Signal jedoch kryptografische Signaturen, die sich nicht ohne Weiteres fälschen lassen. 

Bildnachweis: Signal


Eine Übersetzung von s3n🧩net

Comments