Beveiliging en gegevens
Vertrouwde hosts (known_hosts)
De eerste verbinding met een host legt de vingerafdruk van de publieke sleutel (SHA-256) vast en slaat die op nadat je bevestigt. Volgende verbindingen vergelijken de vingerafdruk — als die ooit verandert, krijg je een duidelijke melding.
Beheer de lijst bij Instellingen → Beveiliging → Vertrouwde hosts — elke vermelding toont de host, het sleutelalgoritme (Ed25519, RSA, ECDSA…) en de vingerafdruk, en kan worden verwijderd.
Hoe de verbinding wordt beschermd
DR-Terminal gebruikt een eigen SSH-implementatie, gehard tegen actieve aanvallers en vijandige servers:
- De hostsleutel wordt tijdens de handshake gecontroleerd, voordat er iets geheims wordt verzonden. Als een man-in-the-middle de verkeerde sleutel presenteert, wordt de verbinding bij de sleuteluitwisseling afgebroken — je wachtwoord of privésleutel verlaat nooit het apparaat.
- Standaard alleen sterke algoritmen. Verouderde, voor downgrade vatbare algoritmen — SHA-1-handtekeningen en -MAC's,
ssh-rsa, 1024-bits Diffie-Hellman — zijn uitgeschakeld. Verbindingen gebruiken moderne sleuteluitwisseling (eerst de post-quantum-hybridensntrup761x25519-sha512enmlkem768x25519-sha256, daarna Curve25519, ECDH, Diffie-Hellman ≥ 2048-bits), ciphers (AES-GCM, ChaCha20-Poly1305, AES-CTR) en hostsleuteltypen (Ed25519, ECDSA, RSA-SHA2). Een server die alleen iets zwakkers aanbiedt, kan geen verbinding maken — tenzij je bewust een verouderd algoritme opnieuw inschakelt bij SSH-algoritmen (hieronder). - Geen stille downgrade. De handtekening die de server gebruikt, moet overeenkomen met wat is onderhandeld, zodat hij niet buiten je medeweten kan terugvallen op een zwakkere.
- Terrapin (CVE-2023-48795) wordt beperkt via strikte sleuteluitwisseling.
- Bestand tegen een vijandige of buggy server. Pakketlengtes, berichtvelden en kanaalvensters die van het netwerk komen, worden allemaal op grenzen gecontroleerd, zodat een kwaadwillende server de app niet kan laten crashen of het geheugen ervan kan uitputten — zelfs niet voordat je je authenticeert.
Deze beschermingen staan automatisch aan. Je hebt er alleen mee te maken via de bovenstaande prompt voor vertrouwde hosts.
SSH-algoritmen (geavanceerd)
Instellingen → Beveiliging → SSH-algoritmen laat je afstemmen wat de client aan servers voorstelt — voor een verouderd apparaat dat alleen een oude cipher spreekt, of om de volgorde vast te leggen die je vertrouwt. De pagina heeft één sectie per onderhandelingscategorie:
- Sleuteluitwisseling, Versleuteling, MACs (integriteit) — schakel elk algoritme in of uit en verplaats het omhoog of omlaag; de volgorde is de voorkeursvolgorde die naar de server wordt gestuurd (het eerste algoritme dat beide kanten ondersteunen, wint).
- Hostsleutels — alleen aan/uit.
- Compressie — een ja/nee-schakelaar (standaard uit). Ja stelt eerst
[email protected]voor metnoneals terugvaloptie voor servers zonder zlib; Nee stelt alleennonevoor, zodat de server compressie niet kan inschakelen. Compressie helpt op trage verbindingen en kost CPU aan beide kanten.
Algoritmen die de bibliotheek uitgeschakeld meelevert, dragen een klein amberkleurig label legacy — ze blijven uit totdat je ze inschakelt. Een categorie kan nooit leeg raken: het laatste ingeschakelde algoritme kan niet worden uitgeschakeld. Resetten naast een sectietitel zet die terug naar de standaardwaarden van de bibliotheek.
Elke opgeslagen verbinding kan de globale keuze overschrijven: in het verbindingsformulier opent SSH-algoritmen → Aangepast dezelfde editor alleen voor die host (Standaard volgt de globale instelling). Het bevestigen van de editor werkt het formulier bij — sla de verbinding daarna op met Opslaan. Wat er daadwerkelijk is onderhandeld — sleuteluitwisseling, hostsleutel, cipher, MAC, compressie — zie je bij Verbindingsinfo in het sessiemenu.
Nieuwe instellingen gelden voor verbindingen die daarna worden geopend. Een tweede tabblad naar dezelfde host hergebruikt de actieve SSH-verbinding en dus ook de algoritmen ervan — verbreek de verbinding en maak opnieuw verbinding om opnieuw te onderhandelen.
Post-quantum-waarschuwing
Een “nu opslaan, later ontsleutelen”-aanvaller neemt het verkeer van vandaag op en ontsleutelt het zodra quantumcomputers klassieke sleuteluitwisseling kunnen kraken. DR-Terminal geeft de voorkeur aan post-quantum-hybride sleuteluitwisseling (sntrup761x25519-sha512, mlkem768x25519-sha256 — dezelfde die OpenSSH meelevert) en waarschuwt, net als OpenSSH, wanneer een sessie op een klassieke uitkomt: er verschijnt één keer per verbinding een dialoog die meldt dat de sleuteluitwisseling niet post-quantum is en dat de server mogelijk een upgrade nodig heeft. Niet meer tonen schakelt de waarschuwing definitief uit; je vindt die bij Instellingen → Beveiliging → Post-quantum-waarschuwing (standaard aan).
Geëxporteerde sleutels
Wanneer je een privésleutel converteert of exporteert (SSH-sleutels → Converteren) en een wachtwoordzin instelt, gebruikt de versleuteling een sterke sleutelafleidingsfunctie die per formaat wordt gekozen — bcrypt voor OpenSSH, PBKDF2 voor PKCS#8, Argon2id voor PuTTY PPK v3 — en elke salt en IV komt van een cryptografisch veilige generator voor willekeurige getallen. De converter leest en schrijft OpenSSH, PKCS#8, PKCS#1 en PuTTY PPK (v2/v3), zowel vanuit PEM als binaire DER.
Waar geheimen leven
Wachtwoorden, privésleutels en wachtwoordzinnen worden nooit in de verbindings-JSON geserialiseerd. Ze gaan rechtstreeks naar de beveiligde opslag van het platform:
- Android — EncryptedSharedPreferences, ondersteund door de hardware-Keystore.
- iOS — Keychain (biometrisch beschermd als je dat hebt ingeschakeld).
- Desktop — met AES-256-GCM versleuteld bestand, sleutel afgeleid van het gebruikersprofiel.
Versleutelde configuratieback-up
Instellingen → Configuratie → Back-up exporteren maakt een met een wachtwoord beschermd .drterminal-bestand. Het bevat: verbindingen (met inloggegevens), groepen, vertrouwde hosts, SSH-sleutels, SFTP-bladwijzers, opdrachtgeschiedenis, markeringsregels, snippets, seriële en Telnet-profielen, voorkeuren voor SSH-algoritmen, terminalweergave en instellingen, en (op mobiel) de configuratie van het DevOps-toetsenbord. Back-up importeren herstelt dezelfde bundel — handig bij het verhuizen tussen machines.
Formaat: JSON versleuteld met AES-256-GCM. Het wachtwoord wordt nooit in het bestand opgeslagen — het leidt alleen de versleutelingssleutel af (PBKDF2, 100 000 iteraties van SHA-256).
~/.ssh/config importeren
Op Desktop kun je hosts in bulk importeren uit een bestaande OpenSSH-config. De importeur ontleedt de vermeldingen Host, HostName, User, Port, IdentityFile en ProxyJump en voegt ze toe als opgeslagen verbindingen. Sleutelbestanden waar IdentityFile naar verwijst, worden van schijf in SecureStorage geladen.
Logniveaus
Kies bij Instellingen → Terminal → Bestandslogniveau wat er in ~/.dr-terminal/logs/ (Desktop) of het equivalent op mobiel terechtkomt. Standaard: ERROR — minimale ruis. Schakel voor diagnostiek over naar DEBUG.