Università degli studi di Udine
Crittografia e firma
elettronica
Cristiano Crevato
Il documento classicoIl documento classico
Il supporto cartaceo
Il documento modernoIl documento moderno
Il documento informatico.Il documento informatico.
““S’intende per documento informatico S’intende per documento informatico la rappresentazione informatica di atti, la rappresentazione informatica di atti, fatti o dati giuridicamente rilevanti.”fatti o dati giuridicamente rilevanti.”
Il documento modernoIl documento moderno
Università degli studi di Udine
Crittografia e firma
elettronica
Cristiano Crevato ?
Firma elettronicaFirma elettronica
EsigenzeEsigenze
. La legge richiede di: . La legge richiede di:
– Poter firmare elettronicamente un documentoPoter firmare elettronicamente un documento
– Consentire la verifica della firma apposta da parte di terziConsentire la verifica della firma apposta da parte di terzi
– Mantenere la sicurezza del sistemaMantenere la sicurezza del sistema
Crittografia classica?Crittografia classica?
Crittografia classica (simmetrica)
N utenti (N-1)2 chiavi
Rapporto uno a (N-1)
R1 T1 R2 T2mc1 c2 c3
c4
Cifrario a trasposizione
Cifrario a rotazione
Crittografia classica?Crittografia classica?
Data Encryption Standard
S0 D0
Si=Di-1
TI
Di=Si-1+f(Di-1,Ki)
32 bit32 bit
64 bit
32 bit32 bit
TF64 bit
Cifrario di Vigenère
P A R I G I V A L B E N E U N A M E S S A
U L R F C Z D L L V A C L G N U G S A E A
F L A U T O F L A U T O F L A U T O F L A
Cifrario a trasposizione
P A R I G I V A L B E N E U N A M E S S A
P R G V L E E N M S A A I I A B N U A E S
P A R I G I V A L B E N E U N A M E S S A
Cifrario a trasposizione
Analisi statistica della lingua usata
Complessità computazionale relativamente bassa
Non garantisce l’identità del firmatario
Crittografia moderna?Crittografia moderna?
Crittografia a chiave pubblica
N utenti N chiavi
Rapporto uno a uno
Firma elettronicaFirma elettronica
Uso delle chiavi
Contenuto di un generico documento informatico
Vse7 edca 34q 23r # =)N90mjs “ &vr5% HHJ
PRIVATA
PUBBLICA
Firma elettronicaFirma elettronica
Funzione della Firma ElettronicaFunzione della Firma Elettronica
L’applicazione della L’applicazione della Firma ElettronicaFirma Elettronica ad un ad un documento informaticodocumento informatico permette di permette di certificare certificare l’integrità e la paternità dl’integrità e la paternità delel document documentoo (certificazione)(certificazione)
Firma elettronicaFirma elettronica
Impiego della Firma elettronicaImpiego della Firma elettronica
Per poter sostituire in tutto e per tutto i documenti cartacei Per poter sostituire in tutto e per tutto i documenti cartacei negli atti ufficiali.negli atti ufficiali.
» Redigere atti ufficialiRedigere atti ufficiali» Distribuire atti ufficialiDistribuire atti ufficiali» Archiviare atti ufficialiArchiviare atti ufficiali
Firma elettronicaFirma elettronica
Art.15, comma 2, legge 15 marzo 1997, n.59Art.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 elettronicaFirma elettronica
La firma elettronica, apposta rispettando le La firma elettronica, apposta rispettando le disposizioni tecniche, ha valore soltanto se la disposizioni tecniche, ha valore soltanto se la coppia di chiavi è dotata di certificato coppia di chiavi è dotata di certificato elettronico rilasciato da una elettronico rilasciato da una terza parte terza parte garantegarante,, la Certificate Authority, la Certificate Authority, che ne attesti che ne attesti la validità.la validità.
Utente BUtente A
Certificate Authority
Firma elettronicaFirma elettronica
http://www.aipa.it
Autorità per l’Informaticanella Pubblica AmministrazioneStabilisce regole e modalità di applicazione della firma elettronica. Certifica e conserva l’elenco dei soggetti autorizzati a svolgere l’attività di Certificate Authority.
Firma elettronicaFirma elettronica
CoCosa deve conteneresa deve contenere un certifica un certificatoto:: (D.P.C.M. 8/2/1999, Art.11(D.P.C.M. 8/2/1999, Art.11))
a.a. Numero di serie del certificato Numero di serie del certificato
b.b. Ragione e denominazione sociale del certificatore Ragione e denominazione sociale del certificatore
c.c. Codice identificativo del titolare presso il Codice identificativo del titolare presso il certificatorecertificatore
d.d. Nome cognome e data di nascita ovvero ragione e Nome cognome e data di nascita ovvero ragione e denominazione sociale del titolaredenominazione sociale del titolare
e.e. Valore della chiave pubblicaValore della chiave pubblica
f.f. Algoritmi di generazione everifica utilizzati Algoritmi di generazione everifica utilizzati
g.g. Inizio e fine del periodo di validità delle chiavi Inizio e fine del periodo di validità delle chiavi
h.h. Algoritmo di sottoscrizione del certificato Algoritmo di sottoscrizione del certificato
Firma elettronicaFirma elettronica
Adempimenti della CAAdempimenti della CA:: (D.P.C.M. 8/2/1999, Art.22, comma 2(D.P.C.M. 8/2/1999, Art.22, comma 2))
““Al momento della registrazione il Al momento della registrazione il certificatore deve verificare l’identità del certificatore deve verificare l’identità del richiedente. E’ data facoltà al certificatore di richiedente. E’ data facoltà al certificatore di definire, pubblicandole nel manuale definire, pubblicandole nel manuale operativo, le modalità di identificazione operativo, le modalità di identificazione degli utenti.”degli utenti.”
Firma elettronicaFirma elettronica
Aspetto diAspetto di un certifica un certificatoto:: (Base64 encoded X509)(Base64 encoded X509)
Firma elettronicaFirma elettronica
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.
3. Bianchi verifica la firma di Rossi applicando alla e-mail la chiave pubblica di Rossi.
Bianchi
Rossi
Certificate Authority
Rossi
CERTIFICAZIONE
intranet
Oltre la Firma elettronicaOltre la Firma elettronica
““FunzioneFunzione”” della Firma Elettronica della Firma Elettronica
Le chiavi utilizzate per applicare la Le chiavi utilizzate per applicare la Firma Firma ElettronicaElettronica ad un documento informaticoad un documento informatico possono essere usate possono essere usate per per limitare l’accesso al limitare l’accesso al contenuto del documentocontenuto del documento ad un gruppo ad un gruppo ristretto di personeristretto di persone (confidenzialità)(confidenzialità) in tal in tal caso viene meno la garanzia sulcaso viene meno la garanzia sulla paternità la paternità ddelel document documentoo
Firma elettronicaFirma elettronica
Uso delle chiavi
Contenuto di un generico documento informatico
Vse7 edca 34q 23r # =)N90mjs “ &vr5% HHJ
PRIVATA
PUBBLICA
PUBBLICA
PRIVATA
Firma elettronicaFirma elettronica
3. Rossi recupera l’allegato usando la sua chiave privata.
1. Bianchi recupera dalla CA il certificato di Rossi contenente la chiave pubblica di Rossi.
2. Bianchi spedisce a Rossi una e-mail con un documento allegato, cifrando tutto con la chiave pubblica di Rossi.
Bianchi
Rossi
Certificate Authority
CONFIDENZIALITA’
Firma elettronicaFirma elettronica
Il meccanismo diFirma Elettronica
Firma elettronicaFirma 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 elettronicaFirma elettronica
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.
Impronta e algoritmo di Hash
Testo originale
del document
o
T t o i al
el d um t
Firma elettronicaFirma elettronica
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.
Generazione della Firma
shjbjad
vczaxcv
T t o i al
el d um t
Firma elettronicaFirma elettronica
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à.
shjbjad vczaxcv
Testo originale
del document
o
Generazione del documento firmato
Firma elettronicaFirma elettronica
Meccanismo di Verifica
• Separazione del documento firmato dalla firma elettronica apposta
• Decifrazione della firma digitale mediante la chiave pubblica del sottoscrittore
• Confronto delle due impronte
• Estrazione di un’impronta dal documento mediante lo stesso algoritmo di Hash usato per firmarlo
Firma elettronicaFirma elettronica
Verifica: estrazione e confronto delle impronte
Testo originale
del document
o
T t o i al
el d um t
T t o i al
el d um t
(Firma)
shjbjad vczaxc
v
Valida
RSA e SHA-1RSA e SHA-1
Nozioni di base
D.P.C.M. 8 febbraio 1999 Art. 2D.P.C.M. 8 febbraio 1999 Art. 2
Algoritmi di generazione e verifica delle firme Algoritmi di generazione e verifica delle firme digitalidigitali
1. 1. Per la generazione e la verifica delle firme digitali Per la generazione e la verifica delle firme digitali possono essere possono essere utilizzati i seguenti algoritmiutilizzati i seguenti algoritmi
a. a. RSA (Rivest-Shamir-Adleman algorithm)RSA (Rivest-Shamir-Adleman algorithm)..
b. b. DSA (Digital Signature Algorithm)DSA (Digital Signature Algorithm)..
RSA e SHA-1RSA e SHA-1
Aritmetiche circolari
0
1
2
3
4
5
3 + 4 = 1
3
3+1
3+2
3+3
3+4
Aritmetica modulo nNell’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
RSA e SHA-1RSA e SHA-1
Aritmetiche circolari
0
1
2
3
4
5
3 x 4 = 0
3x1 = 3x3
3x2 = 3x4
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
L’algoritmo RSA si basa su funzioni unidirezionali
- Diretta semplice da calcolare
- Inversa di difficile computazione
RSA e SHA-1RSA e SHA-1
Funzione di Eulero
(n) = n x (1-1/n1) x (1-1/n2) x ... x (1-1/nm)
6 = 2 x 3 (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
(u)v = 1 modulo u
(u) - 1w = v modulo u allora wv = 1 modulo u
coppia (n,y)
y con resto [(yx):(n)]=1
x primo con (n)
(n)=(p-1)(q-1)
n = pq
p e q primi
(143,7) Pubblica
7
103 Privata
(143)=10 12=120
143=1113
11 e 13
Metodo:Metodo:
RSA - Generazione delle chiaviRSA - Generazione delle chiavi
Esempio numerico:Esempio numerico:
RSA e SHA-1RSA e SHA-1
R S A - Cifratura e decifrazioneR S A - Cifratura e decifrazioneAlgoritmo:Algoritmo: Esempio numerico:Esempio numerico:
decifrazione di cm = c x modulo n
cifratura di m c = m y modulo n
m messaggio da inviare:
=
(codice ASCII)
(codice ASCII)
40, 60, 60, 83, 89, 108(<<SYl
79, 70, 70, 73, 67, 69OFFICE =
79, 70, 70, 73, 67, 69OFFICE =
(codice ASCII)
RSA e SHA-1RSA e SHA-1
D.P.C.M. 8 febbraio 1999 Art. 2D.P.C.M. 8 febbraio 1999 Art. 2
Algoritmi di hashAlgoritmi di hash1. 1. La generazione dell’impronta si effettua La generazione dell’impronta si effettua impiegando una delle seguenti funzioni di hash, definite impiegando una delle seguenti funzioni di hash, definite nella norma ISO/IEC 10118-nella norma ISO/IEC 10118- 3:1998:3:1998:
a. a. Dedicated hash-Function 1, corrisp. alla funzione Dedicated hash-Function 1, corrisp. alla funzione RIPEMD-160RIPEMD-160;;
b. b. Dedicated hash-Function 3, corrisp. alla funzione Dedicated hash-Function 3, corrisp. alla funzione SHA-1SHA-1;;
RSA e SHA-1RSA 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-1RSA 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 (60 t 79)
dove B,C,D sono sequenze di 32 bit
RSA e SHA-1RSA 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-1RSA 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° blocco = 67452301 = 1100111010001010010001100000001 2° blocco = EFCDAB89 = 11101111110011011010101110001001 3° blocco = 98BADCFE = 10011000101110101101110011111110 4° blocco = 10325476 = 10000001100100101010001110110 5° blocco = C3D2E1F0 = 11000011110100101110000111110000
RSA e SHA-1RSA 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-1RSA 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-1RSA e SHA-1
Composizione dell’impronta
L’impronta viene composta unendo i 5 blocchi ottenuti precedentemente:
Impronta = H0+H1+H2+H3+H4
RSA e SHA-1RSA e SHA-1
Secure Socket LayerSecure Socket Layer
Caratteristiche principali
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 LayerSecure 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 LayerSecure Socket Layer
Http
Secure Socket LayerSecure Socket Layer
Https
SSL Record Protocol
SSL Handshake Protocol
Secure Socket LayerSecure Socket Layer
?
NetscapeNetscape
NetscapeNetscape
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.
NetscapeNetscape
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.
NetscapeNetscape
Cliccando sul pulsante Visualizza è possibile vedere i dati contenuti nel certificato relativi al titolare ed alla CA che ha emesso il certificato.
NetscapeNetscape
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.
NetscapeNetscape
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.
NetscapeNetscape
Quando si riceve una e-mail firmata e/o cifrata compare accanto al testo il pulsante con la corrispondente dicitura.
NetscapeNetscape
Cliccando sul pulsante Cifrata e Firmata è possibile vedere i dati relativi ai certificati utilizzati nelle due operazioni.
OutlookOutlook
OutlookOutlook
Nel client di posta Outlook è integrata la gestione della firma delle e-mail e della cifratura del contenuto semplicemente cliccando sul bottone Options.
OutlookOutlook
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.
OutlookOutlook
E’ possibile verificare il certificato usato dal mittente usando il pulsante con la coccarda in alto a destra.
OutlookOutlook
Quando la posta è protetta da cifratura viene oscurata anche nella finestra di preview.
OutlookOutlook
Nel client di posta Outlook la gestione dei certificati e del comportamento del client di posta si possono personalizzare cliccando sulla voce Options delmenù Tools.
OutlookOutlook
Cliccando su Change Settings si accede alla gestione dei certificati.
Cliccando su Choose è possibile selezionare il certificato da utilizzare.
Internet ExplorerInternet Explorer
Come attivare SSL su Internet Explorer:
Internet ExplorerInternet Explorer
I messaggi di avviso:
Entrata in un sito sicuro: Uscita da un sito sicuro:
Internet ExplorerInternet Explorer
Come leggere il certificato del sito sicuro che stiamo visitando:
Internet ExplorerInternet Explorer
ConclusioneConclusione
Considerazioni e domande
Top Related