Die Älteren unter euch können sich vielleicht noch an die Key-Signing-Parties in den frühen 2000er-Jahren erinnern. Dort hat man sich persönlich getroffen, um GPG-Schlüssel durch gegenseitigen Abgleich zu bestätigen. Diese Treffen waren Teil des Web-of-Trust. Was heute nur noch selten stattfindet, wird beim Messenger Threema gelebt.
Zu jedem Kontakt gibt es im Threema-Messenger drei Vertrauensstufen, die durch ein Ampel-Schema dargestellt werden. Über die Darstellung kann man streiten. Ich hätte eine normale Ampel (grün, gelb, rot) gewählt, um die Vertrauensstufen abzubilden. Vermutlich haben sich die Designer bei Threema etwas dabei gedacht, als sie ihr Ampel-Schema entworfen haben (ein Rot, zwei Orange, drei Grün). Egal, im letzten Bild seht ihr, welche Bedeutung die drei Ampelphasen haben.
Um einen Kontakt auf "Dreigrün" zu stellen, ist ein persönliches Treffen vorgesehen, bei dem die beiden Personen gegenseitig ihre QR-Codes scannen. Die QR-Codes und die Scan-Funktion werden in der Threema-App zur Verfügung gestellt (die Desktop-Anwendung hinkt noch sehr hinterher). Ich sage es mal so: Im QR-Code steckt der Public-Key für jeden Kontakt.
Dazu habe ich mehrere Gedanken:
- Ob die seltsame Ampel-Darstellung der Weisheit letzter Schluss ist, sei dahingestellt.
- Die Generation "WhatsApp" wird diese Funktion eher als Zumutung empfinden bzw. diese ignorieren.
- Das Ampel-Schema schafft eine optische Aufmerksamkeit für die Vertrauensstufe, was ich gut finde.
Ein Problem sehe ich beim gegenseitigen Scannen des QR-Codes. Dieser Abgleich setzt voraus, dass sich zwei Kontakte tatsächlich und in nützlicher Zeit physisch treffen. Bei Familie und Freunden mag das funktionieren (nein, es funktioniert nicht, weil man bei der Geburtstagsfeier anderes im Sinn hat, als Threema-Codes zu scannen). Bei entfernten Kontakten (Neuseeland) ist die QR-Party fast unmöglich.
Deshalb habe ich mir überlegt, ob der Schlüsselaustausch (QR-Code scannen) auch ohne tatsächliche Begegnung funktionieren kann. Man könnte sich den QR-Code gegenseitig über einen anderen Kanal zuschicken. Vielleicht via E-Mail (Postkarte)? Damit das sicher funktioniert, müssen zwei Bedingungen erfüllt sein:
- Minimale Metadaten
- Anonymität des QR-Codes
Beim Versenden der QR-Codes über E-Mails, müssen die Metadaten auf das absolut Notwendige reduziert werden, nämlich die Absender- und Empfänger-Adresse und was sonst noch so mit einer E-Mail verbunden ist: Server, Zeitstempel, usw. Was keinesfalls enthalten sein darf, sind ein Betreff und ein Text. Nichts, was darauf hinweist, dass ein Threema QR-Code verschickt wird. Das Bild des Codes muss natürlich in der E-Mail oder als Anhang vorhanden sein.
Das funktioniert aber nur, wenn der QR-Code keine Hinweise auf den Messenger enthält. Um das zu überprüfen, habe ich mir den Inhalt eines Threema QR-Codes angesehen.
Darin ist dieser Text codiert:
3mid:CZF3A84T,18c6383758a524750ce082549f1850a25b3673cae11e2a5de3c44a46149e8243
Hinweis: Sowohl den QR-Code als auch den Schlüssel habe ich verändert.
Kann man daraus auf einen Threema-Schlüssel schliessen? Die überraschende Antwort lautete: Ja, man kann daraus auf einen Threema-Schlüssel schliessen. Ich musste nur drei Fragen an Copilot schicken, um diesen Code mit hoher Wahrscheinlichkeit Threema zuordnen zu können. Das waren meine Fragen (die Antworten erspare ich euch):
- Hier ist der Inhalt eines QR-Codes: [der Code]. Erlaubt dieser Code Rückschlüsse auf seine Herkunft?
- Ich weiss, dass der Code auf einen bestimmten Messenger hinweist. Kannst du aus dem Code einen konkreten Messenger herausfinden?
- Deine Analyse ist falsch. Es handelt sich nicht um Facebook. Nenne die nächsten drei wahrscheinlichen Messenger, von denen dieser QR-Code stammen könnte.
Die Antwort auf meine dritte Frage lautete (gekürzt und verändert):
1. Threema
QR-Code-Nutzung: Threema verwendet QR-Codes zur Verifizierung von Kontakten und
zur sicheren Verbindung zwischen Nutzern. Jeder Nutzer erhält eine Threema-ID,
die ähnlich wie CZF3AF5T aussieht.
2. Signal
QR-Code-Nutzung: Signal nutzt QR-Codes zur Verifizierung von Kontakten
und zur sicheren Verbindung.
Bingo: Es handelt sich mit hoher Wahrscheinlichkeit um einen Threema-Schlüssel und in der E-Mail stehen die Absender-Daten. Damit steht die Tür offen für einen Man-in-the-Middle-Angriff.
Fazit
Es ist keine gute Idee, einen Threema-Schlüssel über einen anderen Kanal zu versenden. Diese Gefahr kann man umgehen, indem man dem von Threema vorgesehenen Prozess folgt (persönlicher Schlüsselabgleich). Dennoch stelle ich mir zwei konzeptionelle Fragen:
- Wie soll das Vertrauen bei entfernten Kontakten hergestellt werden?
- Warum lässt sich der Threema-Schlüssel so einfach als Threema-Schlüssel erkennen?
Ich bin gespannt, was Threema dazu sagt.
Titelbild: https://pixabay.com/photos/traffic-light-signal-traffic-street-876047/
Quelle: https://threema.com/de
Man kann es doch auch über eine verschlüsselte Video-Talk Verbindung machen. Dort zeigt jeder in die Webcam den QR-Code, somit ist die physische Komponente nicht ganz gegeben, aber man kann so, denn vertraulichen öffentlichen Schlüssel übergeben.
Falls das zu schwer sein sollte einfach einen GPG-Schlüssel-Paar erzeugen und per verschlüsselter Email, den Code verschicken, dann kann auch kein dritter das lesen.
Bei beiden Varianten sollte man die Person schon einmal in Natura gesehen haben oder gehört. Aber auch für diesen speziellen Fall gibt es eine Musterlösung: Man hat einfach einen zweiten Threema Account, einen normalen für seine vertrauten Kontakte und den anderen für die Leute, die noch nicht zum engen Kreis gehören.
So, gestalte ich die Kommunikation zum einrichten von Threema Accounts. Somit ist mein normaler Account immer sauber. Für die Paranoiden unter euch, dass kann man noch auf weitere Accounts ausbreiten:
Meiner Meinung nach ist Threema das beste Kommunikationsmittel für das Internet was ich kenne. Denn mein Bruder war mal auf einer Aida-Schiffsreise und Threema konnte man dort kostenlos nutzen ohne sich Anzumelden. Einfach krass - aber er hatte das Internet sorglos Paket, aber es war möglich, was man bis dahin noch nicht wusste.
Das Ampel-System ist gut wie es ist, weil ich habe immer den Drang alles auf Grün zu bekommen, dass es 100% Fertig ist. Kleine Zwangsneurose von mir.
Ich habe schon zwei meiner Threema-Kontakte über einen Video-Call verifiziert. Da ich sie persönlich kenne, weiss ich, wen ich da vor mir habe und dass es keine KI ist. Den QR-Code vom Handy haben wir in die Webcam gehalten und vom Monitor abgescannt. Hat super geklappt.
Mal ganz davon abgesehen, ob man mit gelb nicht auch gut leben kann, wäre mein erster Impuls eine Videokonferenz
Brainstorming: Ich denke es ist nie eine gute Idee einen Schlüssel per "Post" zu verschicken. Und somit stellt sich die Frage: Wie kann man dann einen Schlüssel verschicken? Kurierdienst? Sicherheitsfirma? Und das dann umgewandelt auf dieses Szenario wäre vielleicht: Ein Bild des QR-Codes erstellen, dieses via GPG verschlüsseln und dieses dann wiederum via Passwortgeschütztem Nextcloud Link verschicken? Dann bleibt jedoch die Frage: Wie kommt der Link sowie die beiden Passwörter zum Benutzer. Und ist das ganze nicht viel zu kompliziert? :-)
Es handelt sich bei dem QR-Code ja nicht um einen privaten Schlüssel.
Na klar, Videocall. Dass mir das nicht eingefallen ist.