🔒

Verschlüsselter Datei-Transfer

End-to-End verschlüsselt · P2P · kein Server-Speicher

⚠️ Wichtiger Hinweis

Die Dateien werden direkt von deinem Gerät zum Gerät des Empfängers übertragen (Peer-to-Peer). Dafür müssen beide Geräte gleichzeitig online und die Seite auf beiden Seiten aktiv geöffnet sein. Wird eine Seite geschlossen oder die Verbindung unterbrochen, schlägt der Transfer fehl. Bei aktivierung des TURN-Servers auf beiden Seiten können die Daten über den Server übertragen werden. Es werden ausschließlich eigene Stun und Turn Server verwendet.

🔒 Sicherheitshinweise

ECDH P-256 für Schlüsselaustausch – Sitzungsschlüssel verlässt nie den Browser

AES-GCM 256-bit für Datei-Verschlüsselung mit zufälligem IV je Datei

• Optionales Passwort wird via PBKDF2 (100.000 Iterationen) abgeleitet und per HKDF mit ECDH kombiniert

• Server fungiert nur als Signaling-Relay (WebRTC-Handshake) – kein Datei-Speicher

• Sessions laufen nach 15 Minuten automatisch ab

🔬 Technische Details (für Interessierte)

Schlüsselaustausch (ECDH): Beide Seiten erzeugen ein ephemeres Elliptic-Curve-Diffie-Hellman-Schlüsselpaar (Kurve P-256). Die öffentlichen Schlüssel werden über den Server ausgetauscht. Aus dem gemeinsamen Geheimnis (Shared Secret) wird per HKDF-SHA-256 ein 256-Bit-AES-Schlüssel abgeleitet. Der private Schlüssel verlässt den Browser nie.

Passwort-Schutz (optional): Wird ein Passwort gesetzt, wird aus diesem via PBKDF2-SHA-256 (100.000 Iterationen) ein 256-Bit-Schlüssel abgeleitet und bytewise mit dem ECDH-Shared-Secret XOR-verknüpft, bevor HKDF angewendet wird. Ohne das korrekte Passwort und die ECDH-Verbindung ist keine Entschlüsselung möglich.

Dateiverschlüsselung (AES-GCM): Jede Datei wird mit einem zufälligen 96-Bit-IV (Nonce) per AES-256-GCM verschlüsselt. GCM liefert neben der Vertraulichkeit auch Authentizität – manipulierte Daten werden erkannt und abgelehnt.

Datenübertragung (WebRTC DataChannel): Die verschlüsselten Daten werden über einen WebRTC DataChannel direkt zwischen den Browsern übertragen (P2P). Der Server sieht nur die WebRTC-Signaling-Nachrichten (SDP-Offer/Answer und ICE-Candidates), aber niemals Dateiinhalte. WebRTC nutzt intern DTLS und SRTP als Transportverschlüsselung – die Dateien sind also doppelt geschützt.

Session & Signaling: Der Server hält die Session ausschließlich im RAM (kein Datenbankschreiben). Nach 15 Minuten ohne Aktivität wird die Session automatisch verworfen. Der Code besteht aus 6 zufälligen Zeichen (Alphabet ohne mehrdeutige Zeichen wie O/0/I/l), was ~109 mögliche Kombinationen ergibt.