Crittografia avanzata Lezione del 21 Marzo 2011

Documenti analoghi
!"### "$ " Applicazioni. Autenticità del messaggio M Integrità del messaggio M. Stelvio Cimato DTI Università di Milano, Polo di Crema

Applicazioni. Cosa si intende per sicurezza di uno schema di un MAC? Dobbiamo definire. Autenticità del messaggio M Integrità del messaggio M

Funzioni Hash. Impronta Digitale. L impronta digitale viene utilizzata per

Funzioni di hash sicure: MD5 e SHA-1

Sicurezza della comunicazione tra due entità. Prof.ssa Gaia Maselli

maurizio pizzonia sicurezza dei sistemi informatici e delle reti. tecniche crittografiche e protocolli

Sicurezza delle reti 1

Funzioni Hash. Impronta Digitale. L impronta digitale viene utilizzata per

Identificazione, Autenticazione e Firma Digitale. Firma digitale...

Message Authentication Code

maurizio pizzonia sicurezza dei sistemi informatici e delle reti. metodi crittografici

maurizio pizzonia sicurezza dei sistemi informatici e delle reti. metodi crittografici

Informatica. Crittografia. La crittografia è la scienza che studia la scrittura e la lettura di messaggi in codice

Sicurezza nelle applicazioni multimediali: lezione 5, funzioni di hash. Funzioni crittografiche di hash

RETI DI CALCOLATORI II

da chi proviene un messaggio?

Livello Applicazioni Elementi di Crittografia

Crittografia: Servizi richiesti

Sicurezza dei sistemi e delle reti 1

Pr(x y) = Pr(x) si può riformulare questa definizione in termini di indistinguibilità x 0, x 1 P e y C, scelta in modo casuale una chiave k K

Autenticazione, firme digitali e certificati digitali

Il protocollo SSL! Il protocollo SSL! (Secure Socket Layer)! "Uno dei protocolli più diffusi nelle comunicazioni sicure:!

Parte prima Cifrature asimmetriche 21

Metodologie e strumenti per la crittoanalisi della funzione di hash SHA-1 e sue implicazioni sulla sicurezza di rete

Corso di Qualità del Servizio e Sicurezza nelle reti A.A. 2014/2015. Lezione del 11 Maggio 2015

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Corso di Sicurezza su Reti Uso della crittografia simmetrica

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Sicurezza su reti Uso della crittografia simmetrica

Sicurezza dei calcolatori e delle reti. Le protezioni cripto in rete Lez. 10

Confidenzialità e crittografia simmetrica. Contenuto. Scenario tipico. Intercettazione dei dati. Uso della crittografia simmetrica

Le firme elettroniche e i sistemi di firma. Approcci al problema della sicurezza

Introduzione alla FIRMA DIGITALE

Integrità dei messaggi. Funzioni di Hash e codici MAC. Message digest. Message digest e funzioni di hash

Sicurezza nelle reti: protezione della comunicazione

FUNZIONI HASH ONE-WAY ITERATE

Indice generale. Nota dell editore... XIII. Prefazione alla prima edizione... XV. Ringraziamenti per la prima edizione...xviii

Sicurezza delle reti 1. Lezione XXI: Anonimato in rete. Inosservabilità. Anonimato. Mattia Monga. a.a. 2012/13

Analisi dell Hashing

Reti di Calcolatori. Crittografia & Java Cryptographic Architecture (JCA) A.A. 2010/2011 Reti di Calcolatori 1 (Es. 6)

metodi crittografici maurizio pizzonia sicurezza dei sistemi informatici e delle reti

POLITECNICO DI BARI CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA

CRYPTO-CURRENCY LA CRITTOGRAFIA E LA BLOCKCHAIN

CRITTOGRAFIA: introduzione

Crittografia. Codifica dei caratteri di un messaggio con criteri noti solo a mittente e destinatario

Corso di Qualità del Servizio e Sicurezza nelle reti A.A. 2014/2015. Lezione del 18 Maggio 2015

ITC Mossotti - Novara. Verica di Informatica. Nome e Cognome:... 1) Nella cifratura convenzionale. 2) Nella crittograa a chiave pubblica

Corso di Informatica

Sicurezza. Ingegneria del Software e sicurezza. Alice, Bob, e Trudy. Sicurezza non si caratterizza in modo semplice

schema di firma definizione formale

La firma digitale e la posta elettronica certificata

Massimo Benerecetti Tabelle Hash: gestione delle collisioni

Corso di Crittografia

Sicurezza nella comunicazione in rete: integrità dei messaggi, firma elettronica, protocolli di autenticazione

Sistemi operativi e reti 1

CRITTOGRAFIA 2014/15 Appello del 13 gennaio Nome: Cognome: Matricola:

Distribuzione delle chiavi pubbliche. Gestione delle chiavi. Distribuzione delle chiavi pubbliche

Random Oracle Model. Paolo D Arco

FIRMA ELETTRONICA. Il sistema di garanzia è stato individuato nella crittografia in quanto è in grado di assicurare:

Piattaforma AlmaChannel e laboratori virtuali

Esercizi Capitolo 7 - Hash

Tecnologie e applicazioni web Autenticazione

Http e Https. http usa la porta 80. Perciò è nato https - usa la porta 443

Elementi di Sicurezza e Privatezza Lezione 5 Protocolli Crittografici (1)

La firma digitale, o firma elettronica qualificata, basata sulla tecnologia della crittografia a chiavi asimmetriche, è un sistema di autenticazione d

Crittografia avanzata Lezione del 7 Marzo 2011

MISURE MINIME DI SICUREZZA

Basi di Dati e Sistemi Informativi. Organizzazione fisica dei dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale

Sicurezza nella comunicazione in rete: integrità dei messaggi, firma elettronica, protocolli di autenticazione

Crittografia per la sicurezza dei dati

Sicurezza Documentale a.a. 2017/2018 DOCENTI: DOTT.SSA VALERIA FIONDA DOTT. GIUSEPPE PIRRÒ

Seminario sulla Crittografia. Corso: T.A.R.I Prof.: Giulio Concas Autore: Ivana Turnu

Privacy e firma digitale

Programmazione avanzata Java e C. Sicurezza

La crittografia asimmetrica è alla base della moderna crittografia ed è particolarmente utilizzata nei sistemi di protezione delle comunicazioni

SSL: applicazioni telematiche SSL SSL SSL. E-commerce Trading on-line Internet banking... Secure Socket Layer

Gianluigi Me. IPSec 24/03/2005 1

La sicurezza del sistema informativo

Sicurezza delle reti. Monga. Tunnel. Sicurezza delle reti. Monga

TABELLE AD INDIRIZZAMENTO DIRETTO

Sicurezza ai vari livelli

Crittografia e firma digitale. Prof. Giuseppe Chiumeo

SHAttered: uno sguardo alla collisione SHA1 ed al mondo degli hash

S-vLab. Stream cipher Block cipher. Stream cipher vs. Block cipher. Stream cipher vs. Block cipher. Stream cipher vs. Block cipher

Protocolli per l instaurazione di chiavi effimere - Kerberos

Crittografia a chiave pubblica

Sicurezza informatica: esercitazione 1

La funzione Hash. Garanzia dell integrità dei dati e autenticazione dei messaggi

Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

Casualità e sicurezza Fabrizio d Amore Facoltà di Ingegneria dell informazione, informatica e statistica

Sicurezza Informatica. Il Protocollo OAuth. Anno Accademico 2010/2011. Luca Mancini. Riccardo Queri

Cormons, settembre ottobre La Firma digitale

Crittografia avanzata Lezione dell'11 Aprile 2011

Password. Password. Davide Cerri. Davide Cerri CEFRIEL - Politecnico di Milano Autenticazione utente

Elementi di crittografia: Gli algoritmi di hashing

Soluzione TrustMail BancaStato Manuale di riferimento a uso della clientela

INFORMATICA. Prof. MARCO CASTIGLIONE ISTITUTO TECNICO STATALE TITO ACERBO - PESCARA

Privacy e posta elettronica

Transcript:

Crittografia avanzata Lezione del 21 Marzo 2011

Attacchi alle funzioni hash Collisioni: trovare due messaggi M1 e M2 tali che H(M1) = H(M2) in meno di 2^(L/2) tentativi L è la lunghezza dell'hash Mezzi per via del birthday attack First preimage: dato X, trovare M tale che H(M)=X in meno di 2^L tentativi Second preimage: dato M1, trovare M2 tale che H(M1) = H(M2) in meno di 2^L tentativi

Message Authentication Codes Scopo: garantire integrità e autenticità di un messaggio Tipicamente brevi Sono diversi da meccanismi simili destinati alla rilevazione di errori (es. CRC) perché: Usano una chiave Sono crittograficamente robusti Caratteristiche simili alle funzioni hash, ma con una chiave Es. CBC MAC trasforma un algoritmo a blocchi in un MAC (con alcune cautele)

MAC con chiave Garanzia dell'integrità di un file Firma: chiave asimmetrica Hash con chiave: chiave simmetrica Come costruire un hash con chiave? Si cercano soluzioni che non siano (troppo) dipendenti dalla funzione hash utilizzata

HMAC: Keyed-hash MAC Definito in RFC 2104 e FIPS PUB 198 HMAC(K,m) = H((K opad) H((K ipad) m)) Dove: outer padding opad = 0x5c5c5c 5c5c inner padding ipad = 0x363636 3636 è la concatenazione Rende bene l'idea di come la crittografia non si improvvisi

Obiettivi Usare funzioni Hash esistenti senza modificarle Mantenere le prestazioni Usare le chiavi in modo semplice Avere una funzione di uso generale la cui robustezza sia stata analizzata Estremamente importante per l'ietf, la crittografia e la sicurezza compaiono dappertutto, anche dove non ci sono competenze specifiche... Permettere di sostituire la funzione di hash con facilità

Altre possibilità? Perché non semplicemente: HMAC(K,m) = H(K m) HMAC(K,m) = H(m K)... Per ognuna delle combinazioni ovvie esistono attacchi applicabili in determinati casi e contesti O si conoscono esattamente i casi e si possono escludere, o è meglio affidarsi a funzioni robuste Es. uso di MD5 e SHA-1 in SSL

Soluzioni semplici MAC = H(key message) Con alcune è possibile appendere testo al messaggio senza conoscere la chiave, ottenendo un MAC valido la propagazione della chiave è limitata MAC = H(message key) Se c'è una collisione nell'hash con messaggio, per molte funzioni c'è una collisione nel MAC Senza conoscere la chiave HMAC rientra nella famiglia: MAC = H(key1 H(key2 message))

Si vogliono funzioni efficienti Che si possano calcolare su uno stream di messaggio Che si possano verificare su uno stream di messaggio Altro?

Uso di MAC e firma La firma digitale e i MAC sono due strumenti per garantire l'integrità di messaggi e documenti Si tratta di strumenti di base, ma l'uso dipende dal contesto Problema: i documenti, messaggi e file vivi devono essere modificati Di fatto, i MAC e le firme corrispondono a foto della situazione

Usi di HMAC Garanzia temporanea di autenticità e integrità in uno scambio di messaggi Simile alla firma, ma: Non c'è non repudiation Non è pensato per una conservazione a lungo termine

Uso di HMAC Protocolli di comunicazione Una volta contrattata una chiave condivisa In generale, quando meccanismi di firma non sarebbero efficienti O quando è comunque utilizzata una chiave condivisa Importante: queste protezioni hanno protetto protocolli Internet anche in presenza di collisioni nelle funzioni hash (vedi RFC

Caso particolare: i log L'integrità dei log è richiesta da molte normative ed è utile da verificare in generale I log sono file che crescono in append (salvo rotazione) Un caso particolare più semplice da gestire Garantire l'integrità rispetto a cosa e a quando? Accesso non autorizzato al logserver? Manipolazione successiva?

Chained hashing Log file H 0 log 0 H 1 = MAC k (H 0 log 0 ) log 1 H 2 = MAC k (H 1 log 1 )

Hash chaining Si parte da un pad casuale H 0, inserito in testa al file di log e una chiave K Periodicamente, di calcola un MAC e si inserisce nel file H i = MAC(H i-1 log) Log è il frammento del file di log successivo a H i-1 Può essere fatto per ogni evento... Se il file viene modificato nelle parti coperte dai MAC, la modifica risulta evidente

Frequenza: Gli eventi possono essere modificati finché non vengono inclusi in un MAC Dove è stato alterato il file? Chi vuole manomettere il file può modificarlo in diverse parti per nascondere le vere modifiche Ad esempio, modificare gli hash Limiti

Protezione della chiave Se la chiave è in memoria, alla compromissione del sistema può corrispondere una compromissione della chiave Perfect forward secrecy: la nuova chiave è un hash della precedente La compromissione della chiave non permette di modificare i MAC già apposti

Chiave modificata Log file H 0 log 0 H 1 = MAC k1 (H 0 log 0 ) k 1 =H(k 0 ) k 2 =H(k 1 ) log 1 H 2 = MAC k2 (H 1 log 1 ) k 3 =H(k 2 )

Rainbow tables Tipicamente usate per hash di password, ma non solo È possibile precomputare (parte di) una funzione crittografica Parte della funzione Su un sottoinsieme delle chiavi Trade-off fra spazio e tempo

Hash chains Esempio: precomputare una funzione hash su password banali Ma lo spazio necessario può ancora essere eccessivo Soluzione: si trova una funzione di riduzione R con un comportamento pseudocasuale da hash a password e si costruiscono catene p1->h1->p2->h2->...->pn Si memorizzano solo p1 e pn Questo non ci garantisce che ogni password sia in una qualche catena

Utilizzo Dato un hash hx, si inizia a computare una catena che parta da hx hx->px->... Fino a quando non si trova una password che sia alla fine di una catena (pn) A quel punto si parte dalla p1 di quella catena e si calcola la catena C'è una buona probabilità che la catena contenga hx e quindi che il valore precedente sia la password Ma non è detto, ci sono collisioni: se non c'è, si prosegue con la catena

Collisioni Più password possono generare lo stesso hash Ancora più facile con la funzione R Più catene convergono sulla stessa pn Es. R= primi 6 caratteri In questo caso tutti gli hash che iniziano con gli stessi 6 caratteri convergono sulla stessa password Quindi abbiamo nelle nostre catene molte meno password (e hash) di quanti ce ne aspetteremmo

Rainbow tables Invece di una sola funzione R se ne definisce una sequenza R1... Rn In questo modo, perché ci sia una collisione fra due catene, devono collidere allo stesso step (altrimenti, essendo diverse le funzioni, poi divergono nuovamente)

Uso delle raibow tables

Fair cryptosystems Problema: le comunicazioni cifrate impediscono le intercettazioni legittime Soluzione: dare alle autorità accesso alla chiave Ma in modo controllato Possiamo: Prendere la chiave (privata) e darla in secret sharing a diverse autorità Prendere una chiave robusta e darne una parte in secret sharing a più autorità

Come verificare la correttezza? Un malintenzionato potrebbe dare parti di una chiave fasulla La cosa si scoprirebbe solo al momento della ricostruzione Vale la pena di correre il rischio Come fornire la possibilità di controllare la correttezza dell'escrow senza scoprire la chiave? Una soluzione è imporre l'hardware di cifratura

Esercizio: riuso del keytext Il testo è codificato come segue:

Depth Riutilizzo del keytext (errore comune). c=k m Due testi cifrati che riutilizzino il keytext si dicono in depth Nell'esempio che segue, almeno un testo contiene the

Soluzione Sappiamo che se il keytext è riutilizzato, abbiamo da c=k m che c1 c2= (k1 m1) (k2 m2)=m1 m2 Soluzione: Close the doors Shut the windows