1 / 92

Sicurezza in rete SSL

Sicurezza in rete SSL. Patrizio ANGELINI Alessio BROZZI Giulia MASSIMI Roberto TURCHETTI. Elementi di Crittografia AA 2004/2005. Sommario. Introduzione Modelli e meccanismi di sicurezza SSL ( Secure Socket Layer ) Generalità Architettura Protocolli Handshake Alert

yamin
Télécharger la présentation

Sicurezza in rete SSL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sicurezza in reteSSL Patrizio ANGELINI Alessio BROZZI Giulia MASSIMI Roberto TURCHETTI Elementi di Crittografia AA 2004/2005

  2. Sommario • Introduzione • Modelli e meccanismi di sicurezza • SSL (Secure Socket Layer) • Generalità • Architettura • Protocolli • Handshake • Alert • Change Cipher Spec • Record • Conclusioni

  3. Alessio Brozzi • Introduzione • Modelli e meccanismi di sicurezza • SSL – Generalità, obiettivi e funzionalità • Certificati e PKI • Commercio elettronico

  4. Introduzione Sicurezza in rete • Sicurezza a livello applicativo • concepita ad hoc per le applicazioni • richiede l’utilizzo di più meccanismi • Sicurezza a livello trasporto • fornisce interfacce comuni a tutti i servizi applicativi • richiede piccole modifiche alle applicazioni • Sicurezza a livello rete • funziona con applicazioni che non si curano affatto della sicurezza • consente di attraversare in modo sicuro domini non sicuri • può richiedere modifiche a livello Sistema Operativo Intro Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  5. Modelli di sicurezza Ci sono due modi per fornire un trasporto sicuro (cioè non intercettabile da orecchie maliziose durante la trasmissione): • usare un'infrastruttura di trasporto sicura • il protocollo non cambia, ma ogni pacchetto trasmesso nello scambio di informazioni viene gestito in maniera sicura dal protocollo di trasporto • usare un protocollo sicuro a livello applicazione • si usa un protocollo anche diverso, che si occupa di gestire la trasmissione delle informazioni M&M Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  6. HTTP FTP SMTP HTTP FTP SMTP SSL TCP TCP IP/IPSEC IP S/MIME PGP SET HTTPS Kerberos SMTP HTTP UDP TCP IP Meccanismi di sicurezza • Livello applicazione • PGP • S/MIME • Kerberos • HTTPS/SHTTP • SET • Livellotrasporto • SSL (Secure Socket Layer) • Livello rete • IPSec M&M Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  7. Meccanismi di sicurezzalivello applicazione (1) • PGP (Pretty Good Privacy) • uno dei software dedicati alla sicurezza dei documenti e dei messaggi di posta elettronica, sviluppato da Zimmermann nel 1991 • PGPkey: è il portachiavi che mantiene la coppia di chiavi privata e pubblica e tutte le chiavi pubbliche dei vari contatti • PGPmail: è la barra degli strumenti di PGP per criptare, decriptare, firmare, verificare e cancellare in modo sicuro • PGPdisk: realizza un disco virtuale nel quale tenere tutti i documenti privati senza bisogno di criptarli singolarmente. Questo disco, finché non è montato, non è accessibile all’utente • standard de facto per la cifratura di email M&M Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  8. Meccanismi di sicurezzalivello applicazione (2) • S/MIME (Secure/Multipurpose Internet Mail Extension) • estensione di MIME* che implementa funzionalità di sicurezza introducendo nuovi tipi di contenuto per i messaggi di posta elettronica da utilizzarsi per inserire firme, certificati e blocchi di dati cifrati • l’autenticazione si basa sui certificati X.509 • Kerberos • protocollo di autenticazione dei servizi di rete creato dal MIT • utilizza la crittografia a chiave segreta, evitando così la necessità di inviare password attraverso la rete • consente di proteggere la rete dagli attacchi più comuni ma può risultare complesso da implementare • il server mantiene tutte le chiavi segrete e dopo aver autenticato l’utente distribuisce le session key • se il server è compromesso si perde l’integrità dell’intero sistema * MIME è il formato standard dei comuni messaggi di posta elettronica M&M Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  9. Meccanismi di sicurezzalivello applicazione (3) • HTTPS (RFC 2818) • introdotto da Netscape, trasmette i dati in HTTP semplice su un protocollo di trasporto che si occupa di crittografare tutti i pacchetti (SSL) • la porta di ascolto del server e lo schema di URI (Uniform Resource Identifier) utilizzati sono diversi da quelli del consueto HTTP • S-HTTP (RFC 2660) • poco diffuso, incapsula richieste e risposte HTTP in un messaggio crittografato secondo o un formato MIME apposito (MIME Object Security Services, MOSS), oppure un formato CMS (Cryptographic Message Syntax) • più efficiente ma più complesso • SET (Secure Electronic Transaction) • protocollo e infrastruttura per pagamenti con carte di credito • sviluppato in origine da Visa International e MasterCard International • limitato a messaggi inerenti transazioni commerciali • coinvolge (e certifica) acquirente, venditore e banca del venditore M&M Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  10. Meccanismi di sicurezzalivello trasporto • SSL (Secure Socket Layer) • privatezza della comunicazione • cifratura a chiave simmetrica • autenticazione Server • utilizzo di certificati digitali per scambio di chiavi • autenticazione Client • integrità dei dati M&M Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  11. Meccanismi di sicurezzalivello rete • IPsec (IP security) • metodo robusto e facilmente espandibile a garanzia della sicurezza del protocollo IP e dei protocolli di livello superiore • protegge i pacchetti tra due host, tra due security gateway (router o firewall) oppure tra un sistema host ed un security gateway • può essere implementato più semplicemente in HW rispetto ad SSL, il quale necessita di TCP • non richiede alcuna modifica alle applicazioni o ai livelli superiori • necessario modificare i sistemi operativi M&M Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  12. SSL - Un bit di storia.. • Sviluppato ed introdotto da Netscape Communications Corporation • 1994 versione 1: diversi problemi, mai utilizzata • 1994 versione 2: implementata in Navigator 1 • 1996 versione 3: implementata in Navigator 3 • 1999 TLS (Transport Layer Security) RFC 2246 • versione di SSLv3 standardizzata dall’IETF SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  13. SSL – Obiettivi (1) • Sicurezza del collegamento: stabilire un collegamento sicuro tra due sistemi • l’intento è quello di fornire un canale di comunicazione sicuro autenticato con chiavi effimere, basandosi su credenziali crittografiche asimmetriche di lunga durata: certificati X.509 • Interoperabilità: programmatori di diverse organizzazioni dovrebbero essere in grado di sviluppare applicazioni utilizzando SSL, accordandosi sui parametri utilizzati dagli algoritmi di crittografia senza necessità di conoscere il codice l'uno dell'altro SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  14. SSL – Obiettivi (2) • Ampliamento: fornire una struttura dentro la quale i futuri metodi di crittografia a chiave pubblica e chiave simmetrica possano essere incorporati senza dover per questo creare un nuovo protocollo • Efficienza: ridurre il numero di collegamenti che hanno bisogno di essere stabiliti ex-novo, soprattutto per non sovraccaricare la rete SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  15. SSL - Funzionalità • Privatezza del collegamento: i dati vengono protetti utilizzando algoritmi di crittografia a chiave simmetrica (ad es. DES, RC4, ecc.) • Autenticazione: usando la crittografia a chiave pubblica i client sono sicuri di comunicare con il server corretto, prevenendo eventuali interposizioni. È prevista la certificazione sia del server che del client • Affidabilità: il livello di trasporto include un controllo sull'integrità del messaggio basato su un apposito MAC (Message Authentication Code) che utilizza funzioni hash sicure come SHA, MD5 SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  16. Una ( - certificati digitali e PKI Un certificato digitale: • attesta la relazione tra un soggetto(individuo o altra entità) identificato tramite un insieme appropriato di dati (nome,cognome, etc..) e una chiave pubblica • è un oggetto pubblico, accessibile da chiunque • è emesso da un’autorità di certificazione (CA) che lo firma con la propria chiave privata • è conforme allo standard X.509 L’infrastruttura di gestione dei certificati prende il nome di Public Key Infrastructure (PKI) SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  17. Certificati X.509 • Un certificato X.509 contiene varie informazioni, tra cui: • numero seriale • nome della CA che lo ha emesso • periodo di validità • nome del soggetto • chiave pubblica del soggetto • firma della CA SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  18. Certificati X.509: utilizzo • I certificati consentono ai Web server ed ai client l’autenticazione, per mezzo delle chiavi pubbliche, prima di stabilire una connessione • Con un certificato si ha la garanzia che una data chiave pubblica appartenga ad un dato utente • tale garanzia è fornita dall’autorità di certificazione • Per controllare l’autenticità del certificato dell’utente è necessario avere la chiave pubblica (quindi il certificato) della CA • i certificati della CA sono autofirmati (tanta fiducia… ) • è necessario ottenerli con un meccanismo ad hoc (ad esempio preinstallati nel sistema operativo o nell’applicazione) SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  19. Certificati X.509:Gestione Browser SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  20. Struttura della PKI (1) • Certification Authority: • l’Autorità che emette i certificati e le liste di sospensione e revoca • dispone di un certificato con il quale sono firmati tutti i certificati emessi agli utenti • è possibile costruire gerarchie di CA • una CA “root” genera e firma il certificato delle sotto-CA • il processo può essere ripetuto per un numero infinito di livelli • deve essere installata su di una macchina sicura SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  21. Struttura della PKI (2) • Registration Authority: • gli utenti vi si rivolgono per richiedere la certificazione delle chiavi • richiede l’identificazione dell’utente tramite chiave pubblica e indirizzo e-mail • Certificate Server: • servizio di directory accessibile mediante un “operational protocol”, tipicamente LDAP • lista di pubblicazione dei certificati e delle liste di certificati revocati e sospesi SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  22. Applicazioni pratiche • Commercio elettronico • ordinazioni: le form con cui si ordina un prodotto vengono inviate usando SSL • pagamenti: quando viene inserito un numero di carta di credito, l’invio dei dati avviene usando SSL • Accesso ad informazioni sicure • consultazione di informazioni accessibili solo da utenti “qualificati” • invio di password o altri dati riservati SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  23. Commercio elettronico – esempio (1) Def: Siano dati • a∈ A :A = { acquirenti con accesso a Internet } • b∈ V :V = { venditori con catalogo elettronico su Internet }. Si definisce esempio di commercio elettronico tra a e b la sequenza di azioni: • a consulta il catalogo di b, sceglie la merce da acquistare e attiva la transazione • b fornisce ad a la propria chiave pubblica SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  24. Commercio elettronico – esempio (2) • Il PC di a“automagicamente”: • prepara l’ordine elettronico m • genera una chiave k con cui codifica m  m* • codifica k con la chiave pubblica di b k* • invia m* e k* a b • Il PC di b“automagicamente” : • decodifica k* con la chiave privata di b • con k decodifica m* e ottienel’ordine • La merce viene spedita da b Oss: come effettuare il pagamento? SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  25. Commercio elettronico – esempio (3) Def: Siano dati • a∈ A :A = { acquirenti con accesso a Internet } • b∈ V :V = { venditori con catalogo elettronico su Internet } • cc∈ C :C = { società di carte di credito }. Si definisce esempio di pagamento con carta di credito tra a e b tramite cc la sequenza di azioni: • a consulta il catalogo di b, sceglie la merce da acquistare, fornisce i dati della propria carta di credito e attiva la transazione SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  26. I Teorema del pagamento...(schema teorico) • Il PC di a compie “automagicamente” due operazioni: • prepara l’ordine elettronico senza i dati della carta di credito e lo invia a b • prepara la nota di debito con i dati della carta di credito e con riferimento a b; codifica questa nota con un sistema di doppia codifica e la invia a cc • cc decodifica la nota di debito, effettua i controlli rituali, contabilizza l’addebito su a e l’accredito su b, comunica a b il buon esito contabile dell’operazione • b riceve il messaggio da cc ed evade l’ordine TEO: il sistema è sicuro ma informaticamente complesso! La dimostrazione è lasciata per esercizio al lettore… (sugg.: 2 collegamenti indipendenti…) SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  27. II Teorema del pagamento...(1)(schema reale) TEO:assunte vere le ipotesi del I Teorema del pagamento esiste sempre un’alternativa semplice per risolvere il problema utilizzando SSL (Secure Socket Layer) • il messaggio m contiene sia i codici della merce sia le coordinate della carta di credito • m viene cifrato da a con un sistema a doppia codifica • m viene inviato a b • l’inoltro delle coordinate della carta di credito a cc è a cura del venditore b SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  28. II Teorema del pagamento...(2)(schema reale) Vantaggi • la chiave k viene generata presso il mittente a, cambia ad ogni transazione e non esce dal PC di a • b è sicuro di ricevere tramite cc il corrispettivo della merce spedita Svantaggi • b viene a conoscere le coordinate della carta di credito di a: la sicurezza del sistema pertanto è anche in funzione dell’etica di b, non valutabile a priori SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  29. II Teorema del pagamento...(3)(una variante) • il messaggio m contiene sia i codici della merce sia le coordinate della carta di credito • m viene cifrato da a con un sistema a doppia codifica • m stavolta viene inviato a cc • l’inoltro dell’ordine al venditore b è a cura di cc Tale schema presenta gli stessi vantaggi del precedente senza la necessità di basarsi sull’etica di b SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  30. Roberto Turchetti • Browser & SSL • Esempio • Architettura SSL • Protocollo Handshake • Fasi del protocollo • Esempio

  31. Browser & SSL SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  32. Esempio (1) Modalità standard per accedere ai siti web con connessioni non sicure Il simbolo del lucchetto aperto significa che non c’è sicurezza né criptazione SSL Gen

  33. Esempio (2) Messaggio che dimostra l’assenza di certificato SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  34. Esempio (3) Si sta procedendo con pagamento mediante carta di credito quindi la sessione diventa protetta SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  35. Esempio (4) Il certificato è stato rilasciato a www.itn.net SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  36. Esempio (5) Quindi i dati della carta di credito NON andranno a United ma a Travelocity.com !! SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  37. SSL a grandi linee • SSL prevede una fase iniziale, detta di handshake, in cui viene usata una connessione TCP/IP non sicura • Il risultato di tale fase, in cui avviene la contrattazione da parte di client e server del livello e degli algoritmi di sicurezza da usare, è l'avvio di una nuova sessione • SSL procede con la cifratura (e/o con la messa in chiaro) della sequenza di byte del protocollo applicazione usato (dati, url, username e password…) SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  38. Sessione SSL • La sessione SSL è un’associazione logica tra client e server • definisce un insieme di parametri crittografici che possono essere condivisi da varie connessioni • La sessione evita la costosa rinegoziazione dei parametri di sicurezza per ciascuna connessione SSL Gen Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  39. SSL - Architettura generale SSL Arch Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  40. Architettura generalecomponenti di SSL (1) • Protocollo SSL Handshake • permette al server ed al client di autenticarsi a vicenda e di negoziare un algoritmo di crittografia e le relative chiavi prima che il livello di applicazione trasmetta o riceva il suo primo byte • Protocollo Change Cipher Spec • rende operativo l’insieme di protocolli di cifratura appena negoziati SSL Arch Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  41. Architettura generalecomponenti di SSL (2) • Protocollo Alert • notifica situazioni anomale o segnala eventuali problemi • Protocollo SSL Record • è interfacciato su di un protocollo di trasporto affidabile come il TCP • è usato per l'incapsulamento dei dati provenienti dai protocolli superiori. Si occupa della compressione, del MAC e della cifratura SSL Arch Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  42. Protocollo Handshake (1) È responsabile della negoziazione di una sessione, che è costituita dai seguenti parametri: • session identifer: identificatore della sessione scelto dal server • peer certificate: certificato X.509 dell'interlocutore (opzionale) • compression method: algoritmo di compressione • cipher spec: algoritmi di cifratura, autenticazione e relativi parametri crittografici • master secret • is resumable: flag che indica se la sessione può essere utilizzata per iniziare nuove connessioni SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  43. Protocollo Handshake (2) • autenticazione server • il client cifra dei dati segreti con la chiave pubblica del server • autenticazione client • il client cifra alcuni dati tramite la sua chiave privata, creando in pratica una firma L'handshake consente a client e server di autenticarsi a vicenda usando un meccanismo a chiave pubblica: SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  44. Protocollo Handshake (3) La richiesta di una nuova connessione sicura può avvenire o da parte del client o da parte del server. Client e server cooperano per: • la creazione di chiavi simmetriche usate per una veloce cifratura/decifratura • la scelta della suite di cifratura (algoritmi e metodi di compressione) SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  45. Handshake - Fasi * opzionale SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  46. HS – dettagli (1) Step1: Client Hello Il client invia un messaggio “Client Hello” al Server per informarlo che vuole iniziare, o eventualmente rinegoziare, una sessione. Il messaggio contiene i campi: • protocol version: due byte utilizzati per indicare la versione di SSL in uso • random byte: byte casuali generati dal client • session identifier: 32 byte contenenti l'identificativo di una precedente sessione che potrebbe essere riesumata. Se sono tutti zero indicano che si tratta di una nuova sessione • lista delle CipherSuite: lista contenente le combinazioni di algoritmi di crittografia supportati dal client, ordinata secondo le sue preferenze • lista di compression method: lista di algoritmi di compressione, in ordine di preferenza, supportati dal client SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  47. HS – dettagli (2) Step2: Server HelloLa risposta del server può essere: • messaggio “Server Hello”, nel quale comunica la suite di crittografia e l’algoritmo di compressione scelti e invia altri dati sulla sessione • alert, nel caso di fallimento dell’handshake • failure, se il server non supporta gli algoritmi del client Il messaggio contiene i campi: • protocol version: 2 byte che rappresentano la versione del protocollo scelto. Questo valore corrisponde al minimo tra la versione del protocollo proposta dal client e la massima supportata dal server • random byte: byte casuali generati dal server …continua SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  48. HS – dettagli (3) …continua Server Hello • session identifier: identifica la sessione che deve essere avviata. Se l'identificativo di sessione inviato dal client è diverso da zero la vecchia sessione verrà riesumata, nel caso in cui sia pari a zero il server setterà un nuovo identificativo per la sessione da avviare • CipherSuite: una coppia di byte che rappresenta la famiglia di algoritmi scelta dal server tra quelli proposti dal client • compression method: rappresenta il metodo di compressione scelto dal server tra quelli proposti dal client SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  49. HS – dettagli (4) • Step3: Server Certificate (opzionale) Il server manda un messaggio di “Server Certificate” per la sua autenticazione. Se il server non ha un certificato, manda un “Server Key Exchange”che contiene i parametri per Diffie-Hellman o per RSA. La scelta dipende dalla CipherSuite selezionata. Inoltre il server può richiedere al client un certificato (“Client Certificate Request”). SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

  50. HS – dettagli (5) • Step4: Server Hello Done Il messaggio di “Server Hello Done” è inviato al client per indicare che la fase di Hello è completata. Dopo l'invio del messaggio il server si mette in attesa di una risposta • Step5: Client Certificate Il messaggio “Client Certificate” viene inviato solo se il server ha richiesto un certificato. Se questo non è disponibile, il client lo segnalerà per mezzo di un messaggio di alert, al quale il server potrebbe rispondere con un errore fatale se l'autenticazione è necessaria SSL HS Sicurezza in rete – SSL (Angelini, Brozzi, Massimi, Turchetti)

More Related