So funktioniert tosstome
Zuletzt geprüft
tosstome ist ein kleiner Dienst auf Cloudflare Workers plus eine Webseite. Der Server bringt Geräte miteinander in Kontakt und leitet nur dann Daten weiter, wenn es nicht anders geht. Dateien speichert er nie.
1. Sich finden
Wenn du die Seite öffnest, verbindet sich der Browser per WebSocket mit dem Server. Geräte, deren Verbindungen von derselben öffentlichen IP-Adresse kommen, was meist dasselbe Heim- oder Büronetz bedeutet, kommen in dieselbe Gruppe und erscheinen in der Liste „In diesem Netzwerk“ des jeweils anderen. Die Adresse wird gehasht, bevor sie verwendet wird. Für Geräte in verschiedenen Netzwerken stellt ein 6-stelliger Code sie in eine eigene, temporäre Gruppe.
2. Direkt verbinden
Wenn du ein Gerät antippst, tauschen beide Seiten über den Server WebRTC-Verbindungsdaten aus und versuchen, einen direkten Datenkanal zu öffnen. Dabei nutzen sie den STUN-Dienst von Cloudflare, um herauszufinden, wie sie sich durch Heimrouter hindurch erreichen. Ein direkter WebRTC-Kanal wird von den Browsern Ende-zu-Ende verschlüsselt (DTLS).
3. Ausweichen auf ein Relay
Manche Netzwerke blockieren direkte Verbindungen: Firmen-Firewalls, Gast-WLAN, Mobilfunkanbieter mit Carrier-grade NAT. Kommt der direkte Kanal nicht innerhalb weniger Sekunden zustande, verbinden sich beide Seiten stattdessen mit einem Relay bei Cloudflare. Das Relay leitet jeden Block beim Eintreffen weiter und behält nichts. Der Verkehr zum und vom Relay ist mit TLS verschlüsselt, aber das Relay ist noch nicht Ende-zu-Ende verschlüsselt. Das steht auf der Roadmap.
4. Die Daten übertragen
Im Browser und im Kommandozeilen-Tool läuft dasselbe Übertragungsprotokoll: kleine JSON-Steuernachrichten plus binäre Blöcke, mit Bestätigungen vom Empfänger, damit der Sender eine langsame Verbindung nie überflutet. Es verhält sich über einen direkten Kanal und über das Relay gleich.
5. Eingänge
Das Kommandozeilen-Tool hält einen dauerhaft aktiven Eingang bereit. Es erzeugt zwei geheime Schlüssel: einen Agent-Schlüssel, der auf dem Computer bleibt, und einen Sendeschlüssel, der nach dem # im Link des Eingangs steht. Browser schicken diesen Teil eines Links nicht an den Server, der Schlüssel wird stattdessen innerhalb des WebSockets übergeben. Der Server behält nur SHA-256-Hashes beider Schlüssel. Wenn ein Handy den Link öffnet und sendet, gibt der Server WebRTC-Verbindungsdaten zwischen Handy und Computer weiter, genau wie zwischen zwei Browsern. Im selben Netzwerk gehen die Dateien also direkt in den Ordner des Eingangs, ohne es zu verlassen. Kommt kein direkter Kanal zustande, nutzen beide Seiten stattdessen eine Relay-Sitzung. Das Kommandozeilen-Tool verbindet sich auf dieselbe Weise direkt, wenn es mit einem 6-stelligen Code an einen Browser sendet oder wenn ein Browser aus der Liste „In diesem Netzwerk“ an es sendet.
Was noch nicht gebaut ist
- Ende-zu-Ende-Verschlüsselung auf dem Relay-Weg
- Signierte, dauerhafte Gerätekopplung im Browser
- Ratenbegrenzungen über die Sperre pro Rolle bei falschen Eingangsschlüsseln hinaus
Was der Dienst sieht, steht auf der Datenschutzseite.
Fragen
Ist tosstome Ende-zu-Ende-verschlüsselt?
Direkte WebRTC-Übertragungen sind es, durch das DTLS des Browsers. Über das Relay laufende Übertragungen sind zwischen jedem Gerät und Cloudflare per TLS verschlüsselt, aber noch nicht Ende-zu-Ende.
Was ist WebRTC?
Ein Browserstandard für Echtzeit-Verbindungen von Peer zu Peer, den Videoanruf-Apps nutzen. tosstome verwendet seine Datenkanäle, um Dateien direkt zwischen Browsern zu senden.
Werden meine Dateien irgendwo hochgeladen oder gespeichert?
Nein. Die Dateien gehen direkt von einem Gerät zum anderen, per WebRTC, sofern die Netzwerke das zulassen. Wenn nicht, läuft die Datei über ein Relay bei Cloudflare, das die Bytes beim Eintreffen weiterleitet und nichts behält. Ist der Empfänger offline, wird nichts gesendet.
Warum braucht es das Internet, wenn es Peer-to-Peer ist?
Die Browser brauchen einen Server, um sich zu finden und Verbindungsdaten auszutauschen. Sobald sie direkt verbunden sind, gehen die Dateidaten zwischen den Geräten.
Verwandt
- Datenschutz
- Dateien zwischen Geräten in verschiedenen Netzwerken teilen
- Große Dateien senden, ohne sie hochzuladen
- Snapdrop-Alternativen, die noch Peer-to-Peer senden
Jetzt ausprobieren
Öffne toss2.me auf zwei Geräten. Ohne App, ohne Konto, ohne Speicherung.
Jetzt eine Datei senden