...

La Firma Digitale

by user

on
Category: Documents
11

views

Report

Comments

Transcript

La Firma Digitale
La Firma Digitale
e le sue applicazioni
Ing. Francesca Merighi
CINECA
Tel. 051 6171916
e-mail: [email protected]
www.cineca.it
Sommario
Introduzione
ƒ Dematerializzazione documentale
ƒ Definizione e normativa sulla Firma Digitale
Parte 1: Operazioni di apposizione e verifica della Firma Digitale
ƒ Operazione di firma RSA
ƒ Operazione di imbustamento
ƒ Operazione di verifica della firma RSA
Parte 2: Dispositivi di Firma Digitale
ƒ Smartcard
ƒ Hardware Security Module
ƒ Interfaccia PKCS#11 ai dispositivi di firma
Parte 3: Profili di Firma Digitale
ƒ PKCS#7
ƒ PDF
ƒ XML
Parte 4: La Firma Digitale in Java
www.cineca.it
Introduzione
Dematerializzazione documentale
Definizione e normativa sulla Firma Digitale
www.cineca.it
Dematerializzazione
e Firma Digitale
Dematerializzazione
Ciclo di vita del
documento
Creazione
Sostituzione dei documenti cartacei con documenti informatici
Costi
Riorganizzazione dei processi amministrativi,
riorganizzazione e formazione del personale
Benefici
Efficienza ed efficacia,
in termini di risparmio di carta, spazio, tempo
Protocollazione
….
Trasmissione
Conservazione
Legge 59/27
Documento informatico con Firma Digitale
stesso valore
documento cartaceo con firma autografa
Strumenti a garanzia
dell’affidabilità
del documento informatico
Firma Digitale
Tecnologia abilitante
della dematerializzazione
Know-how
www.cineca.it
Formati e
regole tecniche
Il quadro normativo per la firma digitale
Firma Digitale
trasformazione sul documento informatico che
è basata su chiavi crittografiche correlate tra loro
Chiave privata
Rende manifesta
Apposizione
firma
Verifica
firma
provenienza
garantisce la connessione univoca tra
firmatario e documento firmato
integrità
consente di rilevare se il documento è
stato modificato dopo la
trasformazione
Chiave pubblica
Verifica
SMARTCARD
15 certificatori
accreditati, tra i più
noti InfoCert, Actalis e
Postecom
www.cineca.it
è eseguita mediante un dispositivo
sicuro sul quale il firmatario ha controllo
esclusivo
Per documenti da e verso le Pubbliche
Amministrazioni è basata su certificato emesso
da un certificatore accreditato CNIPA
Parte 1
Operazioni di apposizione e verifica della Firma Digitale
Operazione di firma RSA
Operazione di imbustamento
Operazione di verifica della firma RSA
www.cineca.it
Standard di riferimento per le
operazioni di Firma Digitale
Utilizzo di standard
PKCS#1
Interoperabilità
Primitive di firma e verifica della firma RSA
Primitive di cifratura e decifratura RSA
X509
Formato dei Certificati Digitali e
degli oggetti ad essi correlati (CRL, ecc.)
PKCS#11
Interfaccia fra applicazione e dispositivi di firma
www.cineca.it
Operazione di firma (RSA)
PKCS#1
DISPOSITIVO
DI FIRMA
Documento
strutturato
T
M in bytes
EMSA
Encode
EM (“impronta”)
RSA-SP1
EM d mod n
Chiave privata (d,n)
Trasformazione che dipende
dal formato del documento
Encoding Method Signature Algorithm
Funzione basata su Hash
che protegge da attacchi
di contraffazione
EMSA-PKCS1-v1_5
(deterministico)
EM=0x00||0x01||0xff||0xff…0xff||0x00||Hprefix||H
p volte
H = impronta di EM
HPrefix = prefisso distintivo per ogni algoritmo di hash
p=nLen – emLen – hLen - hPrefixLen
www.cineca.it
“Impronta” firmata
EMSA-PSS
(probabilistico)
Impronta “mascherata” con un numero casuale, allegato in EM
Operazione di imbustamento
EM d mod n
Documento
strutturato
T
M in bytes
EMSA
Encode
EM (“impronta”)
DISPOSITIVO
DI FIRMA
RSA-SP1
Chiave privata (d,n)
Busta Crittografica
Documento originale
o riferimento ad esso
Trasformazioni sul
documento
Algoritmi di encoding
e firma
Impronta firmata
Certificato digitale
firmatario
Formato PKCS#7, PDF, XML
www.cineca.it
“Impronta” firmata
Operazione di verifica della firma (RSA)
Controllo di integrità e provenienza
PKCS#1
Firma valida
Busta Crittografica
Documento originale
o riferimento ad esso
M
T
EMSA
Verify
Firma non valida
EMSA-PKCS-v1_5 Verify
Trasformazioni sul
documento
M
EM’
Algoritmi di encoding
e firma
EMSA
PKCS-v1_5
Encode
EM
S e mod n
Firma valida
EM’
RSA-VP1
Impronta firmata
no
Firma non valida
EMSA-PSS Verify
Certificato digitale
firmatario
- “Smaschera” EM’ ottenendo l’impronta H’
Chiave pubblica (e,n)
www.cineca.it
=?
si
- Confronta H’ con H=Hash(M):
se sono uguali firma valida
Controllo certificato di Firma Digitale
Standard X509
Busta Crittografica
Controllo firma CA
Documento originale
o riferimento ad esso
Controllo integrità e
affidabilità ente emettitore
Controllo CA affidabile
Trasformazioni sul
documento
Algoritmi di encoding
e firma
Controllo scadenza
Impronta firmata
Certificato digitale
firmatario
CA
Controllo stato di revoca
Online Certificate Status Protocol
Controllo Certificate Revocation List
www.cineca.it
Parte 2
Dispositivi di Firma Digitale
Smartcard
Hardware Security Module
Interfaccia PKCS#11 ai dispositivi di firma
www.cineca.it
Dispositivi sicuri di firma
Dispositivi fisici che
contengono oggetti (chiavi private, chiavi pubbliche e certificati digitali),
attraverso i quali eseguono operazioni crittografiche
Operazioni che coinvolgono la chiave privata avvengono all’interno del dispositivo
Non è possibile estrarre le chiavi private dai dispositivi
Information Technology Security Evaluation Criteria (ITSEC)
Insieme strutturato di criteri di valutazione della sicurezza di un sistema
Normativa italiana : Firma Digitale ottenuta con
dispositivi certificati ITSEC Livello 3
SMARTCARD
www.cineca.it
HSM
Smartcard
CPU: CISC a 5 Mhz
ROM: Contiene sistema operativo e programmi “fissi” (2k/64k)
PROM: Contiene il numero seriale della smartcard (32/64 bytes)
RAM: utilizzata per dati temporanei, si cancella quando si estrae la
smartcard dal lettore (128/1024 byte)
EEPROM: Memorizza informazioni variabili (chiavi e certificati) (circa 128k)
Interfaccia Input/Output: velocità del flusso dati 9600 bit/sec,
protocolli T=0 e T=1
Interfaccia Input/Output
ISO 7816 - Standard di riferimento per smartcard che definisce
9
9
9
9
Caratteristiche fisiche ed elettriche
I protocolli di comunicazione verso il lettore di smarcard (T=0, T=1)
Comando di risposta al reset (Answer To Reset)
modello smartcard
Protocollo di comunicazione verso le applicazioni (Application Protocol Data Unit):
spesso non rispettato dai produttori di smartcard
Circa 1 operazione al secondo
Costo 10-50 euro
www.cineca.it
(+ circa 25 euro per il lettore)
Hardware Security Module
HSM
TCP/IP
Dispositivo crittografico ad alte prestazioni
Sistema complesso con hardware dedicato
Stesse funzionalità delle smartcard
Dispositivo di rete con interfaccia TCP/IP
Accesso via rete con autenticazione
Collegabili in cascata
Tipicamente utilizzato da Certification Authority e
sistemi di firma massiva (es. conservazione documentale)
Dalle 200 alle 1000 operazioni al secondo
Costo dai 20.000 euro in su
www.cineca.it
Comunicazione con dispositivi di firma
il middleware PKCS#11
Applicazione
Standard PKCS#11
Interfaccia standard di accesso alle
funzioni del dispositivo crittografico
PKCS#11 Middleware
(lettura, scrittura, operazioni crittografiche..)
Applicazioni indipendenti dai dispositivi
crittografici
Condivisione sicura delle risorse (gestione
accesso contemporaneo)
Common Cryptographic Interface e
device manager (Sistema Operativo)
PC/SC
TCP/IP
Si concretizza in un set di driver,
dipendenti da dispositivo crittografico e
sistema operativo
Il driver utilizza le APDU per comunicare
con la smartcard interfacciandosi con gli
strati sottostanti
HSM
www.cineca.it
Parte 3
Profili di Firma Digitale
PKCS#7
PDF
XML
www.cineca.it
Formati e profili per la Firma Digitale
XML
Formato del contenuto
PDF
Bytes
XML
Documento da firmare
Profilo busta crittografica
PDF
PKCS#7
Firma semplice
Formato, profilo e
modalità di firma vanno
scelti in base al contesto
applicativo
Firma parallela
Modalità di firma
Firma multipla
Controfirma
Firma multipla mista
www.cineca.it
Profilo di busta crittografica PKCS#7
Signed Data
DigestAlgorithmIdentifiers
ContentInfo
Standard di riferimento
PKCS#7 o RFC 2315
Algoritmi hash utilizzati dai firmatari
Contenuto in bytes o suo riferimento
Certificates
Certificati digitali dei firmatari
CRLs
SignerInfo-1
IssuerAndSerialNumber
DigestAlgorithm
SignerInfos
Collegamento al certificato
Algoritmo di hash per ottenere l’impronta
del contenuto e degli attributi autenticati
Impronta del contenuto
AuthenticatedAttributes
SignerInfo-2
SignerInfo-n
…
DigestEncryptionAlgorithm
EncryptedDigest
n firme parallele
www.cineca.it
Data di firma
UnauthenticatedAttributes
Attributi firmati
rsaEncryption = EMSA-PKCS1-v1_5+RSA o
id-RSASSA-PSS = EMSA-PSS+RSA
Impronta firmata
Attributi non firmati,
ad es. controfirme (SignerInfo)
Profilo di busta crittografica PDF
Firme di “revisioni”
Documento PDF
0-
%PDF
. (PDF content)
.
.
Standard di riferimento
PDF Reference e
ISO 19005-1
% PDF
Versione originale
840 -
signature dictionary
960 1200 -
PKCS#7 firma 0
% EOF
Firma 0 su questi bytes
/ByteRange
[0,840,960,240]
/ByteRange
Revisione 1
/Contents
Busta crittografica PKCS#7
con firma sui bytes indicati
nel ByteRange
Firma 1 su questi bytes
1500 1720 -
%EOF
1900 -
www.cineca.it
PKCS#7 firma 1
% EOF
/ByteRange
[0,1500,1720,180]
Profilo di busta crittografica XML (1)
Standard di riferimento
W3C XMLSignature
XML Signature
SignedInfo
SignedInfo
CanonicalizationMethod
Metodo di canonicalizzazione
SignatureMethod
http://www.w3.org/2000/09/xmldsig#rsa-sha1
EMSA-PKCS1-v1_5 con SHA1 come algoritmo hash
References
Reference
SignatureValue
KeyInfo
Objects
Impronta firmata
dell’elemento SignedInfo
Certificato di firma
Contenuto da firmare o estensioni
Xml Advanced Electronic Signature
XAdES
controfirma e proprietà extra (es. data di firma)
www.cineca.it
URI
Riferimento al contenuto
da firmare
Transforms
Trasformazioni sul contenuto
da firmare
DigestMethod
Algoritmo di hash per
l’impronta del contenuto
DigestValue
Impronta del contenuto
Profilo di busta crittografica XML (2)
Modalità enveloped, enveloping, detached
Documento XML
Nodo 1, id= “id1”
Nodo 3
Nodo 2
...
Nodo 4
Modalità Enveloped
Firma inclusa nel documento da firmare
URI=“#id1”
Riferimento al nodo (con l’ id indicato)
contenuto nello stesso documento in cui è
inclusa la firma
Reference
URI=“percorso/file.xml”
o “http://..”
Modalità Enveloping
Documento da firmare incluso nella firma
Riferimento ad una risorsa
esterna al documento in cui è
inclusa la firma
Modalità Detached
Documento da firmare esterno
al documento che include la firma
Documento XML
Envelope
Nodo 1, id= “id1”
Nodo 3
Nodo 4
Envelope
Nodo 2
...
Firma 1
Firma 1
Firma 2
Firma 1
Firma 2
Documento XML,
object con id=“docId”
Firma 2
Es. Reference URI=“#id1”
www.cineca.it
Es. Reference URI=“#docId”
Es. Reference URI=“documento.xml”
Parte 4
La Firma Digitale in Java
www.cineca.it
La Firma Digitale in Java
Racchiudono primitive crittografiche e utilità
(Hash, algoritmi simmetrici e asimmetrici, ecc)
Provider Crittografici
Vengono utilizzati per funzionalità crittografiche di base
o avanzate (handshake SSL, PKCS#7, XMLSignature, ecc.)
Disponibili implementazioni open source (SunJCE, BouncyCastle, ecc.)
o commerciali (IAIK)
Librerie consigliate per i vari formati e profili
www.cineca.it
Profilo PKCS#7
Package incluso nella jre sun.security.pkcs
Profilo PDF
Librerie open source iText
Profilo XML
Librerie open source apache XML-SEC v 1.4
Fly UP