Firma elettronica Concetti e meccanismi cristiano.crevato@insiel.it.

Post on 01-May-2015

220 views 1 download

Transcript of Firma elettronica Concetti e meccanismi cristiano.crevato@insiel.it.

Firma elettronicaFirma elettronica

Concetti e meccanismi

cristiano.crevato@insiel.it

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.

E-mail

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.

E-mail

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