Jeder Server ist seine eigene Vertrauensinstanz
Ein Media Server besitzt ein Schlüsselpaar, stellt Tokens aus und entscheidet allein über Rechte. Das Relay prüft Tokens nur gegen den öffentlichen Schlüssel des Servers; Konten, Rechte und Nutzerdaten liegen ausschließlich auf dem Media Server.
Server-Identität
Beim ersten Start erzeugt der Server ein Ed25519-Schlüsselpaar. Die Server-ID ist der Fingerprint des öffentlichen Schlüssels; Clients pinnen ihn bei der Kopplung.
Ed25519
Ersteinrichtung ohne Weboberfläche
Der Server schreibt einen einmaligen Einrichtungscode in Konsole und Log und kündigt sich per mDNS im LAN an. Der Nutzer gibt den Code im Client ein, legt das Admin-Konto an und pinnt den Serverschlüssel. Headless: tenjin-server --setup.
mDNS · Einrichtungscode
Relay-Identität
Das Relay ist über einen Domainnamen erreichbar und trägt ein öffentliches Zertifikat, zum Beispiel von Let's Encrypt. Server registrieren sich mit einem Registrierungscode und halten eine ausgehende Steuerverbindung; eine Portfreigabe ist nicht nötig.
Let's Encrypt · Registrierungscode
Anmeldung und Tokens
Die Passwortprüfung findet immer Ende-zu-Ende zwischen Client und Media Server statt, auch im Relay-Modus C; die Anmeldeanfrage wird dort durchgereicht. Vorgesehen ist ein PAKE-Verfahren (OPAQUE), damit das Passwort den Server nie im Klartext erreicht.
Der Server stellt ein Access Token mit kurzer Laufzeit (etwa 15 Minuten) und ein gerätegebundenes Refresh Token aus. Das Refresh Token wird bei jeder Erneuerung ersetzt. Taucht ein ersetztes Token nach einer Kulanzfrist wieder auf, sperrt der Server alle Tokens des Geräts und warnt im Aktivitätslog. Erkennung, Kulanzfrist und Gültigkeit (Standard 30 Tage) stellt der Administrator ein. Das Relay gibt keine eigenen Tokens aus.
| Feld | Inhalt |
|---|---|
srv |
Server-ID des Ausstellers |
sub |
Lokale Nutzer-ID |
libs |
Freigegebene Bibliotheks-IDs |
age |
FSK-Grenze |
bw |
Maximale Bitrate lokal und remote |
streams |
Maximale gleichzeitige Streams |
dev |
Geräte-ID |
exp |
Ablaufzeit |
Tokens sind mit dem Serverschlüssel signiert; das Relay prüft sie offline. Quick Connect meldet Fernseher und andere Geräte ohne Tastatur an: Das Gerät holt sich einen sechsstelligen Code, ein angemeldetes Handy oder ein Rechner gibt ihn frei, das Gerät bekommt sein eigenes Token-Paar.
Drei Wege, drei Vertrauensstufen
Weg B (Standard): Das Relay sieht
- Server-ID und Geräte-ID der Verbindung
- Zeitpunkte, Paketgrößen, Datenmenge
- Die Signatur des Tokens, die es offline prüft
Weg B: Das Relay sieht nicht
- Passwörter oder Anmeldedaten
- Titel, Bilder, Streams, Fortschritt
- Sitzungsschlüssel der QUIC-Verbindung
Weg C (Relay-Terminierung) muss der Relay-Administrator je Server ausdrücklich einschalten, und der Server-Administrator kann ihn für seinen Server ablehnen. Nur dann sieht das Relay Inhalte, etwa um Streams zwischenzuspeichern oder zu transkodieren.
Kontoverknüpfung und Sync
Wer auf zwei Servern ein Konto hat, kann sie verknüpfen: Server 1 erzeugt eine zufällige 128-Bit-Sync-ID und ein Link-Geheimnis, der Client übergibt beides an Server 2, beide Server tauschen einen Schlüssel für diese Paarung aus. Favoriten und Fortschritt laufen danach Ende-zu-Ende zwischen den Servern über das Relay; das Relay sieht nur die pseudonyme Sync-ID.
Weitere Maßnahmen
- Brute-Force-Schutz: Verzögerung und Sperre nach Fehlversuchen; Audit-Log für Anmeldungen und Admin-Aktionen.
- Geheimnisse (API-Schlüssel, SMB-, NFS- und WebDAV-Zugangsdaten) liegen verschlüsselt, der Schlüssel im Schlüsselspeicher des Betriebssystems: DPAPI (Windows), Keychain (macOS), Schlüsseldatei mit Rechten 0600 (Linux, QTS).
- Bildadressen tragen keine Tokens und werden nur versioniert gecacht; ein geändertes Bild hat eine neue Adresse.
- Der Player holt Streams über einen lokalen Proxy des Clients; Tokens bleiben im Client.
- Der Relay-Steuerkanal ist ausgehend; auf dem Media Server muss kein Port geöffnet werden.
Stand und Grenzen
Tenjin 0.1.0 ist ein Entwicklungsstand: Datenbankschema und Protokoll können sich bis 1.0 noch ändern. Ein externes Sicherheits-Review steht noch aus; die Maßnahmen oben beschreiben das Konzept und den aktuellen Stand der Umsetzung. Wer dem Relay-Betreiber nicht vertraut, betreibt das Relay selbst oder bleibt bei Weg A.
