Sicherheit & Daten
Vertrauenswürdige Hosts (known_hosts)
Die erste Verbindung zu einem Host erfasst dessen Fingerabdruck des öffentlichen Schlüssels (SHA-256) und speichert ihn, nachdem du bestätigt hast. Nachfolgende Verbindungen vergleichen den Fingerabdruck — sollte er sich jemals ändern, erhältst du eine deutliche Warnung.
Verwalte die Liste unter Einstellungen → Sicherheit → Vertrauenswürdige Hosts — du kannst Einträge entfernen, den Algorithmus (Ed25519, RSA, ECDSA…) und das Datum der ersten Sichtung einsehen.
Wie die Verbindung geschützt wird
DR-Terminal verwendet eine eigene SSH-Implementierung, gehärtet gegen aktive Angreifer und feindselige Server:
- Der Host-Schlüssel wird während des Handshakes geprüft, bevor irgendetwas Geheimes gesendet wird. Präsentiert ein Man-in-the-Middle den falschen Schlüssel, wird die Verbindung beim Schlüsselaustausch abgebrochen — dein Passwort oder privater Schlüssel verlässt das Gerät nie.
- Standardmäßig nur starke Algorithmen. Veraltete, downgrade-anfällige Algorithmen — SHA-1-Signaturen und -MACs,
ssh-rsa, 1024-Bit-Diffie-Hellman — sind deaktiviert. Verbindungen nutzen modernen Schlüsselaustausch (Curve25519, ECDH, Diffie-Hellman ≥ 2048 Bit), Chiffren (AES-GCM, ChaCha20-Poly1305, AES-CTR) und Host-Schlüssel-Typen (Ed25519, ECDSA, RSA-SHA2). Ein Server, der nur etwas Schwächeres anbietet, erfordert eine ausdrückliche Zustimmung. - Kein stilles Downgrade. Die vom Server verwendete Signatur muss dem entsprechen, was ausgehandelt wurde, sodass er hinter deinem Rücken nicht auf eine schwächere zurückfallen kann.
- Terrapin (CVE-2023-48795) wird abgewehrt durch strikten Schlüsselaustausch.
- Widerstandsfähig gegen einen feindseligen oder fehlerhaften Server. Paketlängen, Nachrichtenfelder und Kanalfenster, die aus dem Netzwerk eintreffen, werden allesamt auf Grenzen geprüft, sodass ein bösartiger Server die App nicht zum Absturz bringen oder ihren Speicher erschöpfen kann — nicht einmal, bevor du dich authentifizierst.
Diese Schutzmaßnahmen sind automatisch aktiv. Du interagierst mit ihnen nur über die obige Abfrage für vertrauenswürdige Hosts.
Exportierte Schlüssel
Wenn du einen privaten Schlüssel konvertierst oder exportierst (SSH-Schlüssel → Konvertieren) und eine Passphrase festlegst, verwendet die Verschlüsselung eine starke, pro Format gewählte Schlüsselableitungsfunktion — bcrypt für OpenSSH, PBKDF2 für PKCS#8, Argon2id für PuTTY PPK v3 — und jedes Salt und jeder IV stammt aus einem kryptografisch sicheren Zufallsgenerator. Der Konverter liest und schreibt OpenSSH, PKCS#8, PKCS#1 und PuTTY PPK (v2/v3), sowohl aus PEM als auch aus binärem DER.
Wo Geheimnisse liegen
Passwörter, private Schlüssel und Passphrasen werden niemals in die Verbindungs-JSON serialisiert. Sie gehen direkt in den sicheren Speicher der Plattform:
- Android — EncryptedSharedPreferences, gestützt auf den Hardware-Keystore.
- iOS — Keychain (biometrisch geschützt, wenn du es aktiviert hast).
- Desktop — AES-256-GCM-verschlüsselte Datei, Schlüssel abgeleitet aus dem Benutzerprofil.
Verschlüsseltes Konfigurations-Backup
Einstellungen → Konfiguration → Backup exportieren erstellt eine passwortgeschützte .drterminal-Datei. Sie enthält: Verbindungen, Gruppen, vertrauenswürdige Hosts, Schlüssel, Einstellungen. Backup importieren stellt dasselbe Paket wieder her — nützlich beim Wechsel zwischen Maschinen.
Format: JSON, verschlüsselt mit AES-256-GCM, Metadaten-Header (Version, Datum). Das Passwort wird nie in der Datei gespeichert — es wird nur zur Ableitung des Schlüssels verwendet (PBKDF2).
~/.ssh/config importieren
Auf dem Desktop kannst du Hosts massenhaft aus einer vorhandenen OpenSSH-Konfiguration importieren. Der Importer parst die Einträge Host, HostName, User, Port, IdentityFile und ProxyJump und fügt sie als gespeicherte Verbindungen hinzu. Schlüsseldateien, auf die mit IdentityFile verwiesen wird, werden von der Festplatte in SecureStorage geladen.
Log-Level
Wähle unter Einstellungen → Terminal → Datei-Log-Level aus, was nach ~/.dr-terminal/logs/ (Desktop) bzw. an den entsprechenden Ort auf Mobilgeräten gelangt. Standard: ERROR — minimales Rauschen. Für Diagnosen wechsle zu DEBUG oder TRACE.