Biztonság és adatok
Megbízható kiszolgálók (known_hosts)
Az első kapcsolat egy kiszolgálóhoz rögzíti annak nyilvános kulcsának ujjlenyomatát (SHA-256), és tárolja, miután megerősíted. A későbbi kapcsolatok összehasonlítják az ujjlenyomatot — ha valaha megváltozik, egyértelmű riasztást kapsz.
A listát a Beállítások → Biztonság → Megbízható kiszolgálók menüben kezelheted — minden bejegyzés mutatja a kiszolgálót, a kulcsalgoritmust (Ed25519, RSA, ECDSA…) és az ujjlenyomatot, és eltávolítható.
Hogyan védett a kapcsolat
A DR-Terminal saját SSH-implementációt használ, amely megerősített az aktív támadókkal és az ellenséges kiszolgálókkal szemben:
- A kiszolgáló kulcsát a kézfogás során ellenőrzi, mielőtt bármilyen titkot elküldene. Ha egy közbeékelődő (man-in-the-middle) rossz kulcsot mutat be, a kapcsolat a kulcscserénél megszakad — a jelszavad vagy a privát kulcsod soha nem hagyja el az eszközt.
- Alapértelmezetten csak erős algoritmusok. A régi, leminősítésre hajlamos algoritmusok — SHA-1 aláírások és MAC-ek,
ssh-rsa, 1024 bites Diffie-Hellman — ki vannak kapcsolva. A kapcsolatok modern kulcscserét (Curve25519, ECDH, Diffie-Hellman ≥ 2048 bit), rejtjeleket (AES-GCM, ChaCha20-Poly1305, AES-CTR) és kiszolgálókulcs-típusokat (Ed25519, ECDSA, RSA-SHA2) használnak. Az a kiszolgáló, amely csak gyengébbet kínál, nem tud csatlakozni. - Nincs csendes leminősítés. A kiszolgáló által használt aláírásnak meg kell egyeznie a megtárgyalttal, így nem térhet vissza egy gyengébbre a hátad mögött.
- A Terrapin (CVE-2023-48795) mérsékelve van a szigorú kulcscsere révén.
- Ellenálló az ellenséges vagy hibás kiszolgálóval szemben. A hálózatról érkező csomaghosszak, üzenetmezők és csatornaablakok mind határellenőrzésen esnek át, így egy rosszindulatú kiszolgáló nem tudja összeomlasztani az alkalmazást vagy kimeríteni a memóriáját — még a hitelesítés előtt sem.
Ezek a védelmek automatikusan be vannak kapcsolva. Csak a fenti megbízható kiszolgálókra vonatkozó kérésen keresztül lépsz kapcsolatba velük.
Exportált kulcsok
Amikor konvertálsz vagy exportálsz egy privát kulcsot (SSH-kulcsok → Konvertálás), és beállítasz egy jelmondatot, a titkosítás formátumonként kiválasztott erős kulcsszármaztató függvényt használ — bcrypt az OpenSSH-hoz, PBKDF2 a PKCS#8-hoz, Argon2id a PuTTY PPK v3-hoz —, és minden só (salt) és IV egy kriptográfiailag biztonságos véletlenszám-generátorból származik. A konvertáló olvassa és írja az OpenSSH, PKCS#8, PKCS#1 és PuTTY PPK (v2/v3) formátumokat, PEM-ből és bináris DER-ből egyaránt.
Hol élnek a titkok
A jelszavak, a privát kulcsok és a jelmondatok soha nem szerializálódnak a kapcsolati JSON-ba. Egyenesen a platform biztonságos tárolójába kerülnek:
- Android — EncryptedSharedPreferences, a hardveres Keystore által támogatva.
- iOS — Keychain (biometrikusan védett, ha bekapcsoltad).
- Asztali — AES-256-GCM titkosított fájl, a felhasználói profilból származtatott kulccsal.
Titkosított konfigurációmentés
A Beállítások → Konfiguráció → Mentés exportálása létrehoz egy jelszóval védett .drterminal fájlt. Ez a következőket tartalmazza: kapcsolatok (hitelesítő adatokkal), csoportok, megbízható kiszolgálók, SSH-kulcsok, SFTP-könyvjelzők, parancselőzmények, kiemelési szabályok, snippetek, soros és Telnet profilok, terminálmegjelenés és beállítások, valamint (mobilon) a DevOps billentyűzet konfigurációja. A Mentés importálása visszaállítja ugyanazt a csomagot — hasznos gépek közti váltáskor.
Formátum: AES-256-GCM-mel titkosított JSON. A jelszó soha nem tárolódik a fájlban — csak a titkosítási kulcsot származtatja belőle (PBKDF2, SHA-256 100 000 iterációval).
A ~/.ssh/config importálása
Asztali környezetben tömegesen importálhatsz kiszolgálókat egy meglévő OpenSSH-konfigurációból. Az importáló elemzi a Host, HostName, User, Port, IdentityFile és ProxyJump bejegyzéseket, és mentett kapcsolatként veszi fel őket. Az IdentityFile által hivatkozott kulcsfájlok a lemezről a SecureStorage-ba töltődnek.
Naplószintek
A Beállítások → Terminál → Fájlnapló-szint menüben válaszd ki, mi kerül a ~/.dr-terminal/logs/ mappába (asztali) vagy a mobil megfelelőjébe. Alapértelmezett: ERROR — minimális zaj. Diagnosztikához válts DEBUG-ra.