Firma elettronica Concetti e meccanismi [email protected] Il documento classico Università degli studi di Udine Crittografia e firma elettronica Cristiano Crevato Il supporto cartaceo Il documento moderno Il documento informatico. “S’intende per documento informatico la rappresentazione informatica di atti, fatti o dati giuridicamente rilevanti.” Il documento moderno Università degli studi di Udine Crittografia e firma elettronica Cristiano Crevato ? Firma elettronica Esigenze . La legge richiede di: – Poter firmare elettronicamente un documento – Consentire la verifica della firma apposta da parte di terzi – Mantenere la sicurezza del sistema Crittografia classica? Crittografia classica (simmetrica) N utenti (N-1)2 chiavi Rapporto uno a (N-1) Crittografia classica? Cifrario a rotazione c1 m R1 c2 T1 c3 R2 Cifrario a trasposizione T2 c4 Data Encryption Standard TI 64 bit S0 D0 32 bit 32 bit Si=Di-1 Di=Si-1+f(Di-1,Ki) 32 bit 32 bit TF 64 bit Cifrario di Vigenère PAR I G I F LAU T O ULRFCZ VAL BENE FL A UTOF DLL VACL UNA MESSA LAU T O F LA GNU GSAEA Cifrario a trasposizione PAR I G I VAL BENE UNA MESSA PAR I G I VAL BENE UNA MESSA P R G V L E E N M S A A I I A B N U A E S Cifrario a trasposizione Analisi statistica della lingua usata Complessità computazionale relativamente bassa Non garantisce l’identità del firmatario Crittografia moderna? Crittografia a chiave pubblica N utenti N chiavi Rapporto uno a uno Firma elettronica Uso delle chiavi PRIVATA Vse7 edca 34q 23r # =)N90mjs “ &vr5% HHJ Contenuto di un generico documento informatico PUBBLICA Firma elettronica Funzione della Firma Elettronica L’applicazione della Firma Elettronica ad un documento informatico permette di certificare l’integrità e la paternità del documento (certificazione) Firma elettronica Impiego della Firma elettronica Per poter sostituire in tutto e per tutto i documenti cartacei negli atti ufficiali. » Redigere atti ufficiali » Distribuire atti ufficiali » Archiviare atti ufficiali Firma elettronica Art.15, comma 2, legge 15 marzo 1997, n.59 “gli atti, dati e documenti formati dalla pubblica amministrazione e dai privati con strumenti informatici o telematici, i contratti stipulati nelle medesime forme, nonché la loro archiviazione e trasmissione con strumenti informatici, sono validi e rilevanti a tutti gli effetti di legge” Firma elettronica La firma elettronica, apposta rispettando le disposizioni tecniche, ha valore soltanto se la coppia di chiavi è dotata di certificato elettronico rilasciato da una terza parte garante, la Certificate Authority, che ne attesti la validità. Certificate Authority Utente A Utente B Firma elettronica Autorità per l’Informatica nella Pubblica Amministrazione Stabilisce regole e modalità di applicazione della firma elettronica. Certifica e conserva l’elenco dei soggetti autorizzati a svolgere l’attività di Certificate Authority. http://www.aipa.it Firma elettronica Cosa deve contenere un certificato: (D.P.C.M. 8/2/1999, Art.11) a. Numero di serie del certificato b. Ragione e denominazione sociale del certificatore c. Codice identificativo del titolare presso il certificatore d. Nome cognome e data di nascita ovvero ragione e denominazione sociale del titolare e. Valore della chiave pubblica f. Algoritmi di generazione everifica utilizzati g. Inizio e fine del periodo di validità delle chiavi h. Algoritmo di sottoscrizione del certificato Firma elettronica Adempimenti della CA: (D.P.C.M. 8/2/1999, Art.22, comma 2) “Al momento della registrazione il certificatore deve verificare l’identità del richiedente. E’ data facoltà al certificatore di definire, pubblicandole nel manuale operativo, le modalità di identificazione degli utenti.” Firma elettronica Aspetto di un certificato: (Base64 encoded X509) Firma elettronica Certificate Authority 2. Bianchi controlla presso la CA il certificato e la chiave pubblica di Rossi. 1. Rossi manda una e- mail a Bianchi, firmando il contenuto con la sua chiave privata. intranet E-mail Rossi Bianchi Rossi 3. Bianchi verifica la firma di CERTIFICAZIONE Rossi applicando alla e-mail la chiave pubblica di Rossi. Oltre la Firma elettronica “Funzione” della Firma Elettronica Le chiavi utilizzate per applicare la Firma Elettronica ad un documento informatico possono essere usate per limitare l’accesso al contenuto del documento ad un gruppo ristretto di persone (confidenzialità) in tal caso viene meno la garanzia sulla paternità del documento Firma elettronica Uso delle chiavi PUBBLICA PRIVATA Vse7 edca 34q 23r # =)N90mjs “ &vr5% HHJ Contenuto di un generico documento informatico PUBBLICA PRIVATA Firma elettronica Certificate Authority 1. Bianchi recupera dalla CA il certificato di Rossi contenente la chiave pubblica di Rossi. 3. Rossi recupera l’allegato usando la sua chiave privata. E-mail Bianchi Rossi 2. Bianchi spedisce a Rossi una CONFIDENZIALITA’ e-mail con un documento allegato, cifrando tutto con la chiave pubblica di Rossi. Firma elettronica Il meccanismo di Firma Elettronica Firma elettronica Meccanismo di Firma • Estrazione di un’impronta dal documento informatico mediante un algoritmo di Hash • Cifratura dell’impronta mediante la chiave privata del sottoscrittore • Il risultato costituisce la firma elettronica del documento Firma elettronica Impronta e algoritmo di Hash Usando un Algoritmo di Hash si estrae da un qualsiasi documento informatico una sequenza binaria lunga 160 bit. La natura dell’algoritmo garantisce che da due documenti distinti non sia possibile ottenere la medesima impronta e che dall’impronta non sia possibile ricostruire il documento che l’ha generata. Testo originale del documento T t o i al el d um t Firma elettronica Generazione della Firma L’impronta estratta dal documento informatico viene cifrata con la chiave privata del sottoscrittore, questo garantisce che l’impronta non possa essere alterata successivamente e identifica univocamente il sottoscrittore quale autore della medesima. Il risultato di questa operazione costituisce la Firma Elettronica. T t o i al el d um t shjbjad vczaxcv Firma elettronica Generazione del documento firmato Il documento ottenuto dalla fusione del testo originale e della Firma costituisce il documento firmato elettronicamente. Il suo contenuto è disponibile anche se non si ha la chiave pubblica del sottoscrittore. Questa non serve infatti per leggere il contenuto del documento ma soltanto per verificarne paternità ed integrità. Testo originale del documento shjbjad vczaxcv Firma elettronica Meccanismo di Verifica • Separazione del documento firmato dalla firma elettronica apposta • Estrazione di un’impronta dal documento mediante lo stesso algoritmo di Hash usato per firmarlo • Decifrazione della firma digitale mediante la chiave pubblica del sottoscrittore • Confronto delle due impronte Firma elettronica Verifica: estrazione e confronto delle impronte Testo originale del documento Valida T t o i al el d um t (Firma) shjbjad vczaxcv T t o i al el d um t RSA e SHA-1 Nozioni di base RSA e SHA-1 D.P.C.M. 8 febbraio 1999 Art. 2 Algoritmi di generazione e verifica delle firme digitali 1. Per la generazione e la verifica delle firme digitali possono essere utilizzati i seguenti algoritmi a. RSA (Rivest-Shamir-Adleman algorithm). b. DSA (Digital Signature Algorithm). Aritmetiche circolari 0 3+3 5 3+2 1 3+4 3+1 4 3 3 2 3+4=1 RSA e SHA-1 Aritmetica modulo n Nell’aritmetica modulo n ho i simboli 0,1,2,3,4 ... n. Ogni numero intero k in base 10 viene rappresentato nell’aritmetica modulo n dalla classe di appartenenza. La classe di k è data dal resto della divisione di k per n classe di k = resto di k diviso n Un aritmetica modulo n con n numero primo costituisce un Campo di Galois Aritmetiche circolari 0 5 4 3x2 = 3x4 1 3x1 = 3x3 2 3x4=0 3 Legge di annullamento del prodotto Numeri primi “molto grandi” Teoria dei numeri simbolo di Jacobi Dato p numero dispari “grande” 100 interi tra 1 e p-1 (1-2-100) @ 1 RSA e SHA-1 L’algoritmo RSA si basa su funzioni unidirezionali - Diretta semplice da calcolare - Inversa di difficile computazione Funzione di Eulero j(n) = n x (1-1/n1) x (1-1/n2) x ... x (1-1/nm) 6=2x3 j(6) = 6 X (1 – ½) X (1- 1/3) = 2 4 e 5 primi con 6 Teorema di Eulero-Fermat Dati u,v interi se MCD(u,v) = 1 allora v w=v j(u) - 1 j(u) = 1 modulo u modulo u allora wv = 1 modulo u RSA e SHA-1 RSA - Generazione delle chiavi Metodo: Esempio numerico: p e q primi 11 e 13 n = pq 143=1113 j(n)=(p-1)(q-1) j(143)=10 12=120 x primo con j(n) 103 y con resto [(yx):j(n)]=1 coppia (n,y) Privata 7 (143,7) Pubblica RSA e SHA-1 R S A - Cifratura e decifrazione Algoritmo: m messaggio da inviare: Esempio numerico: OFFICE = 79, 70, 70, 73, 67, 69 (codice ASCII) cifratura di m c = m y modulo n (<<SYl decifrazione di c m = c x modulo n OFFICE = 79, 70, 70, 73, 67, 69 = 40, 60, 60, 83, 89, 108 (codice ASCII) (codice ASCII) RSA e SHA-1 D.P.C.M. 8 febbraio 1999 Art. 2 Algoritmi di hash 1. La generazione dell’impronta si effettua impiegando una delle seguenti funzioni di hash, definite nella norma ISO/IEC 10118- 3:1998: a. Dedicated hash-Function 1, corrisp. alla funzione RIPEMD-160; b. Dedicated hash-Function 3, corrisp. alla funzione SHA-1; RSA e SHA-1 L’algoritmo SHA-1 impiega funzioni logiche ed operazioni di elevamento a potenza. Applicato a sequenze binarie di lunghezza non superiore a 2^64 produce una sequenza binaria di lunghezza 160 RSA e SHA-1 Le 80 funzioni logiche di SHA-1 f(t,B,C,D) = (B AND C) OR ((NOT B) AND D) (0 t 19) f(t,B,C,D) = B XOR C XOR D (20 t 39) f(t,B,C,D) = (B AND C) OR (B AND D) OR (C AND D) (40 t 59) f(t,B,C,D) = B XOR C XOR C XOR D dove B,C,D sono sequenze di 32 bit (60 t 79) RSA e SHA-1 Le 80 costanti di SHA-1 K(t)=5A827999 ( 0 t 19) K(t)=6ED9EBA1 (20 t 39) K(t)=8F1BBCDC (40 t 59) K(t)=CA62C1D6 (60 t 79) RSA e SHA-1 SHA-1 – Inizializzazione dell’impronta L’impronta viene composta unendo 5 blocchi di 32 bit per un totale di 160 bit. I 5 blocchi vengono inizializzati con i valori: 1° 2° 3° 4° 5° blocco blocco blocco blocco blocco = = = = = 67452301 = 1100111010001010010001100000001 EFCDAB89 = 11101111110011011010101110001001 98BADCFE = 10011000101110101101110011111110 10325476 = 10000001100100101010001110110 C3D2E1F0 = 11000011110100101110000111110000 RSA e SHA-1 Scomposizione del documento Il documento informatico viene scomposto in blocchi di lunghezza 512 bit. Ogni blocco viene suddiviso in sottoblocchi di lunghezza 32 bit. RSA e SHA-1 Calcolo delle componenti dell’impronta Ogni blocco di 512 bit viene processato nel seguente modo: 1) detti W(0) ... W(15) i sottoblocchi di lunghezza 32 bit per t=16 fino 79 si calcola: W(t)=S^1( W(t-3) XOR W(t-8) XOR W(t-14) XOR W(t-16) ) 2) fissati A=H0 B=H1 C=H2 D=H3 E=H4 per t da 0 a 79 si ripete la sequenza: TEMP=S^5(A)+f(t;B,C,D)+E+W(t)+K(t) E=D, D=C, C=S^30(B), B=A, A=TEMP H0=H0+A H1=H1+B H2=H2+C H3=H3+D H4=H4+E RSA e SHA-1 Composizione dell’impronta L’impronta viene composta unendo i 5 blocchi ottenuti precedentemente: Impronta = H0+H1+H2+H3+H4 Secure Socket Layer Caratteristiche principali Secure Socket Layer Il protocollo SSL viene impiegato per salvaguardare la sicurezza e la segretezza dei dati scambiati durante una comunicazione. Il protocollo è composto da due moduli. Il primo é l’SSL Record Protocol che si aggancia sul protocollo di comunicazione utilizzato rendendo così disponibili le funzioni crittografiche. Il secondo, l’SSL Handshake Protocol, mantiene il sincronismo dell’algoritmo di cifratura e delle chiavi crittografiche utilizzate durante la comunicazione. Secure Socket Layer Generazione della chiave simmetrica di sessione Durante le fasi di attivazione dei protocolli SSL Record Protocol e SSL Handshake Protocol il Client ed il Server si scambiano in maniera sicura (certificato del Server) delle sequenze binarie generate in maniera casuale. Sulla base di queste sequenze il Client ed il Server generano la medesima chiave di sessione che viene utilizzata sia in fase di cifratura che in fase di decifrazione. Il sistema di cifra di SSL si basa su algoritmi a chiave simmetrica. Tale sistema di cifra presenta il vantaggio di essere molto più veloce di un sistema crittografico a chiavi asimmetriche (firma elettronica) a discapito però della sua robustezza e durata nel tempo. Secure Socket Layer Http Secure Socket Layer Https ? SSL Record Protocol SSL Handshake Protocol Netscape Netscape Nel client di posta Netscape è integrata la gestione della firma delle e-mail e della cifratura del contenuto. La gestione dei certificati è semplice ed è disponibile cliccando sul bottone Security. Netscape Il gestore dei certificati permette di gestire in modo semplice i certificati disponibili distinguendo tra i propri, quelli di altre persone con le quali si comunica e quelli delle principali CA mondiali. Netscape Cliccando sul pulsante Visualizza è possibile vedere i dati contenuti nel certificato relativi al titolare ed alla CA che ha emesso il certificato. Netscape E’ possibile usare uno dei propri certificati per firmare una e-mail e usare il certificato del destinatario per cifrare il contenuto della e-mail impostando le opzioni sulla barra menù del compositore di messaggi. Netscape Usando il tasto Security è possibile verificare in fase di composizione della e-mail se la firma e la cifratura sono disponibili o se i certificati posseduti non sono validi. In questo esempio si può firmare ma non si può cifrare. Netscape Quando si riceve una e-mail firmata e/o cifrata compare accanto al testo il pulsante con la corrispondente dicitura. Netscape Cliccando sul pulsante Cifrata e Firmata è possibile vedere i dati relativi ai certificati utilizzati nelle due operazioni. Outlook Outlook Nel client di posta Outlook è integrata la gestione della firma delle e-mail e della cifratura del contenuto semplicemente cliccando sul bottone Options. Outlook E’ possibile usare uno dei propri certificati per firmare una e-mail e usare il certificato del destinatario per cifrare il contenuto della e-mail impostando le opzioni sulla barra menù del compositore di messaggi. Outlook E’ possibile verificare il certificato usato dal mittente usando il pulsante con la coccarda in alto a destra. Outlook Quando la posta è protetta da cifratura viene oscurata anche nella finestra di preview. Outlook Nel client di posta Outlook la gestione dei certificati e del comportamento del client di posta si possono personalizzare cliccando sulla voce Options del menù Tools. Outlook Cliccando su Change Settings si accede alla gestione dei certificati. Cliccando su Choose è possibile selezionare il certificato da utilizzare. Internet Explorer Internet Explorer Come attivare SSL su Internet Explorer: Internet Explorer I messaggi di avviso: Entrata in un sito sicuro: Uscita da un sito sicuro: Internet Explorer Come leggere il certificato del sito sicuro che stiamo visitando: Conclusione Considerazioni e domande