Dokumentation
Wie Ephemera funktioniert – der technische Hintergrund, erzählt ohne eine Zeile Code.
Die Idee
Ephemera ist ein Chatraum, der sich nichts merkt. Nachrichten werden schon im Browser verschlüsselt und reisen nur als unlesbare Pakete über den Server; der Server führt keine Liste dessen, was gesagt wurde, weil er es schlicht nicht lesen kann. Er ist ein Botengänger, kein Archivar: Er trägt versiegelte Briefe von Tür zu Tür – und behält nichts davon zurück. Wer später kommt, findet einen leeren Raum, denn es gibt nichts zu finden.
Der Schlüssel steckt im Link
Beim Erstellen eines Raums würfelt der Browser 32 Zufallsbytes – das ist der Raumschlüssel. Er wird als textfeste Zeichenfolge in den Ankeranteil der Adresse gelegt, also hinter das # einer Webadresse. Der Ankeranteil hat eine besondere Eigenschaft: Browser übertragen ihn von vornherein nie an einen Server, er bleibt ausschließlich im offenen Tab. Daraus folgen zwei Dinge zugleich: Der Server kann den Schlüssel technisch nicht kennenlernen – und der Einladungslink ist selbst der Schlüssel. Wer ihn besitzt, kann am Raum teilnehmen und mitlesen; geteilter Link heißt immer geteilter Schlüssel. Die Adresszeile zeigt nach dem Beitritt nur noch die Raumnummer: Der Schlüssel steckt weiter nur im geteilten Link und in diesem Tab.
Verschlüsselung jeder Nachricht
Vor dem Versand verpackt der Browser jede Nachricht in einen kleinen Umschlag: Absendername, Text, Zeitpunkt. Dieser Umschlag wird mit AES-256-GCM verschlüsselt – einem anerkannten Standard, der nicht nur Vertraulichkeit bietet, sondern auch erkennbar macht, wenn ein Paket unterwegs verändert oder mit dem falschen Schlüssel geöffnet wird. Jede Nachricht erhält einen eigenen frischen Zufallswert („Initialisierungswert“), damit selbst identische Texte nie identisch aussehen. Der Server sieht beim Weiterreichen nur zufällig wirkende Zeichen. Lässt sich ein Paket nicht öffnen – weil der Schlüssel inzwischen gewechselt wurde oder das Paket beschädigt ist –, erscheint schlicht „[nicht lesbar]“, statt dass die Seite zusammenbricht.
Das Leben eines Raums
Die Raumkennung steht im Adresspfad und ist frei von Geheimnissen: Sie ist nur die Hausnummer. Jeder Raum bekommt seine eigene, einmalige Adresse – und diese Adresse gilt genau einmal. Der Server führt wenig Buch – Kennung, Entstehungszeit, Zahl der aktuell Verbundenen – und das auch nur im Arbeitsspeicher. Ein Raum stirbt wenige Sekunden nach seiner letzten Verbindung (ein kurzer Gnadenblick nur für Sofort-Neuladen und verlorene Verbindungen), oder sofort, wenn der Host ihn zerstört. Danach bleibt seine Adresse für immer verschlossen: Wer den alten Link anklickt, erhält nur die Mitteilung „Raum weg“ – ein Raum lässt sich nicht wiederauferstehen und nicht zweimal öffnen. Höchstens 16 Personen finden Platz, jede Verbindung darf in fünf Sekunden höchstens acht Nachrichten senden, und eine Nachricht zählt höchstens 2.000 Zeichen. Diese Grenzen halten den Raum ruhig und den Betrieb klein.
Die Host-Rolle
Zum Erstellen würfelt der Browser zusätzlich ein Host-Geheimnis, das hinter dem Raumschlüssel im Ankeranteil steht. Es geht niemals im Klartext über die Leitung: Übertragen wird nur eine Einweg-Prüfsumme des Geheimnisses, und gespeichert wird – wenn überhaupt – nur die Prüfsumme dieser Prüfsumme. Der Server kann damit prüfen, ob eine Verbindung die Host-Rolle innehat, kennt aber weder den Host-Schlüssel noch den Wert, der auf der Leitung liegt. Wer die Host-Rolle hat, darf Einzelne rauswerfen, den gesamten Raum zerstören und den Einladungslink neu würfeln.
Link neu würfeln
Die Reroll-Funktion dreht den Raumschlüssel um: Das Host-Gerät würfelt einen neuen, verpackt ihn in eine ganz normale, verschlüsselte Nachricht und schickt ihn durch den alten Kanal. Alle Anwesenden tauschen unbemerkt um, und die Adresse im Tab wird angepasst – „Link kopieren“ liefert danach den neuen. Ein bereits verteilter alter Link wird dadurch wertlos für die Zukunft: Wer später mit einem alten Link kommt, sieht nur „[nicht lesbar]“ und schreibt für die anderen ebenfalls nur „[nicht lesbar]“. Der Raum behält seine Kennung, aber das Schloss wurde ausgewechselt.
Was der Server sieht – und was nicht
Sieht: die Raumkennung, Entstehungs- und Verbindungszeitpunkte, die Zahl der Teilnehmenden, die frei gewählten Nicknamen, die Einweg-Prüfsumme der Host-Rolle und die verschlüsselten Pakete im Augenblick der Weiterleitung.
Sieht nie: den Ankeranteil von Links (also Raumschlüssel und Host-Geheimnis), den Inhalt irgendwelcher Nachrichten, und nichts von alledem hält es fest – es gibt keine Datenbank, keine Datei und keinen Verlauf. Auch ein mit gerichtlicher Anordnung kommender Besucher geht mit leeren Händen, weil nicht vorhandene Nachrichten nicht nachgeliefert werden können.
Grenzen – ehrlich benannt
- Geteilter Link = geteilter Schlüssel. Ephemera ist kein Signal-Protokoll: Es gibt keine persönlichen Schlüssel, keine Teilnehmersperre und keine Vorwärtsgeheimnis-Sicherung. Vertraue einem Raum so weit wie der Person, der du den Link gibst.
- Das Ende der Verschlüsselung ist der Browser. Wenn auf derselben Domain Code eingeschleust wird (Cross-Site-Scripting), kann mitgelesen werden. Deshalb verzichtet Ephemera konsequent auf externe Abhängigkeiten und arbeitet mit einer strengen Inhalts-Sicherheitsrichtlinie.
- Metadaten bleiben sichtbar. Der Server weiß nicht, was gesagt wird, aber wer da ist, wann, und wie viel.
- Anonymität schützt vor manchem, nicht vor allem. Ohne Konten gibt es kaum Sperrmöglichkeiten außer Mengenbegrenzung und Rauswurf aus dem Raum.
- Der Bildschirm gehört dazu. Wer den Rechner oder den offenen Tab teilt, teilt den Klartext.
Über Tor nutzen
Dieser Chat ist zusätzlich als Tor-Onion-Dienst erreichbar: oi6pqcso5uv4g3knp4mjnbaauj6by344pkalumbbt752zr7mn5n3i3ad.onion/chat (der Link steht auch im Fuß der Startseite).
So geht’s: Tor Browser herunterladen – ausschließlich von der offiziellen Quelle torproject.org –, starten, warten, bis sich das Netz verbunden hat, und dann den Onion-Link in die Adresszeile einfügen. Der Rest verhält sich genau wie im gewöhnlichen Browser: Raum öffnen, mit dem vollen Link (Schlüssel hinter dem #) hinein, schreiben, Emoji-Leiste, Kopier-Links – alles wie gewohnt, nur spürbar langsamer, weil die Verbindung über mehrere Relays um den Globus läuft.
Was es bringt: Deine IP-Adresse bleibt beim Hoster unbekannt – im Server kommt nur ein Tor-Ausgang an, und die Chat-Seiten werden auf dem Onion-Weg nicht geloggt. Die Adresszeile bleibt auch hier schlüssellos, der Raumschlüssel lebt weiter nur im geteilten Link und im Tab.
Was es nicht bringt: Auch über Tor sieht der Chat-Server, dass jemand im Raum ist, welche Nicknames anwesend sind und wie viel geschrieben wird. Tor macht dich im Raum nicht anonym und ist kein Allheilmittel – und wer den Raum-Link hat, kann mitlesen, ob über Tor oder nicht.
Betrieb
Alles kommt von derselben Domain: keine Nachschub-Netze (CDNs), keine Schrift-Importe, keine Werbe- oder Analyseschnittstellen. Eine strenge Inhalts-Sicherheitsrichtlinie verbietet dem Browser von vornherein, Code von anderwo zu laden. Der Chat-Dienst läuft als schlichtes Schwesternprojekt des Text-MUDs Falkenmoor auf demselben Server – bescheiden genug, um leicht verständlich zu bleiben, und flüchtig genug, um nichts zu versprechen, das er nicht halten kann.
Fragen dazu? Impressum und Datenschutzerklärung stehen bereit.