Datenschutz & Sicherheit
Signal sichert seine Chats gegen Quantencomputer
Der Messenger Signal hat ein neues Schlüsselaustauschprotokoll für seinen Kommunikationsdienst vorgestellt. „SPQR“ soll Nachrichten auch vor Angreifern mit Quantencomputern schützen und ergänzt das von Signal etablierte Double-Ratchet-Verfahren um eine dritte Komponente, weshalb die Entwickler nun von „Triple Ratchet“ sprechen.
SPQR steht nicht für den Senat und das Volk von Rom, sondern für „Sparse Post-Quantum Ratchet“. Als Post-Quanten-Verfahren bezeichnet man kryptografische Protokolle, die herkömmliche Computer ausführen können, die aber – nach aktuellem Stand der Wissenschaft – auch von Quantencomputern nicht zu knacken sind. Aktuell gibt es zwar keine Quantencomputer, die ansatzweise das Potenzial hätten, übliche Verschlüsselungs- und Signaturverfahren zu attackieren. Aber man fürchtet sich von „Harvest now, decrypt later“-Angriffen. Verschlüsselte Daten könnten heutzutage mitgeschnitten werden, um sie in Zukunft, wenn (und falls) Quantencomputer zur Verfügung stehen, zu entschlüsseln.
Signal nutzt schon seit Längerem das Post-Quanten-Protokoll PQXDH (Post-Quantum Extended Diffie-Hellman), doch dieses dient nur dem initialen Schlüsselaustausch beim Start einer Konversation. SPQR erzeugt dagegen neue Schlüssel in laufender Kommunikation, ähnlich den beiden existierenden „Ratchets“, die jedoch nicht sicher vor Quantencomputern sind.
Schutz vor und nach dem Unglück
Diese „Ratschen“ sind Komponenten des Protokolls, die sich sinnbildlich nur in eine Richtung drehen lassen: Chatteilnehmer können damit laufend neue Schlüssel erzeugen, aus denen sich jedoch keine Rückschlüsse auf ältere Schlüssel ziehen lassen. Dadurch können Angreifer in der Vergangenheit aufgezeichnetes Chiffrat nicht entschlüsseln, selbst wenn sie einen (oder beide) Chatpartner kompromittieren und die aktuellen geheimen Schlüssel erbeuten; eine Eigenschaft, die man „Forward Secrecy“ nennt.
Ferner bieten Signals Ratschen „Post-compromise security“: Weil die Geräte von Gesprächspartnern Schlüssel auch interaktiv aushandeln, kann sich die Kommunikation von der Kompromittierung der Chatteilnehmer erholen und zukünftige Nachrichten wieder sicher verschlüsseln. Der Angreifer fliegt sozusagen aus der Leitung, solange er keinen dauerhaften Zugriff auf die Schlüssel der betroffenen Geräte hat. Eine solche Selbstheilung nach einer temporären Kompromittierung ist unter anderem relevant, wenn Angreifer Backups erbeuten. Diese verschaffen ihnen Zugriff auf die zum Backup-Zeitpunkt genutzten Schlüssel. Damit können sie einige von ihnen aufgezeichnete Nachrichten entschlüsseln, auch wenn die Nachrichten aus den Chats gelöscht und nicht im Backup enthalten sind. Doch weil Signals bisherige „asymmetrische Ratsche“ und in Zukunft auch SPQR in der weitergehenden Konversation neue Schlüssel aushandeln, werden die vom Angreifer erbeuteten Schlüssel irgendwann obsolet. Anschließend ist die Kommunikation wieder sicher.
Geschickt aufgeteilt
SPQR ersetzt die asymmetrische Ratsche nicht, sondern kommt zusätzlich zu ihr. Das liegt unter anderem an einer Hürde, die sehr viele Post-Quanten-Verfahren aufweisen: Ihre Schlüssel sind groß, in Signals Fall über ein Kilobyte. Das ist nicht nur sehr viel im Vergleich zu den 32-Byte-Schlüsseln der klassischen asymmetrischen Ratsche, sondern auch sehr viel im Vergleich zur Größe einer typischen Textnachricht. Daher etabliert SPQR nicht mit jedem Richtungswechsel der Kommunikation sofort einen neuen Schlüssel (wie es die klassische asymmetrische Ratsche macht). Stattdessen verteilt SPQR seine Schlüssel über mehrere Nachrichten und hält so den Overhead gering.
Das Protokoll teilt die Schlüssel allerdings nicht einfach in n Teile, sondern nutzt Erasure Codes, um Schlüsselfragmente zu kodieren. Auf diese Weise kann der Empfänger den neuen Schlüssel nutzen, sobald er n Nachrichten mit Schlüsselteilen empfangen hat, egal welche n Nachrichten es sind. Angreifer können daher neue Schlüssel nicht verhindern, indem sie die meisten Nachrichten passieren lassen, aber beispielsweise jede n-te Nachricht blockieren.
In einseitigen Chats, in denen ein Gesprächspartner sehr viel mehr Nachrichten sendet als der andere, löst aber auch diese Aufteilung nicht alle Probleme: Der schweigsame Partner behindert schnelle Schlüsselwechsel, die der gesprächige Chatter gut gebrauchen könnte. Signal modifiziert daher das zugrundeliegende Post-Quanten-Verfahren ML-KEM 768, damit Gesprächspartner schneller selbst Schlüsselfragmente erzeugen und übertragen können und nicht warten müssen, bis sie alle n Fragmente des Gegenübers erhalten haben. Das resultierende inkrementelle Verfahren nennt Signal „ML-KEM Braid“ und hat es als eigenes Protokoll dokumentiert.
Fehlerfrei ausrollen
SPQR und seine Komponenten sind komplexe Verfahren, deren Sicherheitseigenschaften durch Design- wie auch Implementierungsfehler gestört werden können. Ersteres versucht Signal, durch Peer-Review zu verhindern. Die Entwickler verweisen dazu auf zwei Paper bei den einschlägigen Konferenzen Eurocrypt und USENIX, die Teilaspekte des Protokolls präsentieren. Implementierungsfehler will Signal durch aufwendige formale Verifikation vermeiden: Der in Rust geschriebene Code von SPQR wird kontinuierlich und automatisiert in die Sprache F* übersetzt und dann formal verifiziert. F* ist eine funktionale, „beweisorientierte“ Sprache, die sich gut für automatisierte Beweise eignet. So will Signal bei jedem Update des Codes sichergehen, dass die Software nach wie vor alle Annahmen, Randbedingungen und Garantien von SPQR aufrechterhält.
Außerdem beschreibt Signal im Blogpost zu SPQR, wie das Protokoll verteilt werden soll: Initiale SPQR-Daten verschickt der Messenger so, dass ältere Signal-Versionen, die damit nichts anfangen können, die Daten ignorieren. Allerdings erfasst die etablierte Nachrichtenauthentifizierung sehr wohl die Daten, sodass Angreifer sie nicht einfach entfernen und so den Chat SPQR-frei halten können. Neue Clients erlauben am Beginn einer Konversation ein Downgrade: Wenn der Partner kein SPQR spricht, kommt das Protokoll nicht zum Einsatz. Downgrade-Attacken, die solch ein Verhalten ausnutzen, will Signal vermeiden, indem der Messenger das Downgrade nur bei Beginn einer Konversation erlaubt. Wenn SPQR einmal aktiviert ist, muss es weiter genutzt werden. Wenn SPQR-fähige Clients sich ausreichend weit verbreitet haben, will Signal mit einem weiteren Update die Downgrade-Option entfernen und SPQR für alle Chats erzwingen. Verbleibende Chats ohne SPQR sollen dann archiviert werden.
Viele weitere Details zum Protokoll (und einige letztlich verworfene Ideen) stehen in Signals ausführlichem Blogpost zu SPQR. Auch Forscher der Firma PQShield, die an der Protokollentwicklung beteiligt waren, haben über ihre Arbeit an SPQR gebloggt.
(syt)