Kontakte verbinden
Es gibt in TalX kein Verzeichnis, in dem man jemanden suchen könnte. Kontakte entstehen ausschließlich dadurch, dass zwei Geräte einmal ihre öffentlichen Schlüssel austauschen. Dafür gibt es drei Wege.
QR-Code
Abschnitt betitelt „QR-Code“Ein Gerät zeigt seinen Code, das andere scannt ihn. Eine Richtung genügt: Der Scanner meldet sich anschließend authentifiziert beim Gescannten zurück, sodass auf beiden Geräten ein Kontakt entsteht.
Geteilt wird dabei nur der öffentliche Schlüssel. Aus ihm lässt sich nichts entschlüsseln – er ist genau dazu da, öffentlich zu sein.
Beide Handys aneinanderhalten. Beim Gegenüber genügt der entsperrte Bildschirm, es muss nichts angetippt werden. Technisch läuft der Austausch über NDEF; TalX bringt dafür einen eigenen Kartenemulations-Dienst mit.
Per Code, aus der Ferne
Abschnitt betitelt „Per Code, aus der Ferne“Der interessanteste Weg – für den Fall, dass ihr euch nicht sehen könnt. Eine Seite zeigt einen kurzen Code, die andere gibt ihn zusammen mit einem geteilten Handle ein.
Dahinter steckt J-PAKE (RFC 8236): Aus dem kurzen Code entsteht ein starker, beidseitig authentifizierter Schlüssel. Erst danach wandert der eigentliche Verbindungs-Datensatz – verschlüsselt mit genau diesem Schlüssel.
Der entscheidende Punkt: Ein Angreifer, der die Vermittlung kontrolliert, bekommt pro Versuch genau einen Rateversuch. Einen Mitschnitt später offline durchzuprobieren ist prinzipbedingt unmöglich. Genau deshalb reicht hier ein kurzer Code, den man am Telefon vorlesen kann.
Der Einmal-Link – seit 0.84.2 nur noch empfangsseitig
Abschnitt betitelt „Der Einmal-Link – seit 0.84.2 nur noch empfangsseitig“Bis Version 0.84.1 gab es unter „Verbinden“ eine vierte Möglichkeit: einen verschlüsselten Einmal-Link erzeugen und über einen beliebigen Kanal verschicken. Diese Schaltfläche ist entfernt.
Was das genau bedeutet:
- TalX erzeugt keine Pairing-Links mehr.
- TalX nimmt sie weiterhin entgegen. Ein Link, den jemand früher verschickt hat, öffnet nach wie vor den Verbindungsvorgang.
Der Grund liegt in der Natur der Sache: Ein Link trägt das Kopplungsmaterial in sich und ist damit nur so sicher wie der Kanal, über den er läuft. Wer ihn in einem mitlesbaren Chat weitergibt, verschenkt genau die Absicherung, die QR-Code, NFC und der J-PAKE-Code bieten. Die drei verbliebenen Wege haben dieses Problem nicht.
Danach: die Sicherheitsnummer
Abschnitt betitelt „Danach: die Sicherheitsnummer“Alle vier Wege stellen sicher, dass ihr einen Schlüssel ausgetauscht habt. Ob es der richtige war, beweist erst die Sicherheitsnummer.
Im Chat auf das Schild-Symbol tippen, die Zahlen mit dem Gegenüber über einen zweiten Kanal vergleichen und bei Übereinstimmung als verifiziert markieren. Der Kontakt trägt danach den Vermerk „verifiziert“.
Ändert sich die Zahl später unerwartet, warnt TalX im Chat. Das ist meistens harmlos – die Gegenseite hat die App neu installiert –, kann aber auch ein Abhörversuch sein. Vergleicht dann erneut.
Ein zweites eigenes Gerät
Abschnitt betitelt „Ein zweites eigenes Gerät“Unter Profil → Weiteres Gerät verknüpfen zeigt das vorhandene Gerät einen Code, den das neue scannt. Auch hier läuft zuerst J-PAKE; erst danach wandert die Identität samt Zustand – verschlüsselt mit dem ausgehandelten Schlüssel.
Danach sind beide Geräte dieselbe Identität. Zwei ehrliche Hinweise dazu:
- Für die Verknüpfung wird der private Identitätsschlüssel exportiert und übertragen. Das ist das Kronjuwel. Es geschieht ausschließlich nach erfolgreichem J-PAKE, aber es geschieht. Nenne den Code nur deinem eigenen Gerät.
- Beide Geräte müssen Android sein. Ein Desktop- oder Web-Begleiter existiert nicht.
Jemanden blockieren
Abschnitt betitelt „Jemanden blockieren“Kontakt-Info → Blockieren, zweistufig bestätigt, damit ein Fehlgriff nichts anrichtet. Im Chat steht danach statt des Eingabefeldes ein Hinweis mit einem Weg zurück.
Von einer blockierten Person wird nichts mehr angenommen: keine Nachrichten, keine Anhänge, keine Anrufe – es klingelt nicht einmal –, keine Profil- oder Präsenzangaben. Auch in gemeinsamen Gruppen kommen ihre Inhalte nicht mehr an. Umgekehrt geht nichts mehr an sie raus, und was noch in der Warteschlange lag, fliegt beim Blockieren heraus. Der Verlauf bleibt – Blockieren ist kein Löschen.
Zwei Dinge laufen bewusst weiter
Abschnitt betitelt „Zwei Dinge laufen bewusst weiter“Das wirkt zunächst widersprüchlich, hat aber einen Grund:
- Empfangsbestätigungen gehen weiter raus. Ein ausbleibendes ACK wäre ein Signal: Die Gegenseite sähe ihre Nachrichten dauerhaft auf „wartet“ stehen und wüsste damit Bescheid. Genau das soll eine Blockierung nicht leisten – wer jemanden blockiert, will Ruhe und keine Einladung, auf andere Kanäle auszuweichen. Nebenbei liefe deren Warteschlange sonst tagelang mit Wiederholungen weiter.
- Das Präsenz-Lebenszeichen bleibt. Schlagartig zu verstummen wäre ebenso verräterisch.
Die Regel dahinter: Unterdrückt wird, was unsichtbar bleibt; beibehalten wird, was auffallen würde. Profil-Aktualisierungen und alles inhaltlich Neue werden nicht mehr zugestellt – beides kann die Gegenseite nicht bemerken.
Eine Blockierung überlebt ein Neu-Pairing
Abschnitt betitelt „Eine Blockierung überlebt ein Neu-Pairing“Auch mit neuem Schlüssel. Sonst wäre sie wertlos: Wer blockiert wurde, müsste bloß neu installieren und sich erneut koppeln lassen. Die Blockierung gilt der Person, nicht dem Schlüssel – anders als Verifikation, Post-Quanten-Geheimnis und Prekey, die bei einem Schlüsselwechsel bewusst verworfen werden.
Aufheben geht jederzeit über dieselbe Stelle.
Kontakt wieder loswerden
Abschnitt betitelt „Kontakt wieder loswerden“Ein Kontakt lässt sich samt vollständigem Chatverlauf vom Gerät entfernen. Dabei werden auch seine Mitgliedschaften und sein Schlüsselmaterial in allen Gruppen mit aufgeräumt – sonst bliebe ein „Geistermitglied“ zurück, an das jede weitere Gruppenzustellung dauerhaft scheitern würde.
