Sicherheit bei Termalin
Termalin ist ein SSH-Client: Er verwahrt die sensibelsten Zugangsdaten, die du besitzt. Diese Seite erklärt – in klaren Worten – was unsere Server speichern, was sie nie lesen können und warum du ihnen nicht viel vertrauen musst.
Ende-zu-Ende-Verschlüsselung, konkret
Alles Wesentliche wird auf deinem Gerät verschlüsselt, bevor es irgendwohin gesendet wird – mit einem Schlüssel, der aus deinem Master-Passwort abgeleitet ist (PBKDF2-HMAC-SHA256, 600.000 Iterationen → AES-256-GCM). Das Master-Passwort verlässt dein Gerät nie. Wir können deine Daten nicht lesen und nicht für dich zurücksetzen – das ist so gewollt, kein Fehler. Deine Absicherung liegt bei dir: Lege optional einen Wiederherstellungscode fest, dann kommst du wieder hinein, falls du das Passwort je vergisst; lässt du ihn weg, bedeutet ein vergessenes Passwort, dass die Daten verloren sind. So oder so bleibt die Macht zur Wiederherstellung bei dir, nie bei uns.
Was unsere Server sehen
| Daten | Kann der Server lesen? |
|---|---|
| Deine Hosts, SSH-Schlüssel, Passwörter, Snippets (Synchronisierung) | Nein – nur verschlüsselter Blob |
| Terminal-Sitzungsaufzeichnungen (Inhalte) | Nein – nur verschlüsselter Blob |
| Dein Master-Passwort | Wird nie gesendet |
| Konto-E-Mail + Passwort | E-Mail ja; Passwort als Argon2-Hash gespeichert |
| Titel und Host-Bezeichnung der Aufzeichnung | Nein – mit deinem Master-Passwort verschlüsselt, wie die Aufzeichnung |
| Aufzeichnungs-Metadaten (Dauer, Größe, ob ein KI-Agent gehandelt hat) | Ja – genutzt für Listen & Kontingente |
| Tarif, Gerätenamen, Zeitstempel | Ja |
| Web-Terminal-Sitzungen (das Web-Kabinett) | Laufen live durch unseren Server; werden nicht gespeichert. Host, Port und Benutzername werden protokolliert |
| Befehle, die KI-Apps über den gehosteten MCP-Endpoint ausführen | Ja – der Befehlstext steht in deinem Aktivitätsprotokoll; seine Ausgabe wird nur aufbewahrt, wenn du das einschaltest, verschlüsselt mit einem Schlüssel, den nur du hast |
| Servermetriken und Alarme von Connector-Servern | Ja – nötig, um Diagramme zu zeichnen und Alarme auszulösen (siehe die Datenschutzerklärung, auf Englisch) |
| Salt zur Schlüsselableitung | Ja – ein Salt ist kein Geheimnis; damit kann das Web-Kabinett deinen Schlüssel in deinem Browser ableiten |
Updates lassen sich nicht fälschen
Automatische Updates werden mit einem Offline-Ed25519-Schlüssel signiert; der passende öffentliche Schlüssel steckt in der App. Bevor sie etwas installiert, prüft die App die Signatur des Release-Manifests und die SHA-256-Prüfsumme des Installers dagegen. Unser eigener Server ist hier keine vertrauenswürdige Instanz: Selbst ein vollständig kompromittierter Update-Server (oder eine Umleitung über DNS/hosts) kann Updates zurückhalten – er kann aber keines einschleusen.
Die App authentifiziert den Server, nicht nur TLS
Bevor die App deine Konto-Zugangsdaten irgendwohin sendet, fordert sie den Server mit einer
zufälligen Nonce heraus; der Server muss sie mit seinem Identitätsschlüssel signieren, geprüft gegen
einen in der App eingebetteten öffentlichen Schlüssel. Ein gefälschtes Backend – erreicht über eine
hosts-Datei oder eine DNS-Umleitung oder einen Rechner, der einem zusätzlichen
TLS-Zertifikat vertraut – kann diese Signatur nicht erzeugen und sieht daher nie dein Passwort.
Keine Geheimnisse im Binary
Die Desktop-App bettet nur öffentliche Schlüssel ein. Ein Blick in die Dateien der App bringt nichts Brauchbares. Alles Kostenpflichtige wird serverseitig durchgesetzt.
Das Web-Kabinett, ehrlich gesagt
Das Web-Kabinett entschlüsselt Aufzeichnungen in deinem Browser mit deinem Master-Passwort – das Passwort verlässt die Seite nie. Der ehrliche Vorbehalt, den jedes Web-E2E-Produkt teilt: Der Server liefert den Code dieser Seite aus, ein kompromittierter Server könnte also eine veränderte Seite ausliefern. Die Desktop-App mit ihren signierten Updates bleibt der Weg mit dem höchsten Vertrauen; das Web-Kabinett ist für den Komfort.
Auf deinem Rechner
- SSH-Host-Schlüssel werden bei der ersten Nutzung angeheftet (TOFU) in
~/.termalin/known_hosts. - Dein termal.in-Konto unterstützt Zwei-Faktor-Authentifizierung (TOTP mit Backup-Codes) und Passkeys – die Desktop-App kann sich über den Browser anmelden, sodass das Passwort die App nie berührt.
- Aufzeichnungen speichern die Ausgabe des Terminals und Ereignismarker – nie rohe Tastatureingaben.
Ein Passwort, das an einem verdeckten Prompt (
sudound Ähnliches) eingegeben wird, wird nie angezeigt, sodass es nie in einer Aufzeichnung landet; alles, was das Terminal ausgibt, gehört zur Aufnahme. - „Master-Passwort merken" (optional, standardmäßig aus) wird durch den Schlüsselspeicher deines Betriebssystems geschützt – Windows DPAPI, die macOS-Keychain oder den Linux Secret Service – und ist an deinen Betriebssystem-Benutzer gebunden.
Infrastruktur
Das Backend läuft in Docker hinter Cloudflare, mit TLS 1.2+ (Let's-Encrypt-Zertifikate). Die Datenbank ist nur vom localhost des Hosts aus erreichbar – nie aus dem Internet – und Backups sind verschlüsselt. Wir erheben so wenig wie möglich: keine Analytics-SDKs, keine Werbe-Tracker, und wir verkaufen keine Daten.
Compliance & Roadmap
Wir sagen dir lieber genau, wo wir stehen, als mehr anzudeuten, als wir getan haben:
| Bereich | Status |
|---|---|
| AES-256-GCM-Tresore, PBKDF2-HMAC-SHA256, Ed25519-signierte Updates | Ausgeliefert |
| Datenminimierung + vollständige Konto-/Datenlöschung auf Anfrage (DSGVO-Haltung) | Ausgeliefert |
| Unabhängiger Penetrationstest durch Dritte | Geplant vor dem GA |
| SOC 2 | Auf der Roadmap – frag nach, wo es steht |
Eine Schwachstelle melden
Schreib an security@termal.in (siehe unsere security.txt), mit dem, was du gefunden hast, wie man es reproduziert und welche Auswirkung du vermutest. Wir bestätigen den Eingang innerhalb von 3 Werktagen und sagen dir, wie wir entschieden haben – auch dann, wenn wir entscheiden, dass es kein Problem ist, und warum.
Bitte teste nur gegen dein eigenes Konto, höre auf, sobald du das Problem nachgewiesen hast (keine Datenexfiltration, keine Persistenz, kein Denial of Service, keine Dritt- oder Nutzerdaten), und gib uns ein angemessenes Zeitfenster vor einer Veröffentlichung. Bleibst du in diesem Rahmen, verfolgen wir dich nicht dafür.
Wir zahlen keine Bug-Bounties. Termalin ist ein kleines Projekt ohne Einnahmen, es gibt kein Budget für Prämien; das sagen wir lieber vorab, als dass jemand ein Wochenende auf gut Glück investiert. Was wir bieten: eine Nennung in den Danksagungen unserer security.txt unter dem Namen und Link deiner Wahl, eine schriftliche Referenz, die deinen Bericht beschreibt, und eine Pro-Lizenz für ein paar Monate. Ist der Fund schwerwiegend, sagen wir dir außerdem, wann der Fix ausgeliefert wird.
Danksagungen
Unser Dank gilt den Forschern, die Probleme verantwortungsvoll gemeldet und uns geholfen haben, Termalin sicherer zu machen:
- MD Rabbi Hossain – Härtung der OAuth-Client-Registrierung im MCP-Autorisierungsablauf (Sept. 2026).