La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

| | SSL/TLS. | | Problemi Integrità Modifica dei dati, inserzione Confidenzialità

Presentazioni simili


Presentazione sul tema: "| | SSL/TLS. | | Problemi Integrità Modifica dei dati, inserzione Confidenzialità"— Transcript della presentazione:

1 | | SSL/TLS

2 | | 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 Web Security 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 Unassociazione 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 Session state Connection state

5 | | Stack di protocolli SSL Usa protocollo TCP: consegna dati affidabile Aggiunge funzioni di sicurezza SSL non è un protocollo singolo: protocollo a due livelli IP TCP SSL Record protocol SSL Handshake protocol SSL Change Cipher Spec protocol SSL Alert protocol HTTP

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

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à dellalert Warning: connessione può essere ripristinata Fatal: connessione terminata Un bite per il tipo (alert code) Unespected messageBad record MACDecompression failure Handshake failureIllegal parameterClose notify No certificateBad certificateUnsupported certificate Certificate revokedCertificate expiredCertificate unknown

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 Tipo messagioParametri Hello_requestnull Client_helloVersione, random, id sessione, suite di cifratura, metodo di compressione Server_helloVersione, random, id sessione, suite di cifratura, metodo di compressione CertificateCatena dei certificati X.509 Server_key_exchangeParametri e firma Certificate_requestTypo e CA Server_doneNull Certificate_verifyFirma Cleint_key_exchangeParametri e firma FinishedValore hash

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

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 lofferta 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 | | Parametri di cifratura Algoritmi RC4, RC2, DES, 3DES, DES40 (40-bit DES), IDEA Algoritmi di hashing per MAC MD5 o SHA-1 Tipo di cifratura A stream o a blocchi Dimensione dei vettori di inizializzazione

17 | | 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

18 | | 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

19 | | 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!

20 | | 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

21 | | 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

22 | | 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));

23 | | 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

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


Scaricare ppt "| | SSL/TLS. | | Problemi Integrità Modifica dei dati, inserzione Confidenzialità"

Presentazioni simili


Annunci Google