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 (zuerst die Post-Quanten-Hybridesntrup761x25519-sha512undmlkem768x25519-sha256, dann 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 — es sei denn, du aktivierst unter SSH-Algorithmen (unten) bewusst einen veralteten Algorithmus wieder. - 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.
SSH-Algorithmen (erweitert)
Einstellungen → Sicherheit → SSH-Algorithmen lässt dich abstimmen, was der Client den Servern vorschlägt — für ein veraltetes Gerät, das nur eine alte Chiffre spricht, oder um die Reihenfolge festzulegen, der du vertraust. Die Seite hat einen Abschnitt pro Aushandlungskategorie:
- Schlüsselaustausch, Chiffren, MACs (Integrität) — jeden Algorithmus ein- oder ausschalten und nach oben oder unten verschieben; die Reihenfolge ist die Präferenzreihenfolge, die an den Server gesendet wird (der erste Algorithmus, den beide Seiten unterstützen, gewinnt).
- Host-Schlüssel — nur ein/aus.
- Komprimierung — ein Ja/Nein-Schalter (standardmäßig aus). Ja schlägt zuerst
[email protected]vor, mitnoneals Rückfall für Server ohne zlib; Nein schlägt nurnonevor, sodass der Server die Komprimierung nicht einschalten kann. Komprimierung hilft auf langsamen Leitungen und kostet CPU auf beiden Seiten.
Algorithmen, die die Bibliothek deaktiviert ausliefert, tragen eine kleine bernsteinfarbene legacy-Markierung — sie bleiben aus, bis du sie einschaltest. Eine Kategorie kann nie leer werden: Der letzte aktivierte Algorithmus lässt sich nicht ausschalten. Zurücksetzen neben einem Abschnittstitel stellt die Standardwerte der Bibliothek wieder her.
Jede gespeicherte Verbindung kann die globale Auswahl übersteuern: Im Verbindungsformular öffnet SSH-Algorithmen → Benutzerdefiniert denselben Editor nur für diesen Host (Standard folgt der globalen Einstellung). Das Bestätigen des Editors aktualisiert das Formular — anschließend die Verbindung Speichern. Was tatsächlich ausgehandelt wurde — Schlüsselaustausch, Host-Schlüssel, Chiffre, MAC, Komprimierung — zeigt Verbindungsinfo im Sitzungsmenü.
Neue Einstellungen gelten für danach geöffnete Verbindungen. Ein zweiter Tab zum selben Host verwendet die bestehende SSH-Verbindung und damit deren Algorithmen weiter — trennen und neu verbinden, um neu auszuhandeln.
Post-Quanten-Warnung
Ein „store now, decrypt later“-Angreifer zeichnet den heutigen Datenverkehr auf und entschlüsselt ihn, sobald Quantencomputer klassischen Schlüsselaustausch brechen können. DR-Terminal bevorzugt Post-Quanten-Hybrid-Schlüsselaustausch (sntrup761x25519-sha512, mlkem768x25519-sha256 — dieselben, die OpenSSH ausliefert) und warnt wie OpenSSH, wenn eine Sitzung auf einem klassischen landet: Ein Dialog erscheint einmal pro Verbindung und meldet, dass der Schlüsselaustausch nicht post-quanten-sicher ist und der Server möglicherweise ein Upgrade braucht. Nicht mehr anzeigen schaltet die Warnung dauerhaft ab; sie findet sich unter Einstellungen → Sicherheit → Post-Quanten-Warnung (standardmäßig ein).
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, SSH-Algorithmus-Einstellungen, 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.