Digital Signature Standard 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. Digital Signature Standard 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.” Digital Signature Standard Caso d’uso M (M, Firma di M) Moggi Pairetto Qualsiasi riferimento a persone o cose è puramente casuale. Galliani Digital Signature Standard Digitalizzazione Idea! Trasformare la firma in una sequenza di bit e appenderla alla fine del documento da firmare. Documento Firma Digital Signature Standard 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 proprietario. 2 • Impossibile da riprodurre da altri utenti. 3 Esigenza di trovare schemi di firme sicuri da possibili attacchi. Digital Signature Standard • Facilmente verificabile da chiunque. Possibili attacchi La sicurezza di uno schema di firme deve essere testata a fronte dei seguenti tipi di attacchi: KEY-ONLY ATTACK TOTAL BREAK • l’attaccante conosce solo la chiave pubblica • ottenere la chiave privata del firmatario KNOW-MESSAGE ATTACK SELECTIVE FORGERY • l’attaccante conosce la chiave pubblica più alcuni messaggi firmati • generare da un messaggio una firma tale che una verifica dia esito positivo con la chiave pubblica di un’altra persona CHOSEN-MESSAGE ATTACK • l’attaccante può scegliere messaggi di cui ottenere la firma EXISTISTENTIAL FORGERY • generare una coppia (M, F) tale che una verifica dia esito positivo con la chiave pubblica di un’altra persona Digital Signature Standard Firme manuali vs digitali FIRMA MANUALE FIRMA DIGITALE CREAZIONE Manuale Mediante algoritmo di creazione APPOSIZIONE Sul documento: la firma è parte integrante del documento Come allegato: il documento firmato è costituito dalla coppia (documento, firma) VERIFICA Confronto con una firma autenticata: metodo insicuro Mediante algoritmo di verifica: metodo sicuro Distinguibile Indistinguibile Illimitata Limitata Non possibile Possibile DOCUMENTO COPIA VALIDITÀ TEMPORALE AUTOMAZIONE DEI PROCESSI Digital Signature Standard 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 SIGSk che dato il documento da firmare M e la chiave Sk produce la firma digitale F = SIGSk(M). SIGSk 3. Un algoritmo di verifica VERPk che data la coppia (M, F) e la chiave Pk risponde se la firma sia autentica o meno. VERPk Digital Signature Standard Schemi di firme - Firma Digital Signature Standard Schemi di firme - Verifica Digital Signature Standard 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 SIGSk ∈ S e un corrispondente algoritmo di verifica VERPk ∈ V . SIGSk e VERPk 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 VERPk(M,F) = vero. Digital Signature Standard 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 VERPk 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. Digital Signature Standard DSS – A cavallo del millennio Algoritmo di ElGamal: estensione dell’algoritmo di DiffieHellman; cifratura asimmetrica con chiave di sessione generata dinamicamente e scambiata, come in D-H, insieme al messaggio. DSS: 1985 1993 Time line. 1991 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. 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. Bozza 3° revisione DSS 2008 1996 2000 1° revisione DSS 2° revisione DSS Digital Signature Standard 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 = Digital Signature Standard 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… Digital Signature Standard DSS – Generazione delle Chiavi Il DSS si basa sull’intrattabilità del logaritmo discreto. y = gx mod p Numero primo di 160 bit. Divisore di p-1. p = qz + 1 p - 1 = qz z = (p - 1) / q (p, q, g Numero primo la cui lunghezza in bit è compresa nell’intervallo [512, 1024], multipla di 64. y) = Public key x) = Secret key g = hz mod p con h ∈ ]1, p-1[ eg>1 Digital Signature Standard Numero random ∈ ]0, q[ DSS – Firma k viene generato per ogni Msg k ∈ ]0, q[ Numero random p q g (gk mod p) mod q Msg SHA (k-1(SHA(Msg) + xr)) mod q q x Digital Signature Standard r è indipendente da Msg r s La firma è (r,s) DSS – Verifica Msg’ (r’, s’) Firma IF 0 < r’ < q AND 0 < s’ < q SHA False True 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 Digital Signature Standard Firma rifiutata DSS – Correttezza g è di ordine q? (1) piccolo teorema di Fermat dato z = (p – 1) / q con p e q primi gq mod p = hqz mod p = hp-1 mod p = 1 mod p g = hz mod p dato gq mod p = 1 mod p con h ∈ ]1, p-1[ m mod q = n mod q gm mod p = gn+kq mod p = (gn gkq) mod p = ((gn mod p) (gq mod p)k) mod p = gn mod p Digital Signature Standard DSS – Correttezza r’ = v ? (2) 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 y = gx mod p vedi formula dato r’ = gk mod p mod q = gSHA(Msg)w gxr’w mod p mod q = gSHA(Msg)w yr’w mod p mod q α = (SHA(Msg) w) mod q β = (r’ w) mod q gSHA(Msg)w yr’w mod p mod q = gα yβ mod p mod q Digital Signature Standard =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 . Digital Signature Standard 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. Digital Signature Standard 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. Digital Signature Standard 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. Digital Signature Standard 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. Digital Signature Standard Digital Signature Standard Corso di Sicurezza 2008/2009 Golinucci Thomas Zoffoli Stefano Gruppo 11