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 — jeder Eintrag zeigt den Host, den Schlüsselalgorithmus (Ed25519, RSA, ECDSA…) und den Fingerabdruck und kann entfernt werden.
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, kann sich nicht verbinden. - 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 (mit Zugangsdaten), Gruppen, vertrauenswürdige Hosts, SSH-Schlüssel, SFTP-Lesezeichen, Befehlsverlauf, Hervorhebungsregeln, Snippets, serielle und Telnet-Profile, Terminal-Erscheinungsbild und Einstellungen sowie (auf Mobilgeräten) die Konfiguration der DevOps-Tastatur. Backup importieren stellt dasselbe Paket wieder her — nützlich beim Wechsel zwischen Maschinen.
Format: JSON, verschlüsselt mit AES-256-GCM. Das Passwort wird nie in der Datei gespeichert — es leitet lediglich den Verschlüsselungsschlüssel ab (PBKDF2, 100 000 Iterationen von SHA-256).
~/.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-Protokollstufe 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.