SSH: differenze tra le versioni

2 052 byte aggiunti ,  20 set 2015
nessun oggetto della modifica
Nessun oggetto della modifica
Riga 1: Riga 1:
== Descrizione ==
== Descrizione ==
'''SSH''' ('''S'''ecure '''SH'''ell, shell sicura) è un ''protocollo'' che permette di stabilire una connessione sicura tra due computer. SSH garantisce la segretezza e l'integrità dei dati scambiati tra due computer cifrando l'intera comunicazione, compresa la fase di autenticazione. SSH è usato di solito per permettere il login su macchine remote ed eseguire comandi, ma supporta anche il ''tunneling'' che permette (tra le altre cose) di eseguire in locale applicazioni grafiche che risiedono sul computer remoto.
'''SSH''' ('''S'''ecure '''SH'''ell, shell sicura) è un ''protocollo'' che permette di stabilire una connessione sicura tra due computer. SSH garantisce la segretezza e l'integrità dei dati scambiati tra due computer cifrando l'intera comunicazione, compresa la fase di autenticazione. SSH è usato di solito per permettere il login su macchine remote ed eseguire comandi, ma supporta anche il ''tunneling'' che permette (tra le altre cose) di eseguire in locale applicazioni grafiche che risiedono sul computer remoto.


== Implementazioni ==
== Implementazioni ==
Gli strumenti più diffusi per utilizzare il protocollo SSH sono la [http://www.openssh.com/ suite OpenSSH] che è disponibile per OpenBSD, Linux, vari UNIX, Mac OS X, e MS Windows tramite Cygwin.<br/>
Gli strumenti più diffusi per utilizzare il protocollo SSH sono la [http://www.openssh.com/ suite OpenSSH] che è disponibile per OpenBSD, Linux, vari UNIX, Mac OS X, e MS Windows tramite Cygwin.<br/>
Nella suite sono inclusi diversi client, tra cui il più famoso è <code>ssh</code> che permette di aprire appunto una shell remota connettendosi al server. Altri client sono <code>scp</code> che emula il comportamento di <code>cp</code> e <code>sftp</code> che ha un'interfaccia molto simile a <code>ftp</code> (simula un server FTP).
Nella suite sono inclusi diversi client, tra cui il più famoso è <code>ssh</code> che permette di aprire appunto una shell remota connettendosi al server. Altri client sono <code>scp</code> che emula il comportamento di <code>cp</code> e <code>sftp</code> che ha un'interfaccia molto simile a <code>ftp</code> (simula un server FTP).
Riga 12: Riga 14:
Su sistemi Debian è possibile installare separatamente un server SSH (sulla macchina a cui si vuole accedere) o un client SSH (sulla macchina da cui si vuole accedere a un server SSH).
Su sistemi Debian è possibile installare separatamente un server SSH (sulla macchina a cui si vuole accedere) o un client SSH (sulla macchina da cui si vuole accedere a un server SSH).


Per installare un server SSH:
== Autenticazione e crittografia della connessione ==
<pre># apt-get install openssh-server</pre>
 
Per installare invece un client SSH:
La fase di autenticazione si basa sulla [http://it.wikipedia.org/wiki/Crittografia_asimmetrica criptografia asimmetrica] detta anche '''crittografia a coppia di chiavi''' o, più semplicemente, '''a chiave pubblica/privata''' (o, semplicemente, '''a chiave pubblica''') che consiste nella generazione di una coppia di chiavi (chiamate [http://it.wikipedia.org/wiki/Chiave_privata chiave privata] e [http://it.wikipedia.org/wiki/Chiave_pubblica chiave pubblica]). In pratica, la '''chiave pubblica''' codifica la comunicazione mentre la '''chiave privata''' decodifica tale comunicazione e vengono generate usando degli algoritmi asimmetrici, per esempio [http://it.wikipedia.org/wiki/RSA RSA] e [https://en.wikipedia.org/wiki/EdDSA EdDSA (ed25519)]: le connessioni che usano tali coppie di chiavi prodotte da questi algoritmi asimmetrici sono dette '''connessioni SSH'''. Tali algoritmi, però, servono soltanto per instaurare una connessione criptata fra il client SSH e il server SSH in quanto, per il trasferimento vero e proprio dei dati, si usano degli algoritmi simmetrici, come AES o 3DES, che sono molto più efficienti per questo scopo ovvero per cifrare la comunicazione. Quindi:
<pre># apt-get install openssh-client</pre>
<br>
una '''connessione SSH''' è una connessione cifrata che utilizza gli algoritmi asimmetrici RSA o DSA soltanto per verificare se una chiave pubblica, memorizzata sul server, derivi da una chiave privata salvata sul client (in modo da garantire la reciproca autenticità del server e del client) in modo da essere utilizzata, per l'intera sessione, per la cifratura simmetrica con algoritmi come AES o 3DES.


== Algoritmi ==
La '''connessione SSH''' avviene tipicamente sulla '''porta 22''' e, di norma, il server risponde aprendo una shell di comando.
L'algoritmo di cifratura del canale di comunicazione è di tipo ibrido: viene usato inizialmente un [http://it.wikipedia.org/wiki/Crittografia_asimmetrica algoritmo asimmetrico a chiave pubblica] (tipicamente RSA o DSA) per scambiarsi una chiave di sessione che a sua volta verrà usata per cifrare con un [http://it.wikipedia.org/wiki/Crittografia_simmetrica algoritmo simmetrico] tutta la successiva comunicazione. Gli algoritmi simmetrici usati usualmente sono AES o 3DES.
<br/>
Con un software client adatto è però possibile sfruttare, tramite il meccanismo del [http://en.wikipedia.org/wiki/Tunneling_protocol tunneling], la possibilità del protocollo SSH di instradare attraverso il canale criptato sulla porta 22 anche il traffico di altre porte.
<br/>
Questa importante caratteristica consente quindi di sottoporre a comunicazione criptata protocolli che in origine non prevedono questa possibilità; inoltre, utilizzando una sola porta per la trasmissione di pacchetti che invece ne userebbero molte altre, è possibile collegarsi ad un host Linux posto dietro ad un firewall senza bisogno di modificarne le impostazioni.




Riga 31: Riga 37:
* [http://en.wikipedia.org/wiki/Secure_Shell Secure Shell] su Wikipedia (en)
* [http://en.wikipedia.org/wiki/Secure_Shell Secure Shell] su Wikipedia (en)
* [http://en.wikipedia.org/wiki/Public-key_cryptography Public-key cryptography] su Wikipedia (en): spiega, molto meglio del corrispondente articolo italiano, in cosa consiste la crittografia a chiave pubblica.
* [http://en.wikipedia.org/wiki/Public-key_cryptography Public-key cryptography] su Wikipedia (en): spiega, molto meglio del corrispondente articolo italiano, in cosa consiste la crittografia a chiave pubblica.
* [https://www.digitalocean.com/community/tutorials/understanding-the-ssh-encryption-and-connection-process SSH encryption and connection process], pagina che spiega le basi di chiavi pubblica/privata e di come funziona il processo autenticativo di SSH.


[[Categoria:Glossario]]
[[Categoria:Glossario]]
3 155

contributi