Guida

SSH – Secure Socket Shell: definizione e a che cosa serve

A livello di rete, gestisce in sicurezza la comunicazione dell’universo client/server: si chiama SSH e la prima versione del protocollo, che risale al 1995, è opera di un ricercatore universitario finlandese. La seconda versione è stata creata 10 anni dopo (e a tutt’oggi pare non presentare vulnerabilità)

Pubblicato il 20 Nov 2020

Concetto di protocollo SSH, immagine di rete con lucchetto

SSH è l’acronimo di Secure Socket Shell, definizione usata per indicare un protocollo che fornisce agli amministratori di rete un modo sicuro per accedere a un computer remoto. In dettaglio la shell, in quanto interprete dei comandi, è la parte di un sistema operativo che permette agli utenti di impartire comandi e avviare altri programmi.

La Secure Socket è lo strato di sicurezza garantito dal particolare protocollo di trasmissione. L’SSH, che oggi è in uso nella versione 2, fa anche riferimento alla suite di utility che implementano il protocollo e che comprende tre utility: slogin, SSH e SCP. Si tratta di versioni sicure delle precedenti utility UNIX non protette (rlogin, RSH e RCP) utilizzate nella versione 1.

L’SSH è ampiamente utilizzato dagli amministratori di rete per la gestione remota di sistemi e applicazioni, consentendo loro di accedere a un altro computer su una rete, eseguire comandi e spostare file da un computer a un altro. Se necessario, il protocollo utilizza la crittografia a chiave pubblica per autenticare il computer remoto e consentire al computer remoto di autenticare l’utente.

SSH: ecco come funziona

Ma come funziona l’SSH? In sintesi, in una rete informatica è il protocollo che permette di stabilire una sessione remota crittografata con un altro host, utilizzando un’interfaccia a riga di comando.

L’autentificazione fornita, tripartita su tre livelli, è forte, potenziando la sicurezza delle comunicazioni tra due computer su una rete non sicura come il Web. La tripartizione include tre livelli indipendenti: TLP (Transport Layer Protocol), UAP (User Authentication Protocol) e CLP (Connection Layer Protocol). È questo che contribuisce a garantire un’estrema flessibilità del protocollo: l’indipendenza logica dei livelli permette di modificare la configurazione della connessione senza dover modificare i livelli superiori o inferiori del protocollo (ad esempio si può modificare il protocollo di compressione delle informazioni senza dover cambiare il protocollo di cifratura o di autenticazione del sistema).

È importante specificare che i livelli sopra citati non hanno alcuna relazione con i livelli dello standard ISO/OSI essendo interni al protocollo SSH che, a sua volta, può essere posizionato immediatamente sopra al livello di trasporto ISO/OSI. Di fatto, i livelli interni al protocollo coprono gli ultimi tre livelli della pila ISO/OSI, applicando un’organizzazione diversa da quella prevista dallo standard per le reti.

Il principio è un modello client/server

L’SSH utilizza un modello client-server per collegare un’applicazione client shell sicura. Definita una chiave segreta conosciuta esclusivamente dal client e dal server è possibile utilizzare un protocollo di crittografia simmetrica per cifrare la comunicazione tra client e server. Un server SSH, per impostazione predefinita, è connesso alla porta TCP standard 22. Oltre a Microsoft Windows, questo software è incluso di default nella maggior parte dei sistemi operativi.

A cosa serve un SSH tunnel

L’SSH supporta anche il tunneling, l’inoltro di porte TCP arbitrarie e le connessioni X11. Il trasferimento dei file può essere eseguito utilizzando i protocolli di trasferimento sicuro dei file o di copia protetta (SCP – Secure Copy Protocol).

Quali sono gli algoritmi utilizzabili

La lista degli algoritmi simmetrici utilizzabili dal protocollo SSH comprende:

  • 3des-cbc
  • blowfish-cbc
  • twofish256-cbc
  • twofish-cbc
  • twofish192-cbc
  • twofish128-cbc
  • aes256-cbc
  • aes192-cbc
  • aes128-cbc
  • serpent256-cbc
  • serpent192-cbc
  • serpent128-cbc
  • arcfour
  • idea-cbc
  • cast128-cbc

Gli algoritmi più utilizzati sono l’AES e il 3DES (presenti su tutte le tipologie di computer).

Le origini e la storia dell’SSH

La prima versione è stata realizzata nel 1995. A progettarla Tatu Ylönen, un ricercatore dell’Helsinki University of Technology che ha fondato l’SSH Communications Security. Nel tempo a questa prima versione, chiamata SSH – 1, sono stati trovati diversi difetti tant’è che oggi è diventata obsoleta. L’attuale serie di protocolli Secure Shell è la 2 ed è stata adottata come standard nel 2006.

La versione 2, che non è compatibile con la 1, utilizza uno scambio di chiavi Diffie-Hellman e un controllo dell’integrità più forte che utilizza i codici di autenticazione dei messaggi per migliorare la sicurezza. I client e i server SSH possono utilizzare un numero di metodi di crittografia, il più ampiamente usato come AES e Blowfish.

Come e perché SSH-2 è ancora così sicuro

Al momento, non ci sono vulnerabilità note nell’SSH-2, anche se le informazioni trapelate da Edward Snowden nel 2013 suggeriscono che la National Security Agency, malgrado il livello di crittografia, potrebbe essere in grado di decifrare il traffico SSH. Shellshock, un buco di sicurezza nel processore dei comandi Bash, può essere eseguito su SSH ma è una vulnerabilità in Bash, non in SSH. In realtà, la più grande minaccia per quest’ultimo è una cattiva gestione delle chiavi. Senza la corretta generazione centralizzata, la rotazione e la rimozione delle chiavi SSH, le organizzazioni possono perdere il controllo su chi ha accesso a quali risorse e quando, in particolare quando SSH viene utilizzato nei processi automatizzati applicazione-applicazione.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4