Dal problema alla soluzione
Per anni, l’accesso remoto ai sistemi Unix è stato gestito tramite telnet e rlogin: protocolli che trasmettono credenziali e dati in chiaro sulla rete. In un contesto in cui le reti locali si estendono su Internet e il traffico attraversa infrastrutture condivise, questa esposizione rappresenta un rischio concreto. Il protocollo SSH (Secure Shell), progettato nel 1995 da Tatu Ylönen all’Università di Helsinki, nasce per risolvere esattamente questo problema: un canale crittografato per sessioni remote, trasferimento file e tunneling.
L’implementazione originale di Ylönen, tuttavia, evolve verso una licenza commerciale restrittiva. Il progetto OpenBSD, noto per la sua attenzione alla sicurezza e alla correttezza del codice, decide di sviluppare un’implementazione completamente libera a partire dall’ultima versione con licenza aperta. Nasce così OpenSSH, che in breve tempo diventa l’implementazione SSH di riferimento su praticamente ogni sistema Unix e Linux.
Funzionalità principali
OpenSSH implementa il protocollo SSH-2 con un insieme completo di funzionalità:
- Autenticazione a chiave pubblica: coppie di chiavi RSA o DSA sostituiscono le password, eliminando il rischio di intercettazione delle credenziali
- Cifratura del canale: tutto il traffico — inclusi comandi, output e trasferimenti — è protetto da algoritmi come 3DES e Blowfish
- Port forwarding: è possibile creare tunnel crittografati per qualsiasi protocollo TCP, proteggendo traffico applicativo che altrimenti viaggerebbe in chiaro
- SCP e SFTP: trasferimento file sicuro, rispettivamente tramite copia remota e protocollo FTP su canale SSH
La sicurezza come processo
Il team di OpenBSD applica a OpenSSH la stessa disciplina di audit del codice che caratterizza il sistema operativo: revisione sistematica, separazione dei privilegi e minimizzazione della superficie di attacco. Il demone sshd utilizza la privilege separation — un processo non privilegiato gestisce la connessione di rete, delegando le operazioni critiche a un processo con privilegi minimi.
OpenSSH è oggi installato di default sulla quasi totalità dei server Unix e Linux in produzione. telnet e rlogin, per qualsiasi uso che coinvolga reti non fidate, sono di fatto superati.
Link: openssh.com
