Il layer 6 del modello OSI è lo strato di presentazione. Questo strato è unico in quanto è il responsabile della presentazione delle informazioni. Il suo ruolo è di operare come convertitore e traduttore di dati da un formato a un altro, come nel caso dell’ASCII, dell’EBCDIC o del JPEG, ma il layer 6 può anche essere usato per la crittografia.
Un esempio in questo senso è il Secure Sockets Layer (SSL), il protocollo sviluppato per fungere da soluzione crittografica nella protezione dei dati in transito. SSL risiede sotto lo strato di applicazione ma sopra lo strato di trasporto. E dato che SSL svolge un ruolo tanto importante nella sicurezza dei dati, pensiamo possa essere utile entrare un po’ più nel dettaglio circa il suo modo di operare.
Iniziamo con un po’ di storia. Netscape ha sviluppato l’SSL nel 1994 come mezzo per rendere sicure le comunicazione della rete. Più in dettaglio, SSL è stato destinato a proteggere i dati trasportati da un browser Web a un server Web e viceversa.
Mentre SSL non è uno standard industriale – in quanto sviluppato da Netscape – lo è invece Trasport Layer Security (TLS) che è stato creato dall’Internet Engineering Task Force (IETF). I programmi che usano TSL operano in modo molto simile a quelli che usano SSL.
Generalmente, SSL e TLS sono intercambiabili. Entrambi i servizi seguono un processo standard per stabilire la comunicazione:
1. Un client usa un browser Web per mettersi in contatto con un server Web che ospita un URL sicuro.
2. Il server Web risponde alla richiesta del client e trasmette il certificato digitale del server al browser Web. Il certificato X.509 è il tipo usato più comunemente.
3. Il client verifica che tale certificato sia valido e corretto. I certificati sono emessi da autorità di certificazione, quali Verisign. Questo è un punto importante perché il certificato autentica la società del server Web come legittima.
4. Una volta validato il certificato, il client genera una chiave per la sola sessione corrente, che sarà usata per cifrare tutta la comunicazione con il server Web.
5. Il client cifra la chiave di sessione con la chiave pubblica del server Web, che è stata trasmessa con il certificato digitale. Usando la chiave di sessione del server Web si accerta che soltanto tale server possa decriptare i dati.
6. A questo punto, è stabilita una sessione sicura ed entrambe le parti possono comunicare attraverso una canale fidato.
Questo processo permette che le entità dialoghino in modo affidabile. Il client e il server Web si passano i dati avanti e indietro come farebbero normalmente, usando il TCP. La differenza è che il traffico è cifrato. Sono inoltre inclusi alcuni controlli per accertare l’integrità del messaggio. Ciò dà ad entrambe le parti la sicurezza che le informazioni non vengano alterate durante transito.
Minacce per il Layer 6
Pur potendo attribuire un elevato livello di sicurezza sia per SSL che per TLS, esistono comunque alcune potenziali minacce. Due delle più probabili possono essere classificate come gli attacchi del falso certificato e man-in-the-middle. I primi richiedono che l’attacker fornisca al client un falso certificato. Gli utenti dovrebbero accorgersi di questo attacco, ricevendo un avvertimento da un pop-up circa un problema con il certificato. Quest’ultimo è molto simile a un certificato reale, però non è firmato da una certication authority di comprovata fiducia.
Gli attacchi man-in.the-middle sono difficili da identificare perché l’attacker deve intercettare la comunicazione fra il client e il server al fine di sostituire le chiavi legittime con chiavi proprie. Anche se questi attacchi contro l’SSL sono possibili, una minaccia ben più grande viene da quelle aziende che hanno deciso non usare affatto la crittografia e di comunicare semplicemente ai loro clienti le informazioni in testo libero.
Tutto sommato, protocolli come SSL e TLS si sono rivelati molto efficaci. Ciò è testimoniato dai milioni e milioni di scambi sicuri che avvengono ogni giorno.