Firma biometrica vs firma digitalizzata


Primo concetto fondamentale da chiarire : la firma autografa digitalizzata non ha nessun valore legale!

Questo dovrebbe essere un concetto chiaro a tutti, spero…

Se firmate un documento a penna (la buona vecchia BIC) e lo fotocopiate, la fotocopia non ha valore legale, solo l’originale ha valenza legale ed è opponibile a terzi. Ovviamente lo stesso discorso vale per i fax e per i documenti digitali (es. PDF contenenti l’immagine della firma).

Nell’ultimo articolo abiamo parlato della soluzione di Intesa San Paolo basata su tablet. E’ importante sottolineare che questi tablet non sono “normali”, ovvero non c’entrano nulla con iPad o simili.

I tablet utilizzati da Intesa San Paolo sono in grado di registrare, oltre al movimento della “penna”, anche il ritmo, la velocità , la pressione e l’accellerazione.

Questi sono i dati utilizzati da un perito calligrafico per stabilire se la firma sia originale; sono personali e specifici di ogni essere umano! Un po’ come l’impronta digitale, vocale o della retina. Questi dati si chiamano dati biometrici della firma, da qui il termine firma biometrica.

Un dispositivo in grado di intercettare e registrare questi dati è anche in grado di “riconoscere” se due firme appartengano alla stessa persona. Ovviamente questo tipo di algoritmi non è “assolutamente sicuro”, nessuna firma è uguale e la firma cambia con l’età , diciamo semplicemente che ci sono dei “margini di errore”.

Ma come si trasformano questi dati in una firma digitale? Non conosco le specifiche tecniche delle varie soluzioni, ma, secondo me, più o meno lavorano così :

Il tablet produce, a fronte della firma di Mario Rossi, un codice derivato dai dati biometrici. Questo codice è univocamente associato a Mario. Il codice viene passato ad un HSM sul quale è memorizzato il certificato privato di firma dell’untete Mario Rossi, tramite l’HSM vengono eseguite tutte le operazione crittografiche (esattamente come sul lettore di smart card).

Siamo abbituati ad avere il certificato di firma sulla smart card, utilizzabile tramite PIN; con questo sistema il certificato non è sulla smart card ma sull’HSM, il PIN è sostitutito dai dati biometrici della firma.

Per approfondimenti vi consiglio di leggere questo articolo.

Firma digitale in banca, un’altro passo avanti (seconda parte).


L’altro giorno, leggendo il quotidiano, mi sono imbattuto in questa notizia : Addio carta, ora in banca la firma è digitale.

Questo articolo è veramente interessante, gli amici di firma facile lo hanno commentato a loro volta aggiungendo un po’ di dati numerici.

Prima di entrare nel merito dell’argomento voglio divertirmi un po’ con dei paragoni…

Intesa San Paolo risparmierà  600.000 RISME di carta da stampante (formato A4) ogni anno.

Mettendo queste risme una sopra l’altra a formare una torre, raggiungeremmo l’altezza di 30.000 metri (il Monte Bianco non arriva a 5.000 metri). Mettendole in fila a formare un sentiero, arriveremmo da Milano a Modena. Se il sentiero lo facessimo con i singoli fogli (e non con l’intera risma) faremmo più di 2 volte il giro della terra.

E stiamo parlando della carta prodotta in un solo anno da Intesa San Paolo nell’ambito delle relazioni con la clientela. Non oso pensare ai numeri che verrebbero fuori se calcolati sulla carta prodotta dalla Pubblica Amministrazione Italiana!

Ora però entriamo nel vivo dell’argomento: a me non piace molto la decisione di utilizzare il tablet per la firma (questo è un giudizio soggettivo, personale e probabilmente un po’ di parte).

Non voglio dire che sia sbagliata, per carità ! Lo se benissimo che per una certa tipologia di clientela (quella più anziana) questo metodo è probabilmente il migliore.

Come ho detto in un precedente articolo oggi sarebbe possibile creare delle carte di credito (o bancomat) che contengono anche il certificato per la firma digitale. Il metodo di applicazione della firma digitale in entrambi i casi (tablet o smart card) sarebbe lo stesso, i documenti prodotti sarebbero (tecnologicamente) identici.

Vedo diversi svantaggi nel metodo scelto da Intesa San Paolo, prima di tutto il costo : un device in grado di accettare la firma biometrica costa MINIMO 200 euro, hanno dovuto stanziare fondi per l’acquisto di un lettore per ogni sportello di ogni filiale. In secondo luogo la firma digitale fatta con questo metodo non è portabile (dal punto di vista dell’utente intendo). Io correntista posso utilizzare quella firma digitale ECLUSIVAMENTE allo sportello della mia banca, non altrove.

Lo strumento carta di credito (o bancomat) è basato su una tecnologia che ormai è sdoganata; anche mia madre (che ormai va per i 70 anni) possiede un bancomat e lo usa regolarmente.

Se la mia banca mi mettesse a disposizione un tale strumento sarebbe un risparmio per entrambi : il lettore costa molto meno (10 euro) ed io avrei in mano una firma digitale che potrei usare anche altrove.

Sarà  difficile convincermi che il tablet oggi (e per i prossimi 5 anni) sia meglio della smart card!

Lo strano mondo delle API crittografiche


In questi giorni sto rivedendo la componente di sinekarta che si interfaccia alla smartcard.

L’attuale applet è stata implementata quasi totalmente da Luca che ha fatto un ottimo lavoro. Stiamo studiando però una soluzione che sia ancora più semplice e utilizzabile anche dai device di ultima generazione.

Non nascondo che nell’ultima settimana ho dovuto studiare molto, ho dovuto colmare le molte lacune che avevo sull’argomento.

L’attuale applet di sinekarta è basata su javasign, un prodotto open source molto valido che è però praticamente morto (R.I.P.). Javasign è a sua volta basato, per quanto riguarda l’accesso alle funzionalità della smartcard, sul famoso pkcs11wrapper di IAIK. Quest’ultima componente non è scritta in tecnologia java, questo costringe l’utente a scaricare una DLL prima di utilizzare per la prima volta la firma digitale di sinekarta.

Gia da qualche anno nella Java Virtual Machine è inclusa una serie di API (javax.smartcardio) che permette di accedere direttamente alle funzionalità messe a disposizione dalla smart card.

Perfetto!” mi sono detto, la nuova applet di sinekarta utilizzerà direttamente queste funzionalità per applicare la firma digitale. Ho scritto qualche manciata di codice java e sono riuscito senza grossi problemi ad accedere ai dati presenti sulla mia smartcard. Che soddisfazione!!!

Subito dopo ho provato ad utilizzare i servizi di sicurezza necessari all’utilizzo del certificato di firma digitale. Qui sono iniziati i problemi seri.

Da qualunque parte affrontassi il problema non riuscivo a torvare la soluzione.

Alla fine ho chiesto un po’ in giro (grazie ad Emanuele ma soprattutto ad Andrea) e sono riuscito a capire il modo giusto di affrontare il problema.

I produttori di smart card “proteggono” la possibilità di accedere direttamente alle funzionalità evolute della carta tramite “chiavi di accesso” che non vengono divulgate.

Non sono divulgate neanche le specifiche di dettaglio del formato dei dati relativi alla firma digitale (Digital Signature).

Non pensiamo subito a chissà quale tentativo di legare il mercato o di limitare la concorrenza; il vero motivo lo descrive questa frase di Andrea : “Il motivo della presenza di questo meccanismo di cifratura è quello che, trattandosi di dispositivi certificati Common Criteria (è un obbligo di legge), si vuole garantire che le librerie utilizzate siano quelle approvate dal costruttore e sottoposte a certificazione.”

Per aggirare questo problema la maggior parte dei software (IAIK compreso) accedono alla smart card passando da un’API standard chiamata PKCS#11.

Quest’API (su ambiente windows una DLL) DEVE essere fornita dal produttore di smart card e nasconde al programmatore questi tecnicismi. Nella Java Virtual Machine è inclusa anche un’API (java.security) specifica per utilizzare le librerie PKCS#11 esterne.

Ricapitoliamo :

  1. situazione attuale – l’applet utilizza javasign che necessita di una dll (pkcs11wrapper) che necessita dell’API PKCS#11 della carta
  2. situazione ideale – l’applet utilizza direttamente l’API javax.smartcardio (non c’è bisogno di DLL esterne) in modo da essere utilizzabile su qualsiasi device, dovremmo conoscere le “chiavi di accesso” di tutte le smart card
  3. probabile implementazione – l’appet utilizza direttamente l’API PKCS#11 della carta

Potrei fare varie speculazioni sulla normativa, su quanto potrebbe essere migliorabile o su quanto sarebbe opportuna questa o quella modifica… inutile polemica. Qualsiasi modifica richiederebbe MOLTO tempo : dovrebbe essere pensata, normata, recepita e divulgata; il progetto deve evolvere più in fretta.

La modifica che apporteremo alla applet di sinekarta sarà quella che ci consentirà un maggiore risultato in breve tempo : PKCS#11 è la nostra scelta!

Firma digitale contactless, fantasia o realtà?


In questi giorni diversi quotidiani hanno riportato alcune notizie secondo le quali molti player importanti stanno investendo nei pagamenti contactless.

Di chi stiamo parlando? Ma di Microsoft, Apple, Google, RIM e gli altri grandi attori del mercato ICT che stanno spendendo fior di quattrini per sfornare soluzioni basate sulla tecnologia NFC.

Cosa è questa tecnologia? NFC è l’acronimo di Near Field Communication, ovvero un sistema di comunicazione basato sul semplice tocco. In realtà il tocco non serve, l’importante è che i due dispositivi stiano a meno di 4 cm di distanza.

Questa è una tecnologia matura. Ho visto, in laboratorio, i primi esperimenti propedeutici alla creazione di un sistema di pagamento basato su NFC già 3 o 4 anni fa. Ma se questa tecnologia è rimasta nel cassetto fino ad oggi, perchè mai dovrebbe decollare proprio ora?

Lascio a voi le speculazioni del caso, a me basta sapere che se le grandi aziende (Google in testa) stanno investendo dei grossi capitali, sicuramente si vedranno i risultati quanto prima.

Ora ritorniamo a guardare questa notizia dal punto di vista tecnico.

L’NFC è una tecnologia che (tra le tante altre cose) permette di eliminare il cavo USB. Molti cellulari di ultima generazione o smartphone supportano questa tecnologia.

L’obiettivo dei grandi attori dell’ICT è di inserire i dati della carta di credito dentro un dispositivo portatile, ad esempio dentro un cellulare o uno smartphone. Esistono anche dei dispositivi molto più economici, eccone un esempio.

In un articolo che ho pubblicato qualche tempo fa ho spiegato come NON ci fossero vincoli tecnologici nel inserire il certificato di firma digitale dentro il chip della carta di credito.

Ovviamente la maggior parte di questi dispositivi partono dal presupposto di montare una smartcard in formato SIM card.

Ora che abbiamo buttato sul tavolo tutte le carte vediamo di metterle nel giusto ordine.

Gli istituti che emettono carte di credito dovranno iniziare a predisporsi per distribuirle anche in formato SIM card per poterle inserire in un device NFC compatibile.

Si inizieranno a vedere i primi POS che accettano sia smartcard standard che device NFC. Si inizieranno a trovare in commercio PC desktop e notebook che possono connettere periferiche NFC.

La conclusione naturale di questo mio ragionamento è facile da intuire.

Siamo alle porte di un cambio epocale che necessita di una riorganizzazione strutturale. Ci sono i fondi e c’è la volontà di evolvere questa tecnologia.

Sarò ripetitivo, avete ragione, ma l’emittente che inserirà il certificato di firma digitale nel chip della carta di credito avrà dato un ulteriore valore aggiunto alla propria clientela.

Il primo che si organizzerà in tal senso, riuscirà a sfruttare più facilmente i benefici della firma digitale, senza più bisogno di lettori di smartcard nè di token USB.

Per apporre la firma digitale basterà digitare il PIN sulla tastiera del cellulare ed appoggiarlo sulla basetta presente allo sportello.

Firma digitale basata sull’algoritmo SHA-1 : ma è ancora valida?


ATTENZIONE!!!

Questo articolo è basato su una fonte errata che ha causato una cattiva interpretazione della normativa.

Potete seguire la discussione sul gruppo linked-in per capire meglio l’errore commesso.

—————————————————————————————————–

Il contenuto originale NON viene cancellato per permettere ai lettori di capire l’accaduto

——————————————————————————————————

La delibera CNIPA 45/2009 (e successive modificazioni) ha introdotto alcune modifiche sulla modalità di calcolo della firma digitale.

Ne abbiamo già parlato in un questo vecchio articolo, se volete un po’ di dettagli tecnici potete rilegegrvelo.

Molti di voi che l’hanno letto si sono però persi nei deliri tecnici riguardanti gli algoritmi e le vulnerabilità e non sono riusciti ad arrivare al termine.

Peccato per voi, perchè alla fine dell’articolo viene spiegato un punto MOLTO importante : la firma basata sull’algoritmo SHA-1 applicata dopo il 31-12-2010 è valida a patto che la vostra smartcard sia di vecchia generazione.

Questo concetto ha delle implicazioni potenzialmente devastanti.

Se il vostro fornitore di sw (ad esempio del sw. di contabilità) vi ha detto che potevate continuare a firmare senza problemi fino alla fine di Giugno, vi ha mentito spudoratamente.

Se avete una smartcard di nuova generazione (tutte le smartcard di infocamere tranne la serie 1202 e tutti i token USB) ed avete applicato la firma digitale dopo il 31-12-2010, sappiate che la firma che avete apposto NON E’ VALIDA.

Il documento che avete prodotto NON ha alcun valore legale (spero che non abbiate firmato cose importanti).

Finchè i documenti firmati non hanno particolari procedure di conservazione, il problema esiste ma non è molto grave. Potete (forse) sempre riapplicare la firma a tutti i documenti.

Ma se avete emesso delle fatture elettroniche “firmate male”, mi spiace per voi ma siete veramente in un gran bel casino.

Quello che posso augurarvi è di avere un Responsabile della Conservazione Sostitutiva con una buona assicurazione!