Corso di Sicurezza 2008/2009 Golinucci Thomas Zoffoli Stefano Gruppo 11
Firme digitali 1. Introduzione. 2. Caso d uso e digitalizzazione. 3. Firme digitali e possibili attacchi. 4. Manuali vs Digitali. 5. Schemi di firme. 6. Definizione e Sicurezza. 7. Cenni storici ElGamal, Schnorr. 8. Standardizzazione - DSS. 9. Fasi dell algortimo Generazione chiavi, Firma, Verifica. 10. Correttezza dell algortimo. 11. Pro e contro. 12. Revisioni e Varianti.
Introduzione Verità assoluta In molte circostanze che si presentano quotidianamente prelievo di soldi, firme di contratti, ecc una firma convenzionale viene apposta su un documento. Tale firma permette di specificare la persona responsabile del documento che è stato firmato.
Caso d uso M (M, Firma di M) Moggi Pairetto Qualsiasi riferimento a persone o cose è puramente casuale. Galliani
Digitalizzazione Idea! Trasformare la firma in una sequenza di bit e appenderla alla fine del documento da firmare. Documento Firma
Firme digitali La firma digitale, o firma elettronica qualificata, basata sulla tecnologia della crittografia a chiavi asimmettriche, è un sistema di autenticazione di dati digitali. Si basa sull uso di un certificato digitale memorizzato su di un dispositivo hardware. Le proprietà che una firma digitale deve vantare sono: 1 Facilmente producibile dal Impossibile da riprodurre da proprietario. 2 altri utenti. 3 Facilmente verificabile da chiunque. Esigenza di trovare schemi di firme sicuri da possibili attacchi.
Possibili attacchi La sicurezza di uno schema di firme deve essere testata a fronte dei seguenti tipi di attacchi: KEY-ONLY ATTACK l attaccante conosce solo la chiave pubblica KNOW-MESSAGE ATTACK l attaccante conosce la chiave pubblica più alcuni messaggi firmati CHOSEN-MESSAGE ATTACK l attaccante può scegliere messaggi di cui ottenere la firma TOTAL BREAK ottenere la chiave privata del firmatario SELECTIVE FORGERY generare da un messaggio una firma tale che una verifica dia esito positivo con la chiave pubblica di un altra persona EXISTISTENTIAL FORGERY generare una coppia (M, F) tale che una verifica dia esito positivo con la chiave pubblica di un altra persona
Firme manuali vs digitali CREAZIONE APPOSIZIONE VERIFICA DOCUMENTO COPIA VALIDITÀ TEMPORALE AUTOMAZIONE DEI PROCESSI FIRMA MANUALE Manuale Sul documento: la firma è parte integrante del documento Confronto con una firma autenticata: metodo insicuro Distinguibile Illimitata Non possibile FIRMA DIGITALE Mediante algoritmo di creazione Come allegato: il documento firmato è costituito dalla coppia (documento, firma) Mediante algoritmo di verifica: metodo sicuro Indistinguibile Limitata Possibile
Schemi di firme Un tipico schema di firma digitale è basato su tre algoritmi: 1. Un algoritmo per la generazione della chiave che produce una coppia di chiavi (Pk, Sk). (Pk, Sk) 2. Un algoritmo di firma SIG Sk che dato il documento da firmare M e la chiave Sk produce la firma digitale F = SIG Sk (M). SIG Sk 3. Un algoritmo di verifica VER Pk che data la coppia (M, F) e la chiave Pk risponde se la firma sia autentica o meno. VER Pk
Schemi di firme - Firma
Schemi di firme - Verifica
Schemi di firme - Definizione Uno schema di firme digitale è una quintupla (P, A, K, S, V) dove le seguenti condizioni sono soddisfatte: P è un insieme finito di possibili messaggi; A è un insieme finito di possibili firme; K, lo spazio delle chiavi, è un insieme finito di possibili chiavi; Per ogni k K c è un algoritmo di firma SIG Sk S e un corrispondente algoritmo di verifica VER Pk V. SIG Sk e VER Pk devono essere funzioni facili da calcolare per una maggiore efficienza della schema, mentre dovrebbe essere computazionalmente difficile per Galliani falsificare la firma di Moggi su di un messaggio M. Dato M, solo Moggi deve essere in grado di calcolare una firma F tale che VER Pk (M,F) = vero.
Schemi di firme - Sicurezza Uno schema di firme è detto incondizionatamente sicuro se, qualunque siano le risorse di Galliani (tempo e hardware), è impossibile falsificare firme. Uno schema non può essere incondizionatamente sicuro poiché un malintenzionato potrebbe testare tutte le possibili firme di un documento di un utente usando l algoritmo VER Pk fino a quando non trova la giusta firma. Naturalmente questo tipo di attacco risulta essere computazionalmente oneroso poiché si fa in modo che la cardinalità dell insieme di possibili firme sia enormemente elevata. Dato sufficiente tempo Galliani può sempre riuscire a falsificare la firma di Moggi, così il nostro scopo è di individuare schemi che sia computazionalmente sicuri.
DSS A cavallo del millennio Algoritmo di ElGamal: estensione dell algoritmo di Diffie- Hellman; cifratura asimmetrica con chiave di sessione generata dinamicamente e scambiata, come in D-H, insieme al messaggio. 1985 DSS: variante dell algoritmo di Schnorr; la funzione di hash ha come unico argomento il messaggio e quindi il suo valore non dipende dalla chiave di cifratura. 1993 Bozza 3 revisione DSS 2008 Time line. 1991 1996 2000 Algoritmo di Schnorr: analogo a ElGamal; introduce una funzione di hash che associa a ciascun messaggio e a ciascuna chiave un intero in un intervallo di ampiezza predefinita. 1 revisione DSS 2 revisione DSS
DSS NIST & FIPS Il NIST (National Institute of Standards and Technology) propose il DSA come standard FIPS (Federal Information Processing Standard). DSA = Digital Signature Algorithm DSS = NIST Agenzia del governo USA il cui compito è quello di sviluppare standard, tecnologie e metodologie che favoriscano la produzione e il commercio. Pubblica i FIPS, documenti governativi che descrivono lo standard che gli apparati e le agenzie del governo (escluse quelle militari) devono seguire. Sono spesso delle varianti rispetto a quelli ANSI, ISO, IEEE, ecc Esempi di standard FIPS: DES, AES, ecc
DSS Generazione delle Chiavi Il DSS si basa sull intrattabilità del logaritmo discreto. Numero primo di 160 bit. Divisore di p-1. y = g x mod p p = qz + 1 p - 1 = qz z = (p - 1) / q (p, q, g y) x) = Public key = Secret key Numero primo la cui lunghezza in bit è compresa nell intervallo [512, 1024], multipla di 64. g = h z mod p con h ]1, p-1[ e g > 1 Numero random ]0, q[
DSS Firma k viene generato per ogni Msg k ]0, q[ Numero random p q g r è indipendente da Msg (g k mod p) mod q r Msg SHA (k -1 (SHA(Msg) + xr)) mod q s q x La firma è (r,s)
DSS Verifica Msg (r, s ) Firma SHA IF 0 < r < q AND 0 < s < q True False Firma rifiutata w = s -1 mod q α = (SHA(Msg) w) mod q β = (r w) mod q v = (g α y β mod p) mod q IF v = r False True Firma verificata
DSS Correttezza (1) g è di ordine q? z = (p 1) / q con p e q primi g = h z mod p dato piccolo teorema di Fermat dato g q mod p = h qz mod p = h p-1 mod p = 1 mod p g q mod p = 1 mod p con h ]1, p-1[ m mod q = n mod q g m mod p = g n+kq mod p = (g n g kq ) mod p = ((g n mod p) (g q mod p) k ) mod p = g n mod p
DSS Correttezza (2) r = v? w = s -1 mod q s = (k -1 (SHA(Msg) + xr )) mod q dato k = (SHA(Msg)s -1 + xr s -1 ) mod q = (SHA(Msg)w + xr w) mod q r = vedi formula y = g x mod p dato g k mod p mod q = g SHA(Msg)w g xr w mod p mod q = g SHA(Msg)w y r w mod p mod q α = (SHA(Msg) w) mod q β = (r w) mod q g SHA(Msg)w y r w mod p mod q = g α y β mod p mod q = v
DSS Sicurezza 1) Total Break con Key-only Attack è impossibile. Risalire ad x richiede la risoluzione del logaritmo discreto. 2) Selective Forgery con Key-only Attack è impossibile. Data Msg e scelto a caso r, bisogna calcolarsi s; tuttavia non essendo noto x quest operazione equivale a risolvere anch essa un logaritmo discreto. 3) Existential Forgery con Key-only Attack è impossibile. Anche generando a caso la firma, per risalire al messaggio corrispondente bisognerebbe invertire una funzione hash.
DSS Critiche 1) DSS non può essere usato per cifrare o per distribuire chiavi. 2) La misura del modulo p è troppo piccola. 3) La scelta della tripla (p, q, g) può essere causa di vulnerabilità. 4) DSS è più lento di RSA. 5) DSS ha test of time inferiore a RSA.
DSS Revisioni FIPS 186-1: E' la revisione del protocollo DSS avvenuta nel 1996. L'unica modifica è che impone l'utilizzo di SHA-1 anziché SHA. FIPS 186-2: E' la revisione del protocollo DSS avvenuta nel 2000. Propone l'utilizzo di ECDSA oltre a DSA. Impone la lunghezza in bit di p pari a 1024. Corregge gli algoritmi per il calcolo di x e k. FIPS 186-3 (bozza): E una bozza della nuova revisione proposta nel Novembre 2008. Impone l utilizzo di SHA-224/256/384/512. Aumenta la lunghezza in bit di q a 224, con lunghezza in bit di p pari a 2048, oppure a 256, con lunghezza in bit di p pari a 3072.
DSS Varianti ECDSA (Elliptic Curve DSA): Opera su gruppi di curve ellittiche. Ha lo stesso tempo di esecuzione di DSA producendo firme di lunghezze identiche ma con parametri di sicurezza più alti. Una firma DSA ottenuta con p di 1024 bit e q di 160 bit è equivalente ad una firma ECDSA con parametro principale a 160 bit. GoSt R DSA (Gosudarstvennyi Standard of Russian Federation): Nato nel 1995 presso la federazione Russa. Imposta la chiave q a 256 bit al posto di 160. Cambia l equazione di verifica della firma digitale.
Bibliografia FIPS PUB 186 DIGITAL SIGNATURE STANDARD (DSS), NIST, http://www.itl.nist.gov/fipspubs/fip186.htm; Network Security PRIVATE Communication in a PUBLIC World, Charlie Kaufman, Radia Perlman, Mike Speciner, Prentice Hall Editions; Internet Security Reti e dati a prova di hacker, Maurizio Cinotti, Hoepli Informatica; Crittografia Principi, Algoritmi, Applicazioni, Paolo Ferragina, Fabrizio Luccio, Bollati Boringhieri; Sicurezza dei sistemi informatici, Mariagrazia Fugini, Fabrizio Maio, Pierluigi Plebani, Apogeo; Sicurezza in informatica, C. Pfleeger, S. Pfleeger, Pearson Italia; http://en.wikipedia.org.
Corso di Sicurezza 2008/2009 Golinucci Thomas Zoffoli Stefano Gruppo 11