6 999
contributi
(corretta gerarchia titoli) |
S3v (discussione | contributi) mNessun oggetto della modifica |
||
(20 versioni intermedie di 4 utenti non mostrate) | |||
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 | |||
'''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. | |||
Le connessioni SSH vengono instaurate tipicamente sulla ''porta 22'' e, di norma, il server risponde aprendo una [[shell]] di comando, tuttavia tramite il meccanismo del [http://en.wikipedia.org/wiki/Tunneling_protocol tunneling] è possibile instradare attraverso tale canale criptato anche il traffico di altre porte e persino le connessioni generate da applicazioni grafiche che risiedono sul computer remoto (ad es. una sessione vnc).<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. | |||
== 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. | |||
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). | ||
Il client <code>ssh</code> ha un'interfaccia a linea di comando simile a quella di | Il client <code>ssh</code> ha un'interfaccia a linea di comando simile a quella di [[telnet]] e <code>rlogin</code>, ma, a differenza di questi ultimi, l'intera comunicazione (sia l'autenticazione che la sessione di lavoro) avviene in maniera cifrata. Per questo motivo, SSH è diventato uno standard di fatto per l'amministrazione remota di sistemi *nix e di molti dispositivi di rete, rendendo obsoleto il protocollo telnet, giudicato troppo pericoloso per la sua mancanza di protezione contro le intercettazioni. | ||
Altro client interessante, venuto recentemente alla ribalta è '''<code>[[SSHFS: montare una risorsa remota sfruttando FUSE ed SSH|SSHFS]]</code>''' che permette di montare directory remote ed usarle in tutto e per tutto come directory locali (grazie a [http://fuse.sourceforge.net/ FUSE]): tutti i programmi possono accedere alla cartella remota in maniera trasparente, ignorando del tutto che essa si trovi su un altro computer! | |||
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). | |||
== Autenticazione e crittografia della connessione == | |||
SSH implementa diversi metodi di autenticazione, dal comune metodo della coppia di credenziali utenza/password al più sicuro e sofisticato metodo della coppia di chiavi pubblica/privata. Tralasciando il metodo utenza/password assai noto, risulta più interessante spendere due parole sul secondo. | |||
La [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''') 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]): la '''chiave pubblica''' cripta la comunicazione, mentre la '''chiave privata''' è usata per decriptarla. Ogni coppia di chiavi viene generata 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 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. | |||
Riassumendo 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 [[Introduzione alla crittografia|cifratura simmetrica]] con algoritmi come AES o 3DES. | |||
== Voci correlate sul wiki == | |||
* [[OpenSSH]] | |||
* [[ | ** [[OpenSSH: file di configurazione | File di configurazione]] | ||
* [[ | ** [[OpenSSH: Windows | Connettere windows e linux]] | ||
* [[ | ** [[SSHFS: montare una risorsa remota sfruttando FUSE ed SSH]] | ||
* [[Fail2ban | Ostacolare attacchi ''brute-force'' al server SSH con fail2ban]] | |||
== Approfondimenti == | |||
* [http://it.wikipedia.org/wiki/Ssh Ssh] su Wikipedia (it) | * [http://it.wikipedia.org/wiki/Ssh Ssh] su Wikipedia (it) | ||
* [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]] |
contributi