SSL, o Secure Sockets Layer, è un protocollo crittografico progettato per fornire comunicazioni sicure su una rete di computer. Stabilisce un collegamento crittografato tra un server web e un browser web, garantendo che tutti i dati trasmessi tra loro rimangano privati e integri. SSL funziona utilizzando tecniche di crittografia asimmetrica per scambiare in modo sicuro chiavi di sessione simmetriche, che vengono quindi utilizzate per crittografare i dati durante la sessione.
SSL funziona avviando un processo di handshake tra il client (come un browser web) e il server (come un server web). Durante la stretta di mano:
- Il client invia un messaggio “ClientHello” al server, indicando le versioni SSL/TLS e gli algoritmi crittografici supportati.
- Il server risponde con un messaggio “ServerHello”, confermando la versione SSL/TLS e selezionando la suite di crittografia più potente per la crittografia.
- Il server invia il suo certificato digitale al client, che contiene la chiave pubblica del server. Il certificato viene emesso da un’autorità di certificazione (CA) attendibile e include informazioni per verificare l’identità del server.
- Il client verifica il certificato del server rispetto a un elenco di CA attendibili archiviato nel suo archivio certificati locale. Se il certificato è valido e affidabile, il client genera un segreto pre-master e lo crittografa con la chiave pubblica del server.
- Sia il client che il server utilizzano il segreto pre-master per generare in modo indipendente una chiave di sessione, che viene utilizzata per la crittografia simmetrica e la decrittografia dei dati scambiati durante la sessione SSL.
Il livello SSL nelle reti di computer funziona come un canale di comunicazione sicuro tra le applicazioni in esecuzione su sistemi client e server. Funziona al di sopra del livello di trasporto (ad esempio, TCP/IP) e al di sotto del livello di applicazione (ad esempio, HTTP, SMTP), fornendo crittografia e decrittografia trasparenti dei dati trasmessi tra gli endpoint di rete. Il livello SSL garantisce la riservatezza, l’integrità e l’autenticità dei dati trasmessi crittografando le informazioni sensibili e verificando l’identità delle parti comunicanti utilizzando certificati digitali.
Un esempio di SSL è HTTPS (HyperText Transfer Protocol Secure), che è la versione sicura di HTTP. HTTPS utilizza i protocolli SSL/TLS per crittografare i dati scambiati tra browser Web e server Web, impedendo l’intercettazione e la manomissione di informazioni sensibili come credenziali di accesso, dettagli di pagamento e dati personali. I siti Web protetti con HTTPS visualizzano l’icona di un lucchetto nella barra degli indirizzi del browser, a indicare che la comunicazione è crittografata e sicura.
DNS (Domain Name System) e SSL lavorano insieme per fornire comunicazioni sicure e autenticate su Internet:
- DNS risolve i nomi di dominio (ad esempio, www.example.com) in indirizzi IP che i computer utilizzano per comunicare su Internet.
- I protocolli SSL/TLS, utilizzati in HTTPS, garantiscono che i dati scambiati tra il client e il server durante le query e le risposte DNS siano crittografati e protetti dall’intercettazione o dalla modifica da parte di soggetti non autorizzati.
- Quando un client accede a un sito Web utilizzando HTTPS, il DNS risolve il nome di dominio in un indirizzo IP e SSL/TLS protegge la comunicazione successiva crittografando le query DNS, le risposte e tutti i dati scambiati tra il client e il server.
Nel complesso, SSL (Secure Sockets Layer) e il suo successore TLS (Transport Layer Security) sono fondamentali per stabilire canali di comunicazione sicuri sulle reti di computer, garantendo riservatezza, integrità e autenticità dei dati trasmessi tra client e server.