You can also reach us over Tor:5tz2mhkg25tgniifrtxpvzf6xfnpogckdt2j2ele7aqtzsr2nvjbbgyd.onion

Viele unabhängige Relays in einem Netzwerk

Aphotic-Relays reden nie miteinander. Das Routing übernimmt deine App, und dadurch funktionieren Sealed Sender, Ende-zu-Ende-Verschlüsselung und anonyme Lizenzierung auf jedem Relay gleich. Unten siehst du, wie eine Nachricht von einem Relay zum anderen kommt.

Adressen

Jeder Account hat einen Home-Relay

Dein Home-Relay ist der Server mit deinem Postfach: deine öffentlichen Schlüssel und die Warteschlange mit Nachrichten an dich, sonst nichts. Nachrichten an dich warten nur dort. Bei den meisten ist das der Haupt-Relay, und unter Einstellungen > Netzwerk kannst du später auf den Relay eines Betreibers umziehen.

Deine Adresse im Netzwerk ist deine ID plus die Onion-Adresse deines Home-Relays. Die ID leitet sich aus deinem eigenen Verschlüsselungsschlüssel ab. Deshalb ist sie auf jedem Relay dieselbe, und kein anderer kann sie für sich registrieren. Dein Kontakt-QR enthält beides, und damit erreicht dich ein Freund von jedem Relay aus.

Adresse = deine ID + die .onion deines Home-Relays

Zustellung über Relays hinweg

Deine App schickt direkt an deren Relay

Schreibst du jemandem auf einem anderen Relay, baut deine App selbst einen Tor-Weg zum Home-Relay des Empfängers und legt die versiegelte Nachricht dort ab, so wie sie es bei deinem eigenen Relay tut. Der empfangende Relay kann deine Nachricht nicht von denen seiner eigenen Nutzer unterscheiden: Sealed Sender verbirgt den Absender, und der Lizenznachweis ist wie überall ein anonymer Token.

Dein eigener Relay liegt nicht auf dem Weg. Er sieht nie, dass die Nachricht existiert, an wen sie ging oder wann. Auf der Empfängerseite liest die App deines Freundes wie immer ihren eigenen Relay.

ZeitRelaysverbindensich nieDuHome: RelayARelay Adein HomeRelay Bderen HomeEin FreundHome: RelayBeinen anonymen Tokeneinlösen: lizenziertfür die Stunde1deren öffentlicheSchlüssel holen (nurbeim ersten Mal)2die versiegelteNachricht abliefern3deren App holt sie vomeigenen Relay ab4Relay A siehtnichts
ZeitRelays verbinden sich nieDuHome: Relay ARelay Adein HomeRelay Bderen HomeEin FreundHome: Relay Beinen anonymen Token einlösen:lizenziert für die Stunde1deren öffentliche Schlüssel holen(nur beim ersten Mal)2die versiegelte Nachrichtabliefern3deren App holt sie vom eigenenRelay ab4Relay A sieht nichts
Ein Tor-Weg, genauso lang wie eine Nachricht an deinen eigenen Relay. Relay A liegt nicht darauf.
Tor-Weg, wie bei einer lokalen Nachricht
1

Tor-Weg, wie bei einer lokalen Nachricht

Verbindungen zwischen Relays
0

Verbindungen zwischen Relays

davon sieht dein eigener Relay
0

davon sieht dein eigener Relay

Die Designentscheidung

Warum die Relays nicht miteinander reden

Der naheliegende Weg ist der von E-Mail und Matrix: Dein Server nimmt die Nachricht an und leitet sie an den anderen weiter. Wir haben das geprüft und verworfen, vor allem aus Datenschutzgründen. Bekäme Relay B deine Nachricht von Relay A, wüsste er, dass der Absender einer der Nutzer von Relay A ist, und bei einem Relay mit fünf Nutzern ist das fast schon dein Name. Schickt deine App direkt, erfährt Relay B nur, dass irgendein lizenzierter Nutzer gesendet hat. Der verborgene Absender versteckt sich dann unter sämtlichen Nutzern im Netzwerk.

Weiterleitung hätte noch mehr Folgen: Jeder Betreiber müsste den Lizenzprüfungen aller anderen vertrauen, eine zweite Kopie deiner Nachricht läge auf einem Server, den du nie gewählt hast, jeder Relay bräuchte eine Eingangstür, die er verteidigen muss, und jede Nachricht liefe zweimal durch Tor. Client-Routing kommt ohne all das aus und brauchte keine neue Infrastruktur.

  • Dein eigener Relay sieht nie, wem du auf anderen Relays schreibst
  • Der empfangende Relay kann eine Nachricht von anderswo nicht von einer lokalen unterscheiden
  • Kein Betreiber muss einem anderen Betreiber vertrauen
  • Ein Tor-Weg pro Nachricht, wie bei einer lokalen

Gruppen und Communities

Gruppen über mehrere Relays

Technisch ist eine Gruppennachricht eine versiegelte Nachricht pro Mitglied, und jede Kopie geht an den Home-Relay dieses Mitglieds. Deshalb funktioniert auch eine Gruppe mit Leuten auf drei Relays. Was alle Mitglieder gemeinsam haben, also Mitgliederliste und Einstellungen, liegt auf dem Relay, auf dem die Gruppe erstellt wurde. Der Nachrichten-Stream einer Community liegt genauso auf ihrem Relay.

Um an einer Gruppe oder Community teilzunehmen, die auf einem fremden Relay liegt, registriert deine App dort eine Gast-Identität: dieselben Schlüssel und dieselbe ID wie zu Hause, mit eigenem Login für diesen Relay und einem eigenen, getrennten Tor-Circuit, damit Gast-Verkehr nie eine Verbindung mit deiner Home-Identität teilt. An einen Gast wird nie etwas zugestellt. Dein Postfach bleibt zu Hause, und im Hintergrund beobachtet deine App genau einen Server. Eine Community auf einem fremden Relay wird nur gelesen, solange die App offen ist, und darauf weist dich die App auf dem Bildschirm hin.

Umzug, und wenn ein Relay schließt

Deine Gespräche liegen auf euren Telefonen

Den Verschlüsselungszustand eines Gesprächs speichern nur die beiden Telefone. Darum kannst du umziehen: Einstellungen > Netzwerk registriert dieselbe Identität auf einem neuen Relay, sagt jedem Kontakt über dessen eigenen Relay, dass dein Home sich geändert hat, holt weiter ab, was am alten Relay noch wartete, und löscht die alte Registrierung, sobald sie niemand mehr braucht. Kontakte, die offline waren, bekommen die Ankündigung später erneut, und jeder Chat geht dort weiter, wo er aufgehört hat.

Will ein Betreiber schließen, kann er ein Datum ankündigen, das deine App als Aufforderung zum Umzug anzeigt, und den Relay in einen Draining-Modus schalten: Er nimmt dann keine neuen Nachrichten mehr an und liefert die vorhandenen weiter aus. Verschwindet ein Relay ohne Vorwarnung, registrierst du dich mit denselben Schlüsseln woanders und kündigst von dort das neue Home an. Den alten Relay brauchst du dafür nicht. Verloren gehen höchstens sieben Tage Warteschlange, so viel wie nach einer Woche offline.

Abwägungen

Was das Mesh für deine Privatsphäre bedeutet

Unter allen verborgen: Sealed Sender versteckt dich unter allen Nutzern des Netzwerks, und dein eigener Relay erfährt nichts über Nachrichten, die du anderswohin schickst.

Timing: Der Relay, der ein Postfach hält, sieht, wann Nachrichten darin landen, und kann diese Zeitpunkte mit anderer Aktivität abgleichen, die er beobachtet. Diese Grenze hat jedes Design, bei dem ein Server dein Postfach hält.

Gruppen-Hosts: Der Relay, der eine Gruppe hostet, sieht die IDs der Mitglieder und auf welchen Relays sie zu Hause sind. Für den Relay, der eine Community hostet, gilt dasselbe.

Nur von der App durchgesetzt: Ein Betreiber kann seinen Relay als einen markieren, der keine Nachrichten von anderen Relays annimmt. Die offizielle App hält sich daran und sagt dir, warum eine Nachricht nicht rausgeht. Auf dem Server ließe sich das nur durchsetzen, indem man Absender identifiziert, und genau dagegen gibt es Sealed Sender.

Relay-Wahl: Deinen Home-Relay wählst du bei der Einrichtung der App, und unter Einstellungen > Netzwerk kannst du später umziehen.

Eine Lizenz für jeden Relay, erreichbar von allen

Betreibe einen Relay für deine Community oder such dir einen aus. Deine Freunde erreichen dich so oder so.

This site sets no cookies and does not track you. On your device it remembers your language choice and which notices you closed, and keeps checkout data only while the tab is open. Privacy policy