Mentre i protocolli come PGP proteggono il contenuto dei messaggi (sicurezza a livello applicativo), la navigazione web e le transazioni finanziarie richiedono una protezione a livello di sessione, capace di cifrare l'intero flusso di dati tra client e server in tempo reale.
Il Protocollo SSL/TLS
I protocolli SSL (Secure Sockets Layer) e il suo successore TLS (Transport Layer Security) operano al Livello 5 (Sessione) dello stack OSI. Il loro obiettivo è trasformare una connessione insicura in un canale protetto tramite tre funzioni:
- Riservatezza: I dati sono cifrati tramite algoritmi simmetrici (come AES o RC4) dopo una negoziazione iniziale.
- Integrità: Viene utilizzato un codice MAC (Message Authentication Code) per assicurare che i pacchetti non siano stati manomessi.
- Autenticazione: Il server dimostra la propria identità tramite un Certificato Digitale X.509, firmato da una Certification Authority fidata.
Funzionamento del TLS: Handshake e Record
L'architettura del TLS si divide in due sotto-protocolli principali che intervengono in momenti diversi della connessione:
- Handshake Protocol: È la fase di "stretta di mano". All'inizio della connessione, client e server negoziano la versione del protocollo da usare, scelgono gli algoritmi di cifratura (cipher suites) e autenticano il server. Il client genera un segreto (premaster secret), lo cifra con la chiave pubblica del server e glielo invia; da questo segreto entrambi genereranno le chiavi simmetriche di sessione.
- Record Protocol: Una volta stabilita la connessione sicura, questo protocollo si occupa del trasferimento effettivo dei dati. Riceve i dati dall'applicazione, li frammenta, li comprime, applica il MAC per l'integrità e infine li cifra prima di passarli al livello TCP.
Transazioni Sicure: Il Protocollo SET
Sebbene SSL/TLS garantisca la riservatezza della comunicazione, non è sufficiente a gestire la complessità delle transazioni finanziarie, dove occorre garantire l'identità di tutte le parti coinvolte (acquirente, venditore e banche). Per questo è stato creato il protocollo SET (Secure Electronic Transaction).
Gli obiettivi di SET sono specifici per l'e-commerce: garantire che il possessore della carta sia legittimo e che il commerciante sia autorizzato ad accettare pagamenti, mantenendo i dati sensibili della carta nascosti al venditore stesso.
I Componenti del sistema SET:
- Cardholder: Il cliente che effettua l'acquisto.
- Merchant: Il venditore.
- Issuer: La banca che ha emesso la carta di credito.
- Acquirer: L'istituto finanziario che supporta il commerciante.
- Payment Gateway: L'intermediario che autorizza la transazione verificando le firme digitali e contattando le banche.
Flusso di Pagamento SET