: applicazioni telematiche Secure Socket Layer E-commerce Trading on-line Internet banking... Protocollo proposto dalla Netscape Communications Corporation Garantisce confidenzialità e affidabilità delle comunicazioni su Internet Protegge da intrusioni, modifiche o falsificazioni. Confidenzialità + Autenticazione. Sistema ibrido. Ibrido: Cifrari Simmetici + Cifrari Asimmetrici + Cerificati + MAC 1
Utente U: Client Sistema S: Server Handshake crea un canale sicuro, affidabile e autenticato tra U e S entro il quale... HTTP HTTPS HTTP Handshake Record TCP/IP TCP/IP... record fa viaggiare i messaggi incapsulandoli in blocchi cifrati e autenticati. Handshake e Record Handshake: definisce il canale ovvero una suite crittografica che contiene i meccanismi di cifratura e autenticazione e le relative chiavi. Record implementa il canale utilizzando la suite per cifrare e autenticare i blocchi prima di darli in pasto a TCP. Client U - Client hello - Pre-master secret - Cert. del Client - Finished Server S - Server hello - Cert. del Server - Rich. Cert. Client - Server hello done - Finished - Scambio sicuro dati - Scambio sicuro dati Record Handshake 2
Client hello U manda a S un msg richiedendo una connessione. U specifica le prestazioni di sicurezza desiderate. Versione del protocollo supportato. Lista di algoritmi di compressione supportati. Cipher Suite: _RSA_WITH_3DES_EDE_CBC_SHA RSA: scambio chiavi di sessione 3DES_EDE_CBC: cifratura simmetrica SHA: funzione hash one-way per MAC U allega una sequenza di byte casuali. Server hello S riceve il msg (client hello) da U S selezione un algoritmo di compressione tra quelli elencati da U. S seleziona dalla cipher suite inviata da U una cipher suite comune (tra U e S). S invia a U un msg (server hello) contenente gli elementi selezionati e una nuova sequenza di byte casuali. Se U non riceve il msg server hello interrompe la comunicazione. Scambio di Certificati S si autentica con U inviandogli il proprio certificato digitale (sequenza di certificati emessi da diverse CA). Se i servizi offerti da S devono essere protetti negli accessi, S può richiedere a U di inviargli il suo certificato (autenticazione di U con S). Server hello done S invia il msg server hello done a U. server hello done sancisce la fine della fase in cui ci si accorda sulla cipher suite e sui parametri crittografici. 3
Autenticazione di S con U U controlla la validità della data del certificato ricevuto da S. U controlla che la CA che ha firmato il certificato sia tra quelle di cui si fida e che la firma sia autentica. Se S spedisce una lista di certificati si controlla l intera lista. Invio del pre-master secret Costruzione del master secret U costruisce un pre-master secret P (nuova sequenza di byte casuali codificati con il cifrario a chiave pubblica concordato con S. Nell esempio U usa RSA e la chiave pubblica di S contenuta nel certificato) U spedisce P a S dopo averlo cifrato con la chiave pubblica di S contenuta nel certificato e l algoritmo concordato. U combina P con alcune stringhe note + byte casuali contenuti in client hello e server hello e codifica il tutto con SHA e MD5 ottenendo il master secret M. Ricezione di P e costruzione di M S decifra il msg di U e ottiene P. S calcola M nello stesso modo con cui U aveva calcolato M a partire da P. Nota: S può farlo perché dispone delle stesse informazioni di cui dispone U. Invio del certificato di U (opzionale) Quando richiesto da S, U gli invia il suo certificato. Se non lo possiede si interrompe il protocollo. Insieme al certificato U allega, e firma con la sua chiave privata, la -history. S controlla il certificato e in caso di anomalie interrompe il protocollo. 4
U: Finished U invia a S il msg finished protetto utilizzando M. Costruzione di finished: F U = M + tutti msg di handshake scambiati finora +identità di U U codificando F U con SHA e MD5 e lo invia a S. S: Finished S verifica il msg finished di U ricalcolando il tutto. S invia a U il suo msg finished protetto utilizzando M. Costruzione di finished: F S = M + tutti msg di handshake scambiati finora (incluso il msg finished di U) +identità di S. S codifica F S con SHA e MD5 e lo invia a U. U verifica il msg finished ricevuo da S. A cosa serve M? S e U utilizzano M per generare le chiavi (sia per il cifrario simmetrico sia per le funzioni MAC) e per altri scopi... Nota: Le chiavi utilizzate da S e U sono diverse ma note ad entrambi. Ciò rende il protocollo ancora più sicuro. record I dati vengono frammentati in parti di lunghezza opportuna. Ogni blocco viene numerato, compresso, autenticato con MAC, cifrato con chiave segreta e trasmesso usando il protocollo di trasporto sottostante (esempio: TCP). Il destinatario opera in modo inverso al mittente e restituisce il messaggio all applicazione sovrastante (esempio: HTTP). 5
Client Hello e Server Hello In questa fase U e S si scambiano byte casuali (diversi ogni volta). M è funzione di queste sequenze di byte casuali. L intruso non può riutilizzare i msg di handshake di sessioni precedenti per impersonare S in una successiva sessione con U (attacco di reply). MAC in record Ogni blocco viene numerato e autenticato con MAC. MAC= H(blocco, numero, K, stringhe note) numero = 64 bit. No ripetizioni all interno della stessa sessione!!! Si previene così facendo l uso fraudolento e iterato dello stesso blocco nella stessa sessione Se un blocco viene perduto i blocchi successivi vanno ricreati e rispediti. MAC sono cifrati insieme al messaggio con chiave simmetrica. Autenticazione di S S si autentica con uso di certificato. No men in-the-middle attack. Il pre-master secret viaggia da U a S in modo sicuro in quanto U usa la chiave pubblica di S contenuta nel certificato. Possibile autenticazione di U Se richiesto U può autenticarsi mediante invio del suo certificato. In pratica: Il sistema dispone di certificati mentre gli utenti di solito no. Quando richiesto per autenticare U si procede con login e password. 6
Messaggi Finished Questi messaggi vengono costruiti in base al master secret e contengono tutte le informazioni che i due partner si sono scambiati durante la fase di handshake. Permettono a U e S di effettuare un controllo ulteriore sulle comunicazioni avvenute e di accertarsi di possedere lo stesso master secret. Permettono a U e S di accertarsi che non ci sia stato un attacco di tipo man in-the -middle. Generazioni Sequenze Casuali Sono contenute il client hello, server hello e premaster secret. Da loro dipendono fortemente il master secret e quindi le chiavi segrete di sessione. La sequenza contenuta nel pre-master secret è inviata da U a S in modo cifrato e la sua impredicibilità è cruciale per la sicurezza del canale. Se il generatore di sequenze pseudo-casuali non è di qualità l intero protocollo si indebolisce. Conclusioni è sicuro quanto la più debole cipher suite da esso supportata. Sarebbe meglio disabilitare nel proprio browser tutti i protocolli con chiavi troppo corte (esempio: cifrari simmetrici con chiavi a 40 bit e asimmetrici con chiavi fino a 512 bit) Non effettuare connessioni con sistemi anonimi perché si rischia che la propria password venga estorta!!! 7
8