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=1113
 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