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 — puoi rimuovere voci, vedere l'algoritmo (Ed25519, RSA, ECDSA…) e la data della prima rilevazione.
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 (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 richiede un consenso esplicito. - 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.
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, gruppi, host attendibili, chiavi, impostazioni. Importa backup ripristina lo stesso pacchetto — utile quando si passa da una macchina all'altra.
Formato: JSON cifrato con AES-256-GCM, intestazione di metadati (versione, data). La password non viene mai salvata nel file — è usata solo per derivare la chiave (PBKDF2).
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 o TRACE.