Säkerhet och data
Betrodda värdar (known_hosts)
Den första anslutningen till en värd fångar dess publika nyckels fingeravtryck (SHA-256) och lagrar det efter att du bekräftat. Efterföljande anslutningar jämför fingeravtrycket — om det någonsin ändras får du ett tydligt larm.
Hantera listan i Inställningar → Säkerhet → Betrodda värdar — varje post visar värden, nyckelalgoritmen (Ed25519, RSA, ECDSA…) och fingeravtrycket, och kan tas bort.
Hur anslutningen skyddas
DR-Terminal använder sin egen SSH-implementation, härdad mot aktiva angripare och fientliga servrar:
- Värdnyckeln kontrolleras under handskakningen, innan något hemligt skickas. Om en man-in-the-middle presenterar fel nyckel avbryts anslutningen vid nyckelutbytet — ditt lösenord eller din privata nyckel lämnar aldrig enheten.
- Endast starka algoritmer, som standard. Föråldrade, nedgraderingsbenägna algoritmer — SHA-1-signaturer och MAC:ar,
ssh-rsa, 1024-bitars Diffie-Hellman — är avstängda. Anslutningar använder modernt nyckelutbyte (postkvanthybridernasntrup761x25519-sha512ochmlkem768x25519-sha256först, därefter Curve25519, ECDH, Diffie-Hellman ≥ 2048-bitar), chiffer (AES-GCM, ChaCha20-Poly1305, AES-CTR) och värdnyckeltyper (Ed25519, ECDSA, RSA-SHA2). En server som bara erbjuder något svagare kan inte ansluta — såvida du inte medvetet återaktiverar en föråldrad algoritm i SSH-algoritmer (nedan). - Ingen tyst nedgradering. Signaturen som servern använder måste matcha det som förhandlades fram, så den kan inte falla tillbaka på en svagare bakom din rygg.
- Terrapin (CVE-2023-48795) är åtgärdat genom strikt nyckelutbyte.
- Motståndskraftig mot en fientlig eller buggig server. Paketlängder, meddelandefält och kanalfönster som kommer från nätverket gränskontrolleras alla, så en illasinnad server kan inte krascha appen eller tömma dess minne — inte ens innan du autentiserar dig.
Dessa skydd är påslagna automatiskt. Du interagerar med dem endast genom prompten för betrodda värdar ovan.
SSH-algoritmer (avancerat)
Inställningar → Säkerhet → SSH-algoritmer låter dig finjustera vad klienten föreslår för servrar — för en föråldrad apparat som bara talar ett gammalt chiffer, eller för att låsa den ordning du litar på. Sidan har en sektion per förhandlingskategori:
- Nyckelutbyte, Chiffer, MAC (integritet) — slå på eller av varje algoritm och flytta den uppåt eller nedåt; ordningen är den preferensordning som skickas till servern (den första algoritm båda sidor stöder vinner).
- Värdnycklar — endast på/av.
- Komprimering — en ja/nej-växel (av som standard). Ja föreslår
[email protected]först mednonesom reserv för servrar utan zlib; Nej föreslår endastnone, så servern kan inte slå på komprimering. Komprimering hjälper på långsamma länkar och kostar CPU i båda ändar.
Algoritmer som biblioteket levererar avstängda bär en liten bärnstensfärgad legacy-tagg — de förblir av tills du slår på dem. En kategori kan aldrig bli tom: den sista aktiverade algoritmen kan inte stängas av. Återställ bredvid en sektionstitel återställer den till bibliotekets standardvärden.
Varje sparad anslutning kan åsidosätta det globala valet: i anslutningsformuläret öppnar SSH-algoritmer → Anpassad samma editor för enbart den värden (Standard följer den globala inställningen). Att bekräfta editorn uppdaterar formuläret — Spara anslutningen efteråt. Vad som faktiskt förhandlades fram — nyckelutbyte, värdnyckel, chiffer, MAC, komprimering — visas under Anslutningsinformation i sessionsmenyn.
Nya inställningar gäller anslutningar som öppnas därefter. En andra flik till samma värd återanvänder den aktiva SSH-anslutningen och därmed dess algoritmer — koppla ner och anslut igen för att omförhandla.
Postkvantvarning
En ”store now, decrypt later”-angripare spelar in dagens trafik och dekrypterar den när kvantdatorer kan knäcka klassiskt nyckelutbyte. DR-Terminal föredrar postkvant-hybridnyckelutbyte (sntrup761x25519-sha512, mlkem768x25519-sha256 — samma som OpenSSH levererar) och varnar, precis som OpenSSH, när en session hamnar på ett klassiskt: en dialog visas en gång per anslutning och meddelar att nyckelutbytet inte är postkvant och att servern kan behöva uppgraderas. Visa inte igen stänger av varningen för gott; den finns i Inställningar → Säkerhet → Postkvantvarning (på som standard).
Exporterade nycklar
När du konverterar eller exporterar en privat nyckel (SSH-nycklar → Konvertera) och anger en lösenordsfras, använder krypteringen en stark nyckelhärledningsfunktion vald per format — bcrypt för OpenSSH, PBKDF2 för PKCS#8, Argon2id för PuTTY PPK v3 — och varje salt och IV kommer från en kryptografiskt säker slumpgenerator. Konverteraren läser och skriver OpenSSH, PKCS#8, PKCS#1 och PuTTY PPK (v2/v3), från både PEM och binär DER.
Var hemligheter bor
Lösenord, privata nycklar och lösenordsfraser serialiseras aldrig in i anslutnings-JSON. De går direkt till plattformens säkra lagringsutrymme:
- Android — EncryptedSharedPreferences, byggt på hårdvaru-Keystore.
- iOS — Keychain (biometriskt skyddad om du aktiverat det).
- Desktop — AES-256-GCM-krypterad fil, nyckel härledd från användarprofilen.
Krypterad säkerhetskopia av konfiguration
Inställningar → Konfiguration → Exportera säkerhetskopia skapar en lösenordsskyddad .drterminal-fil. Den innehåller: anslutningar (med inloggningsuppgifter), grupper, betrodda värdar, SSH-nycklar, SFTP-bokmärken, kommandohistorik, markeringsregler, snippets, seriella profiler och Telnet-profiler, SSH-algoritmpreferenser, terminalens utseende och inställningar samt (på mobil) konfigurationen av DevOps-tangentbordet. Importera säkerhetskopia återställer samma paket — användbart när du flyttar mellan datorer.
Format: JSON krypterat med AES-256-GCM. Lösenordet lagras aldrig i filen — det används endast för att härleda krypteringsnyckeln (PBKDF2, 100 000 iterationer av SHA-256).
Importera ~/.ssh/config
På Desktop kan du massimportera värdar från en befintlig OpenSSH-konfiguration. Importeraren tolkar posterna Host, HostName, User, Port, IdentityFile och ProxyJump och lägger till dem som sparade anslutningar. Nyckelfiler som refereras av IdentityFile läses in från disk till SecureStorage.
Loggnivåer
I Inställningar → Terminal → Loggnivå för fil väljer du vad som når ~/.dr-terminal/logs/ (Desktop) eller motsvarande på mobil. Standard: ERROR — minimalt brus. För diagnostik, växla till DEBUG.