Comments
Description
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