Per stampare: Clicca qui oppure seleziona File » Stampa nel menù del tuo browser.
-----------------------------------------------------------------------------------------------
Questo intervento è stato stampato da Guide di Dada.Net
raggiungibile a http://guide.dada.net
-----------------------------------------------------------------------------------------------
By Ingegneria di Antonio Parziale
URL: http://guide.dada.net/ingegneria/interventi/2005/05/210896.shtml
Ingegneria di Antonio Parziale guida dal 29-06-2004
SSH (Secure SHell) è un protocollo che permette accesso remoto sicuro su di un network da un computer all’altro. L'articolo è tratto dalla tesi di laurea in "Applicazione delle tecniche di crittografia nella trasmissione ed elaborazione dati" redatta dall'ingegnere Federico Gennari nell'anno accademico 2000/2001.
8.11 – SSH
SSH (Secure SHell) è un protocollo che permette accesso remoto sicuro su di un network da un computer all’altro. SSH negozia e stabilisce una connessione cifrata tra un client SSH utente ed un server SSH, autenticando il cliente ed il server in una varietà di modi (alcune possibilità sono RSA, Secur ID, e parole d’ordine). La connessione può essere usata per una moltitudine di scopi, come creare un accesso (login) remoto sicuro ad un server o montare su una VPN (Virtual Private Network); costituisce un rimpiazzo per i seguenti programmi:
|
Sigla |
Sostitutivo di |
Descrizione |
|
ssh2 |
telnet, rsh |
Secure Shell Client (programma di login remoto) |
|
sshd2 |
telnetd, rshd |
Secure Shell daemon |
|
scp2 |
rcp |
Secure copy client |
|
sftp2 |
ftp |
Secure ftp client |
|
ssh-keygen2 |
- |
Generazione ed autenticazione di coppie di chiavi |
|
ssh-agent2 |
- |
Authentication agent |
|
ssh-add2 |
- |
Aggiunge identità per il Authentication agent |
|
ssh-chrootmgr |
- |
Monta un ambiente chroot-ready per gli utenti |
|
ssh-pubkeymgr |
- |
Aiuta nell’autenticazione della chiave pubblica |
Quando viene usato per creare dei login sicuri, SSH può essere configurato per inoltrare automaticamente connessioni di tipo X.11 su di un “tunnel” cifrato (ossia una connessione protetta), così da dare all’utente remoto un accesso sicuro al server SSH entro un ambiente a finestre. Le connessioni SSH e i loro X.11 forniscono un accesso utente autenticato e sicuro ad un network di host. Altre applicazioni si basano sul TCP/IP (Transfer Control Protocol/ Internet Protocol), come l’e-mail, possono passare attraverso il SSH con il “tunnel” verso il server cosicché l’utente remoto può avere accesso sicuro alla posta, alla rete, condivisione dei file, FTP ed altri servizi.
Il protocollo usato dallo SSH è diviso in tre “strati”:
- protocollo di trasporto, che fornisce autenticazione del server, confidenza, integrità ed in opzione anche compressione. Lo strato di trasporto funzionerà in genere su una connessione TCP/IP, ma potrebbe essere anche usata con qualsiasi altro continuo di dati.
- Protocollo d’identificazione utente serve al server per riconoscere il lato cliente. Agisce sopra lo strato di trasporto.
- Protocollo di connessione multiplexa il tunnel cifrato in vari canali logici; agisce sopra lo strato d’autenticazione utente.
Il protocollo di trasporto fornisce la cifratura basandosi sugli algoritmi visti fin qui: per lo scambio della chiavi usa un algoritmo a chiave pubblica (DSA o RSA da 768 fino a 3072 bit), la cifratura in sé è a chiave simmetrica (DES normale e triplo, Blowfish/Twofish, CAST 128, Arcfour da 56-128-168-256 bit). A questo livello sono contratti anche gli algoritmi hash e i Message Authentication Code (HMAC-SHA1, HMAC-MD5, HMAC-RIPEMD 160, con le versioni aggiornate del 96).
Il protocollo d’autenticazione utente funziona sopra quello di trasporto, assumendo che il precedente abbia provvisto alla protezione d’integrità e di confidenza. Il server usa due chiavi: una a lungo termine per l’identificazione del server e lega a sé la connessione; una a breve termine per la cifratura, cambiata ogni ora rendendo un successivo recupero fraudolento impossibile.
I meccanismi d’autenticazione usati dal server sono multipli, e possono essere usati uno per volta o in congiunzione:
- password semplici (cifrate)
- autenticazione basata sul RSA (il cliente decifra la richiesta dal server e gli fa ritornare un hash)
- un procedimento plug-in, ad esempio il SecurID
- tramite certificati rilasciati da server preposti come il Kerberos
Il protocollo di connessione funziona sopra gli altri due strati, e fornisce i canali per un’ampia gamma di propositi; i metodi standard montano sessioni interattive, inoltrano (“tunnelling”) TCP/IP arbitrari e connessioni X11. Questo permette a molti sistemi d’amministrazione di incorporare la funzionalità di un network privato virtuale (VPN) per i suoi utenti remoti quando non hanno un bisogno immediato di un VPN completo.
Infine, sebbene il SSH non sia un firewall e non filtri il traffico, esso può essere adattato a lavorare in cooperazione e supporto con un firewall/proxy installato.