1 / 23

SSL/TLS

SSL/TLS. Web Security. Problemi Integrità Modifica dei dati, inserzione Confidenzialità Ascolto sulla rete Furti sulla macchina server SSL può risolvere alcuni problemi, ma misure di sicurezza fisica restano necessarie Autenticazione Impersonificazione

keanu
Download Presentation

SSL/TLS

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. SSL/TLS

  2. Web Security • Problemi • Integrità • Modifica dei dati, inserzione • Confidenzialità • Ascolto sulla rete • Furti sulla macchina server • SSL può risolvere alcuni problemi, ma misure di sicurezza fisica restano necessarie • Autenticazione • Impersonificazione • Denial of service, Web server modificati Applicazione di SSL/TLS

  3. SSL (Secure Socket Layer) • Originariamente sviluppato da Netscape • La versione 3 è disegnata contributi pubblici • Standardizzazione presso IETF • Comitato TLS (Transport Layer Security) formato • TLS considerabile SSL v3.1 • Compatibile con SSL v3

  4. Due concetti di SSL • Sessione SSL • Un’associazione tra client e server • Definisce un insieme di parametri crittografici creati dal protocollo di Handshake • Può essere condivisa da diverse connessioni SSL • Usata per evitare costose negoziazioni dei parametri criptografici per ogni connessione • Connessioni SSL • Un link di comunicazione sicuro, paritetico, transiente • Associata con (derivata da) una sessione SSL • Entrambe con diversi parametri che definiscono • Sessionstate • Connection state

  5. Stack di protocolli SSL SSL Handshake protocol SSL ChangeCipher Specprotocol SSLAlertprotocol HTTP SSL Record protocol TCP IP • Usa protocollo TCP: consegna dati affidabile • Aggiunge funzioni di sicurezza • SSL non è un protocollo singolo: protocollo a due livelli

  6. SSL Record protocol Dati applicativi Frammentazione Compressione Aggiunta MAC Cifratura Aggiunta header SSL Record protocol

  7. Change Cipher Spec protocol • Protocollo molto semplice: singolo comando tra client e server • Il nuovo stato stabilito dal protocollo di handshake è uno stato di pending non ancora valido • Il protocollo Change Cipher Spec rende attivo lo stato di pending: cambiano I parametri di connessione

  8. Alert protocol • Trasferisce gli alert collegati a SSL alle entità in connessione • Reso sicuro con il Record protocol usando i parametri di connessione attuali • Ogni messaggio è di due byte • Un bite per la severità dell’alert • Warning: connessione può essere ripristinata • Fatal: connessione terminata • Un bite per il tipo (alert code)

  9. Handshake protocol • Consente a client e server • Mutua autenticazione • Negoziazione di crittatura e protocollo MAC • Negoziazione delle chiavi crittografiche • Stabilire uno state • Eseguito prima di qualsiasi trasmissione di dati • Eseguito anche se si riutilizza una sessione già esistente

  10. Handshake protocol Type 1byte Length 3 byte Content ≥ 0 byte 

  11. Handshake protocol Client Server Fase 1 Definizione delle caratteristiche di sicurezza (numero di protocollo, ID sessione, suite cifratura, metodo di compressione, numeri random iniziali) client_hello server_hello certificate Fase 2 Invio del certificato del server, invio chiavi server, eventuale richiesta certificato client, fine fase di hello server_key_exchange certificate_request server_hello_done Tempo certificate Fase 3 Invio del certificato del client (se richiesto), invio chiavi client, invio verifica del certificato client_key_exchange certificate_verify change_cipher_spec Fase 4 Modifica della siute di cifratura e fine del protocollo di handshake finished change_cipher_spec finished

  12. Handshake fase 1 • client_hello (lista delle preferenze del client) • versione: la maggiore supportata dal client • Numero random del client • Incluso il time stamp per evitare attacchi di replay • ID di sessione • ≠ 0 richiesta di sessione già esistente per aprire la nuova connessione • = 0 il client vuole aprire una nuova sessione • Metodo di compressione supportato dal client • Suite di cifratura • Lista degli algoritmi di crittazione supportati dal client in ordine di preferenza • Ogni elemento è un algoritmo di scambio delle chiavi

  13. Handshake fase 1 • server_hello (risposte alle richieste del client) • versione: quella proposta dal client se supportata, se no massima supportata dal server • Numero random del server • ID sessione • Se l’offerta fatta dal client è ancora supportata  uguale a quello del client • Nuovo ID assegnato dal server • Metodo di compressione scelto dalla lista del client • Suite di cifratura scelta dalla lista del client

  14. Metodi di scambio delle chiavi • Prima è scambiato un pre-master secret • Da questo si deriva un master secret • Le altre chiavi sono derivate dal master secret

  15. Scambio del pre-master secret • RSA • Server manda il proprio certificato con chiave pubblica del server • Client cripta il pre-master secret con la chiave pubblica del server e lo invia • Diffie-Hellman (DH) a parametri fissi • I parametri DH di server e client sono fissi e scambiati con i certificati • Ephemeral DH • I certificati server e client contengono le chiavi RSA • Server crea i parametri DH (one-time) e li firma digitalmente • Anonymous DH • Nessun certificato, nessuna autenticazione, invio dei soli parametri DH  vulnerabile ad attacchi MITM

  16. Handshake fase 2 • certificate (server) • Necessario per autenticare il server • Con DH a parametri fissi si hanno tutte le informazioni per lo scambio di chiavi  non serve la fase di scambio delle chiavi • server_key_exchange • Non serve per DH a parametri fissi e RSA (se RSA non è solo per firma) • Contenuto del messaggio dipende dal metodo scelto • Anonymous-DH: parametri DH pubblici e chiave pubblica del server • Ephemeral DH: come sopra più firma su scambio chiave RSA • Firma contiene valori numerici scambiati nella fase di hello

  17. Handshake fase 2 • certificate_request • Il server può chiedere il certificato client (non usuale) mutua AuthN • Due campi: • Tipo di certificato (DH a parametri fissi, ephemeral DH, solo firma) • Lista delle CA accettate dal server • server_hello_done • Server si mette in attesa della risposta del client

  18. Handshake fase 3 • Dopo server_hello_done client verifica il certificato server e i parametri hello • certificate (client) • Inviato solo se richiesto dal server • client_key_exchange • Contenuto funzione del metodo concordato • RSA: pre-master secret (48-byte) criptato con chiave RSA del server • DH a parametri fissi: sono nel certificato client  messaggio null • Anonymous o ephemeral DH • Parametri e chiave pubblica inviati senza firma • non c’è autenticazione del client!

  19. Handshake fase 3 • In questa fase non c’è autenticazione del client • Chiunque può inviare il messaggio client_key_exchange • certificate_verify • Metodo di autenticazione del client • Client firma con la propria chiave privata un messaggio contenente master secret e messaggi di handshake • Eccetto per DH a parametri fissi che non ha chiave di firma • E per DH a parametri fissi? • Nessuna autenticazione • Un attacante non può produrre le chiavi pre-master e master se non conosce le chiavi DH private

  20. Handshake fase 4 • change_cipher_spec • Attiva le informazioni di cifratura scambiate e la connessione • finished • Un MAC creato sui messaggi di handshake usando il master secret • Per verificare che la fase di handshake è andata a buon fine e che entrambe le parti hanno la stessa master secret • finished del client verificato dal server e viceversa

  21. Creazione del master secret • Master secret: valore di 48-byte generato per sessione • Creazione in due fasi • pre-master secret scambiato durante handshake • Con RSA: client crea, cifra e invia  server decifra) • Con DH: entrambi calcolano lo stesso valore • master secret è calcola a partire da pre-master secret e stringhe random • master_secret = • MD5(pre_master_secret + SHA('A' + pre_master_secret + ClientHello.random + ServerHello.random)) + • MD5(pre_master_secret + SHA('BB' + pre_master_secret + ClientHello.random + ServerHello.random)) + • MD5(pre_master_secret + SHA('CCC' + pre_master_secret + ClientHello.random + ServerHello.random));

  22. TLS (Transport Layer Security) • TLS definito in RFC 2246 • Simile a SSL v3 con alcune differenze: • Numero versione: 3.1 • MAC: TLS usa HMAC con pad in XOR (SSL appende i pad) • Alert code aggiuntivi • Suite di cifratura uguali a SSL ad esclusione di Fortezza • Client con ephemeral DH non sono accettati in TLS • Ci sono differenza nel calcolo di certificate_verify e finished • Usata una diversa funzione di generazione di numeri pseudo-random

  23. © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only.MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.

More Related