Securitate și date
Gazde de încredere (known_hosts)
Prima conexiune la o gazdă captează amprenta cheii ei publice (SHA-256) și o stochează după ce confirmi. Conexiunile ulterioare compară amprenta — dacă se schimbă vreodată, primești o alertă clară.
Gestionează lista în Setări → Securitate → Gazde de încredere — fiecare intrare arată gazda, algoritmul cheii (Ed25519, RSA, ECDSA…) și amprenta, și poate fi eliminată.
Cum este protejată conexiunea
DR-Terminal folosește propria implementare SSH, întărită împotriva atacatorilor activi și a serverelor ostile:
- Cheia gazdei este verificată în timpul handshake-ului, înainte să fie trimis ceva secret. Dacă un intermediar (man-in-the-middle) prezintă cheia greșită, conexiunea este întreruptă la schimbul de chei — parola sau cheia ta privată nu părăsește niciodată dispozitivul.
- Doar algoritmi puternici, în mod implicit. Algoritmii vechi, predispuși la downgrade — semnături și MAC-uri SHA-1,
ssh-rsa, Diffie-Hellman pe 1024 de biți — sunt dezactivați. Conexiunile folosesc schimb de chei modern (mai întâi hibrizii post-cuanticisntrup761x25519-sha512șimlkem768x25519-sha256, apoi Curve25519, ECDH, Diffie-Hellman ≥ 2048 de biți), cifruri (AES-GCM, ChaCha20-Poly1305, AES-CTR) și tipuri de cheie de gazdă (Ed25519, ECDSA, RSA-SHA2). Un server care oferă doar ceva mai slab nu se poate conecta — decât dacă reactivezi deliberat un algoritm vechi în Algoritmi SSH (mai jos). - Fără downgrade silențios. Semnătura folosită de server trebuie să corespundă cu ceea ce s-a negociat, deci nu poate recurge la una mai slabă pe la spatele tău.
- Terrapin (CVE-2023-48795) este atenuat prin schimb de chei strict.
- Rezistent la un server ostil sau cu erori. Lungimile pachetelor, câmpurile mesajelor și ferestrele de canal care vin din rețea sunt toate verificate ca limite, astfel încât un server rău intenționat nu poate bloca aplicația sau epuiza memoria acesteia — nici măcar înainte de autentificare.
Aceste protecții sunt active automat. Interacționezi cu ele doar prin solicitarea de gazde de încredere de mai sus.
Algoritmi SSH (avansat)
Setări → Securitate → Algoritmi SSH îți permite să ajustezi ce propune clientul serverelor — pentru un echipament vechi care vorbește doar un cifru învechit sau ca să fixezi ordinea în care ai încredere. Pagina are câte o secțiune pentru fiecare categorie de negociere:
- Schimb de chei, Cifruri, MAC (integritate) — pornește sau oprește fiecare algoritm și mută-l în sus sau în jos; ordinea este ordinea de preferință trimisă serverului (câștigă primul algoritm suportat de ambele părți).
- Chei de gazdă — doar pornit/oprit.
- Compresie — un comutator da/nu (oprit în mod implicit). Da propune mai întâi
[email protected], cunoneca rezervă pentru serverele fără zlib; Nu propune doarnone, așa că serverul nu poate porni compresia. Compresia ajută pe legături lente și costă CPU la ambele capete.
Algoritmii pe care biblioteca îi livrează dezactivați poartă o mică etichetă chihlimbarie legacy — rămân opriți până îi pornești. O categorie nu poate rămâne niciodată goală: ultimul algoritm activ nu poate fi oprit. Resetare, lângă titlul unei secțiuni, o readuce la valorile implicite ale bibliotecii.
Fiecare conexiune salvată poate suprascrie alegerea globală: în formularul conexiunii, Algoritmi SSH → Personalizat deschide același editor doar pentru acea gazdă (Implicit urmează setarea globală). Confirmarea editorului actualizează formularul — Salvează conexiunea după aceea. Ce s-a negociat efectiv — schimb de chei, cheie de gazdă, cifru, MAC, compresie — apare în Informații conexiune, în meniul sesiunii.
Setările noi se aplică conexiunilor deschise ulterior. O a doua filă către aceeași gazdă reutilizează conexiunea SSH activă și, prin urmare, algoritmii ei — deconectează-te și reconectează-te pentru a renegocia.
Avertisment post-cuantic
Un atacator de tip „stochează acum, decriptează mai târziu” înregistrează traficul de azi și îl decriptează când calculatoarele cuantice vor putea sparge schimbul de chei clasic. DR-Terminal preferă schimbul de chei hibrid post-cuantic (sntrup761x25519-sha512, mlkem768x25519-sha256 — aceiași pe care îi livrează OpenSSH) și, la fel ca OpenSSH, avertizează când o sesiune ajunge pe unul clasic: apare un dialog, o dată per conexiune, care spune că schimbul de chei nu este post-cuantic și că serverul ar putea avea nevoie de o actualizare. Nu mai afișa oprește avertismentul definitiv; îl găsești în Setări → Securitate → Avertisment post-cuantic (pornit în mod implicit).
Chei exportate
Când convertești sau exporți o cheie privată (Chei SSH → Convertește) și setezi o frază de acces, criptarea folosește o funcție puternică de derivare a cheii aleasă în funcție de format — bcrypt pentru OpenSSH, PBKDF2 pentru PKCS#8, Argon2id pentru PuTTY PPK v3 — și fiecare salt și IV provine dintr-un generator aleatoriu sigur criptografic. Convertorul citește și scrie OpenSSH, PKCS#8, PKCS#1 și PuTTY PPK (v2/v3), atât din PEM, cât și din DER binar.
Unde se află secretele
Parolele, cheile private și frazele de acces nu sunt niciodată serializate în JSON-ul conexiunii. Ele ajung direct în depozitul securizat al platformei:
- Android — EncryptedSharedPreferences, susținut de Keystore-ul hardware.
- iOS — Keychain (protejat biometric dacă l-ai activat).
- Desktop — fișier criptat AES-256-GCM, cheie derivată din profilul utilizatorului.
Backup criptat al configurației
Setări → Configurare → Exportă backup creează un fișier .drterminal protejat cu parolă. Conține: conexiuni (cu date de autentificare), grupuri, gazde de încredere, chei SSH, marcaje SFTP, istoricul comenzilor, reguli de evidențiere, snippeturi, profiluri seriale și Telnet, preferințele algoritmilor SSH, aspectul terminalului și setările, iar (pe mobil) configurația tastaturii DevOps. Importă backup restaurează același pachet — util când te muți între mașini.
Format: JSON criptat cu AES-256-GCM. Parola nu este niciodată stocată în fișier — derivă doar cheia de criptare (PBKDF2, 100 000 de iterații de SHA-256).
Importă ~/.ssh/config
Pe Desktop poți importa în masă gazde dintr-o configurare OpenSSH existentă. Importatorul analizează intrările Host, HostName, User, Port, IdentityFile și ProxyJump și le adaugă ca conexiuni salvate. Fișierele de cheie la care se referă IdentityFile sunt încărcate de pe disc în SecureStorage.
Niveluri de jurnalizare
În Setări → Terminal → Nivel de jurnalizare în fișier alege ce ajunge în ~/.dr-terminal/logs/ (Desktop) sau echivalentul de pe mobil. Implicit: ERROR — zgomot minim. Pentru diagnostic, comută la DEBUG.