Sicurezza e dati
Host attendibili (known_hosts)
La prima connessione a un host cattura l'impronta della sua chiave pubblica (SHA-256) e la salva dopo la tua conferma. Le connessioni successive confrontano l'impronta — se dovesse mai cambiare ricevi un avviso chiaro.
Gestisci l'elenco in Impostazioni → Sicurezza → Host attendibili — ogni voce mostra l'host, l'algoritmo della chiave (Ed25519, RSA, ECDSA…) e l'impronta, e può essere rimossa.
Come è protetta la connessione
DR-Terminal usa una propria implementazione SSH, rafforzata contro attaccanti attivi e server ostili:
- La chiave dell'host viene verificata durante l'handshake, prima che venga inviato qualsiasi segreto. Se un man-in-the-middle presenta la chiave sbagliata, la connessione viene interrotta allo scambio di chiavi — la tua password o la tua chiave privata non lascia mai il dispositivo.
- Solo algoritmi robusti, per impostazione predefinita. Gli algoritmi legacy e soggetti a downgrade — firme e MAC SHA-1,
ssh-rsa, Diffie-Hellman a 1024 bit — sono disattivati. Le connessioni usano scambio di chiavi moderno (prima gli ibridi post-quantisticisntrup761x25519-sha512emlkem768x25519-sha256, poi Curve25519, ECDH, Diffie-Hellman ≥ 2048 bit), cifrari (AES-GCM, ChaCha20-Poly1305, AES-CTR) e tipi di chiave host (Ed25519, ECDSA, RSA-SHA2). Un server che offre solo qualcosa di più debole non può connettersi — a meno che tu non riattivi deliberatamente un algoritmo legacy in Algoritmi SSH (vedi sotto). - Nessun downgrade silenzioso. La firma usata dal server deve corrispondere a quella negoziata, quindi non può ripiegare su una più debole alle tue spalle.
- Terrapin (CVE-2023-48795) è mitigato tramite lo scambio di chiavi rigoroso.
- Resistente a un server ostile o difettoso. Le lunghezze dei pacchetti, i campi dei messaggi e le finestre dei canali che arrivano dalla rete sono tutti sottoposti a controllo dei limiti, così un server malevolo non può mandare in crash l'app né esaurirne la memoria — nemmeno prima che tu ti autentichi.
Queste protezioni sono attive automaticamente. Interagisci con esse solo tramite la richiesta sugli host attendibili qui sopra.
Algoritmi SSH (avanzato)
Impostazioni → Sicurezza → Algoritmi SSH ti permette di regolare ciò che il client propone ai server — per un dispositivo legacy che parla solo un cifrario vecchio, o per fissare l'ordine di cui ti fidi. La pagina ha una sezione per ogni categoria di negoziazione:
- Scambio di chiavi, Cifrari, MAC (integrità) — attiva o disattiva ogni algoritmo e spostalo in su o in giù; l'ordine è l'ordine di preferenza inviato al server (vince il primo algoritmo supportato da entrambe le parti).
- Chiavi host — solo attivo/disattivo.
- Compressione — un interruttore sì/no (disattivo per impostazione predefinita). Sì propone prima
[email protected]connonecome ripiego per i server senza zlib; No propone solonone, così il server non può attivare la compressione. La compressione aiuta sui collegamenti lenti e costa CPU a entrambe le estremità.
Gli algoritmi che la libreria fornisce disattivati portano una piccola etichetta ambra legacy — restano disattivi finché non li attivi. Una categoria non può mai restare vuota: l'ultimo algoritmo attivo non può essere disattivato. Ripristina accanto al titolo di una sezione la riporta ai valori predefiniti della libreria.
Ogni connessione salvata può sovrascrivere la scelta globale: nel modulo della connessione, Algoritmi SSH → Personalizzato apre lo stesso editor solo per quell'host (Predefinito segue l'impostazione globale). Confermare l'editor aggiorna il modulo — poi Salva la connessione. Ciò che è stato effettivamente negoziato — scambio di chiavi, chiave host, cifrario, MAC, compressione — è mostrato in Info connessione nel menu della sessione.
Le nuove impostazioni si applicano alle connessioni aperte in seguito. Una seconda scheda verso lo stesso host riutilizza la connessione SSH attiva e quindi i suoi algoritmi — disconnetti e riconnetti per rinegoziare.
Avviso post-quantistico
Un attaccante “store now, decrypt later” (registra ora, decifra dopo) registra il traffico di oggi e lo decifra quando i computer quantistici saranno in grado di violare lo scambio di chiavi classico. DR-Terminal preferisce lo scambio di chiavi ibrido post-quantistico (sntrup761x25519-sha512, mlkem768x25519-sha256 — gli stessi forniti da OpenSSH) e, come OpenSSH, avvisa quando una sessione finisce su uno scambio classico: una finestra appare una volta per connessione dicendo che lo scambio di chiavi non è post-quantistico e che il server potrebbe aver bisogno di un aggiornamento. Non mostrare più disattiva l'avviso in modo permanente; l'opzione si trova in Impostazioni → Sicurezza → Avviso post-quantistico (attiva per impostazione predefinita).
Chiavi esportate
Quando converti o esporti una chiave privata (Chiavi SSH → Converti) e imposti una passphrase, la cifratura usa una robusta funzione di derivazione della chiave scelta per formato — bcrypt per OpenSSH, PBKDF2 per PKCS#8, Argon2id per PuTTY PPK v3 — e ogni salt e IV proviene da un generatore casuale crittograficamente sicuro. Il convertitore legge e scrive OpenSSH, PKCS#8, PKCS#1 e PuTTY PPK (v2/v3), sia da PEM sia da DER binario.
Dove risiedono i segreti
Password, chiavi private e passphrase non vengono mai serializzate nel JSON della connessione. Vanno direttamente nell'archivio sicuro della piattaforma:
- Android — EncryptedSharedPreferences, supportato dal Keystore hardware.
- iOS — Keychain (protetto da biometria se l'hai abilitata).
- Desktop — file cifrato AES-256-GCM, chiave derivata dal profilo utente.
Backup cifrato della configurazione
Impostazioni → Configurazione → Esporta backup crea un file .drterminal protetto da password. Contiene: connessioni (con credenziali), gruppi, host attendibili, chiavi SSH, segnalibri SFTP, cronologia dei comandi, regole di evidenziazione, snippet, profili seriali e Telnet, preferenze degli algoritmi SSH, aspetto e impostazioni del terminale e, su mobile, la configurazione della tastiera DevOps. Importa backup ripristina lo stesso pacchetto — utile quando si passa da una macchina all'altra.
Formato: JSON cifrato con AES-256-GCM. La password non viene mai salvata nel file — serve solo a derivare la chiave di cifratura (PBKDF2, 100 000 iterazioni di SHA-256).
Importa ~/.ssh/config
Su Desktop puoi importare in blocco gli host da una configurazione OpenSSH esistente. L'importatore interpreta le voci Host, HostName, User, Port, IdentityFile e ProxyJump e le aggiunge come connessioni salvate. I file delle chiavi referenziati da IdentityFile vengono caricati dal disco in SecureStorage.
Livelli di log
In Impostazioni → Terminale → Livello di log su file scegli cosa raggiunge ~/.dr-terminal/logs/ (Desktop) o l'equivalente su mobile. Predefinito: ERROR — rumore minimo. Per la diagnostica passa a DEBUG.