diff --git a/networking/035-ssh.md b/networking/035-ssh.md index f214e61..804b22e 100644 --- a/networking/035-ssh.md +++ b/networking/035-ssh.md @@ -1,18 +1,18 @@ # SSH -`SSH`, acronimo di *Secure Shell*, è un protocollo di rete dell'application layer che consente l'accesso remoto sicuro a host remoti. +`SSH`, acronimo di *Secure Shell*, è un protocollo dell'Application layer che consente l'accesso remoto sicuro a host remoti. ## Caratteristiche principali - SSH *utilizza la crittografia* per proteggere le comunicazioni tra il client e il server -- SSH si basa su TCP ed è associato alla well-known port 22 +- Si basa su TCP ed è associato alla *well-known port 22* - Supporta diversi metodi di autenticazione, tra cui: - Username/password - - Chiave pubblica: un metodo più sicuro che utilizza una coppia di chiavi crittografiche (pubblica e privata) per autenticare l'utente senza la necessità di trasmettere una password + - Chiave pubblica ## Architettura SSH -SSH è un protocollo dell'application layer, ma la sua architettura è strutturata in moduli distinti che operano tra l'Application layer e il Transport layer: +SSH è un protocollo dell'application layer, ma la sua architettura è strutturata in moduli distinti che operano tra l'Application layer e il Transport layer. ### Connection Layer Protocol @@ -23,7 +23,7 @@ Questo modulo gestisce le sessioni e la comunicazione client/server all'interno Questo modulo si occupa dell'autenticazione degli utenti, implementando diversi metodi: - **Username/password** -- **Chiave pubblica**: lato client, viene sempre utilizzata la crittografia asimmetrica. Il client genera una coppia di chiavi (pubblica e privata) e memorizza la chiave pubblica nel file `.ssh/authorized_keys` del server. Durante il processo di autenticazione, il server crea un messaggio randomico, cifrato con la chiave pubblica del client, e lo invia a quest'ultimo. Solo il client, utilizzando la sua chiave privata, putrá decifrare il messaggio. Se il messaggio decifrato corrisponde a quello inviato, il server può confermare l'identità del client, a meno che la chiave privata non sia stata compromessa. +- **Chiave pubblica**: lato client, viene sempre utilizzata la crittografia asimmetrica. Il client genera una coppia di chiavi (pubblica e privata) e memorizza la chiave pubblica nel file `.ssh/authorized_keys` del server. Durante il processo di autenticazione, il server crea un messaggio randomico, cifrato con la chiave pubblica del client, e lo invia a quest'ultimo. Solo il client, utilizzando la sua chiave privata, putrá decifrare il messaggio. Se il messaggio decifrato corrisponde a quello inviato, il server può confermare l'identità del client, a meno che la chiave privata non sia stata compromessa ### Transport Layer Protocol @@ -33,4 +33,4 @@ Questo modulo è specifico di SSH e non deve essere confuso con il Transport lay - **Scambio dei messaggi**: viene utilizzata la crittografia simmetrica a chiave singola per lo scambio dei messaggi, in quanto meno onerosa dal punto di vista computazionale - **Cifratura**: SSH supporta vari algoritmi di cifratura - **Compressione**: Vengono utilizzati algoritmi di compressione per ottimizzare lo scambio dei dati -- **Integrità dei Pacchetti**: SSH implementa meccanismi per garantire che i pacchetti di dati non vengano alterati durante la trasmissione +- **Integrità dei pacchetti**: SSH implementa meccanismi per garantire che i pacchetti di dati non vengano alterati durante la trasmissione