Zurück Wie es funktioniert

Der Server stellt vor — mehr nicht.

Germimi läuft auf einem einzelnen Rechner in Nürnberg. Er bringt zwei Geräte zusammen und tritt dann zurück: Nachrichten, Dateien, Sprache und Video laufen direkt zwischen den Browsern. Was das heißt — und was der Server trotzdem mitbekommt — steht hier.

Zwei getrennte Wege

Alles, was Germimi tut, nimmt einen von beiden. Der Unterschied ist der ganze Kern.

über den ServerVermittlung
Gerät A→germimi.de→Gerät B
  • Wer ist wo — welche öffentlichen Räume offen sind, wie viele Leute drin sind, mit welchem Anzeigenamen.
  • Verbindungsdaten — technische Beschreibungen (SDP, ICE), wie sich zwei Geräte erreichen können.
  • Lebenszeichen — alle acht Sekunden ein kurzes Signal, damit die Online-Liste stimmt.
nie über den ServerDas Gespräch
Gerät A⟷ verschlüsselt ⟷Gerät B
  • Nachrichten über einen direkten Datenkanal.
  • Dateien, Bilder, Sprachnachrichten in Stücken über denselben Kanal.
  • Ton und Video als verschlüsselte Medienspuren.
  • Einladungen in private Räume — der Server erfährt nicht einmal, dass es sie gibt.

Was ankommt — und was nie ankommt

Links alles, was den Rechner in Nürnberg erreicht. Rechts, was ihn nie berührt.

Das kommt an

Ausschließlich im Arbeitsspeicher. Keine Datenbank, keine Protokolldateien.

  • Namen öffentlicher RäumeDamit die Lobby zeigen kann, was offen ist.
  • Selbstgewählte AnzeigenamenFrei erfunden, an nichts gebunden — nur bei öffentlichen Räumen.
  • Zufallskennungen der GeräteGelten nur für diese eine Sitzung.
  • VerbindungsdatenWerden ungeöffnet weitergereicht. Enthalten keinen Gesprächsinhalt.
  • IP-Adressen auf NetzwerkebeneUnvermeidlich, sonst käme keine Antwort an. Sie werden nirgends aufgeschrieben — geprüft bei jedem Ausrollen, siehe unten.
  • Wer gerade relayed wirdNur wenn die Direktverbindung scheitert und der Umschlagplatz einspringt. Steht im Arbeitsspeicher, endet mit der Verbindung.
Das kommt nie an

Nicht weil es gelöscht wird, sondern weil es diesen Weg nie nimmt.

  • Jede NachrichtText läuft ausschließlich direkt.
  • Dateien, Fotos, SprachnachrichtenWerden zerlegt, direkt übertragen, beim Empfänger zusammengesetzt.
  • Ton und Bild aus AnrufenFließen zwischen den Geräten, nie durch Nürnberg.
  • Geheime RäumeIhre Kennung steht nur in der Adresszeile der Beteiligten.
  • Der GesprächsverlaufLiegt allein im Speicher deines Browsers.

Der Ablauf, wenn zwei sich treffen

Diese Reihenfolge ist zwingend — jeder Schritt braucht den vorherigen.

  1. Raum betreten

    Dein Browser meldet sich beim Server und nennt Raum, Zufallskennung und Anzeigenamen.

    über den Server
  2. Vorstellen

    Der Server antwortet mit den Kennungen der anderen im Raum.

    über den Server
  3. Angebot und Antwort

    Die Browser tauschen aus, welche Formate und Verschlüsselung sie können. Der Server reicht das ungeöffnet durch.

    über den Server
  4. Wege sammeln

    Beide erfragen ihre öffentliche Adresse und tauschen mögliche Verbindungswege aus.

    über den Server
  5. Direktleitung steht

    Die Browser einigen sich auf einen Weg und handeln die Schlüssel untereinander aus — der Server sieht sie nicht.

    direkt
  6. Reden

    Ab hier fließt alles direkt: Text, Dateien, Sprache, Video.

    direkt

Wo das läuft

Ein Server, zwei Container, kein Speicher.

AnbieterHetzner Cloud
StandortNürnberg, DE
Maschine2 vCPU · 4 GB
Offene Türen22 · 80 · 443
caddy Nimmt alles von außen an, holt und erneuert das Zertifikat selbst, protokolliert bewusst nichts und entfernt die Herkunftskopfzeilen, bevor er weiterreicht.
signaling Rund 260 Zeilen Go. Hält Räume und Anwesenheit im Arbeitsspeicher und reicht Verbindungsdaten weiter. Ohne Sonderrechte, mit schreibgeschütztem Dateisystem.
postgres Beim Umstieg auf das Direktmodell entfernt — es gibt nichts mehr zu speichern.
redis Ebenfalls entfernt. Nachrichten müssen nicht mehr zwischen Servern verteilt werden.

Was schützt, wenn man dem Server nicht traut

Verschlüsselung auf dem Netzweg hilft gegen Mitleser unterwegs. Sie hilft nicht gegen den, der die Vermittlung betreibt. Dafür gibt es zwei Dinge.

Sicherheitsnummer

Beim Verbindungsaufbau tauschen die Browser Fingerabdrücke ihrer Schlüssel aus — über den Server. Er könnte sie theoretisch vertauschen und sich dazwischensetzen.

  • Beide Seiten rechnen aus denselben zwei Fingerabdrücken eine sechsteilige Zahl aus. Sie steht unter dem Namen in der Teilnehmerliste.
  • Vorlesen und vergleichen. Stimmt sie überein, sitzt niemand dazwischen — auch der Betreiber nicht.
  • Wer sich einschaltet, muss eigene Schlüssel verwenden und bekommt zwangsläufig eine andere Zahl.
Prüfung bei jedem Ausrollen

Die Zusage „keine IP-Protokolle“ war einmal unbemerkt gebrochen: eine Regel deckte den Auffang-Server für Anfragen an die nackte IP nicht ab.

  • Jedes Ausrollen ruft die Seite und die nackte IP auf und durchsucht danach alle Protokolle nach Adressen.
  • Findet sich etwas, bricht die Meldung sichtbar heraus statt still zu bleiben.
  • Zwei unabhängige Ebenen: Abschaltung im Server selbst, und der Container gibt ohnehin nichts mehr heraus.

Was das nicht leistet

Ohne diesen Abschnitt wäre der Rest Werbung.

Der Auslieferungsweg bleibt eine Vertrauensfrage

Der Server liefert den Code aus, der verschlüsselt. Wer ihn kontrolliert, könnte veränderten Code ausliefern — und dann hilft auch die Sicherheitsnummer nicht, weil derselbe Code sie berechnet. Das ist die Grenze jeder Web-Anwendung; anders lösen es nur signierte, überprüfbare Programme zum Installieren.

Metadaten bleiben sichtbar

Wer wann in welchem öffentlichen Raum ist, geht durch den Server. Verborgen ist der Inhalt, nicht die Tatsache des Gesprächs.

Nicht jede Verbindung kommt zustande

In Mobilfunk- und Firmennetzen scheitert die Direktverbindung häufig. Solange kein Vermittlungsserver für diese Fälle läuft, finden sich diese Leute nicht.

Kleine Runden

Jeder ist mit jedem verbunden. Für Video heißt das etwa vier bis fünf Personen, für reinen Text deutlich mehr.

Kein Verlauf für Abwesende

Wer nicht da ist, bekommt nichts mit. Es gibt keine Stelle, die Nachrichten aufbewahrt — gewollt, aber ein Verzicht.