
Se state testando o usando una VPN Secure Sockets Layer (SSL), vi potrebbe essere utile sapere esattamente come funziona SSL e da quali tipi di attacchi protegge.
Protocollo usato per rendere sicure le transazioni sulla rete, SSL è stato sviluppato da Netscape nella metà degli anni '90. Il suo successore, il Transport Layer Security (TLS), è stato sviluppato dall'Internet Engineering Task Force come evoluzione di SSL. Il funzionamento di base dei due protocolli è identico, ma TLS integra una serie di miglioramenti visto che SSL nel tempo ha avuto un sempre più ampio utilizzo. TLS 1.0 è documentato in RFC 2246. Definito in RFC 4346, TLS 1.1 corregge alcune vulnerabilità della versione iniziale.
SSL e TLS sono stati sviluppati soprattutto per proteggere le transazioni Web, ma possono essere usati per proteggere qualunque tipo di traffico della rete che utilizza TCP nello strato di trasporto (modello ISO(OSI). Sia SSL sia TLS sono situati sopra TCP nello stack di protocollo. Quando la sicurezza non è necessaria, le applicazioni si interfacciano con TCP; si interfacciano invece con SSL o TLS quando è necessaria una forma di sicurezza.
La posizione dei protocolli sopra il TCP significa che il protocollo dei dati può attraversare un firewall usando la Network Address Translation (NAT). Un'applicazione deve invece essere progettata in modo specifico per SSL o TLS, poiché la logica interna all'applicazione stessa deve poter stabilire quando utilizzare i protocolli o quando fare direttamente le chiamate al TCP. Tutti i browser usati solitamente supportano sia SSL sia TLS. Il supporto per le altre applicazioni è fornito dai vendor di VPN SSL.
Il primo step nella creazione di una connessione sicura risiede nel controllo dell'endpoint desiderato. Il processo di verifica dell'identità di detto endpoint è chiamato autenticazione e per attuarlo SSL e TLS usano i certificati X.509 con la crittografia a chiave pubblica. I certificati sono creati dalle authority di certificazione (CA). Il software del client contiene una lista delle CA approvate.
Il software che funge da client di TLS o di SSL richiede una connessione con un server, che risponde trasmettendo il relativo certificato. Il client verifica che sia collegato con la parte desiderata esaminando tale certificato, il quale contiene il domain name del server, la chiave pubblica del server, il domain name della CA coinvolta e la sua firma digitale. Il client a sua volta:
1. Controlla che la CA che emette il certificato sia sulla lista
delle CA approvate.
2. Se così è, usa la chiave pubblica della CA,
inclusa nella lista delle CA approvate, assieme la firma digitale della stessa
CA per verificare che il certificato non sia stato modificato da quando è stato
creato.
3. Per concludere, controlla che il domain name del server
fornito nel certificato sia identico a quello del domain name del server
richiesto.
4. Se è necessaria l'autenticazione del client, il server
segue gli stessi punti descritti sopra.
Una volta verificata l'identità degli endpoint, i dati possono cominciare a essere trasmessi. Per ridurre il carico di calcolo richiesto dalla chiave pubblica, viene impiegata la crittografia a chiave simmetrica. Inoltre, SSL e TLS usano i message authentication codes (MAC) per proteggere dagli attacchi “man in the middle”, in cui i dati sono intercettati e modificati fra il mittente e il destinatario.
