smart card per negati


La firma digitale basata su smartcard ha delle enormi possibilità  ma non sempre un utente che si trova ad usare la propria smart card per la prima volta riesce a districarsi nella complessità  di questa tecnologia.

Questo articolo vuole essere una mini guida (spero alla portata di qualsiasi lettore) per capire il mondo delle smart card.

Anche se molti concetti di cui parlerò si applicano esclusivamente al mondo della firma digitale, altri sono validi per qualsiasi smart card, : SIM telefoniche, Carte di credito, etc..

Prima di tutto : cosa è¨ una smart card?

Una carta a microprocessore (una smart card appunto) è un computer miniaturizzato, con tanto di memoria, sistema operativo e quant’altro.

Questo minuscolo computer può comunicare con altri dispositivi tramite i contatti, la parte in rame visibile sulla tessera di plastica.

Per permettere alla nostra carta a microprocessore di comunicare con il nostro computer sono necessarie due cose :

  1. un adattatore che “converta” il formato dei contatti
  2. un software che sia in grado di parlare la stessa lingua della carta

Il primo aspetto è quello meno difficile da comprendere : quasi tutti i computer in circolazione hanno bisogno di un congegno che permetta la “conversione” dello schema elettrico dei contatti in rame della carta in un formato collegabile ad un computer.

Stiamo parlando del lettore : un dispositivo che permette alla smartcard di comunicare con il PC attraverso, ad esempio, una porta USB (buona vecchia USB).

Ovviamente, come qualsiasi dispositivo USB, per il corretto funzionamento è necessaria l’installazione di un driver che, di solito, è fornito insieme al lettore.

Il secondo aspetto è quello più complesso; necessita di un po’ di pazienza per essere sviscerato.

Abbiamo detto che la smart card è un piccolo computer, come qualsiasi computer è in grado di eseguire operazioni che gli vengono richieste tramite un linguaggio. Chiunque voglia chiedere al microprocessore della carta di eseguire una determinata azione deve conoscere questo linguaggio (ecco i riferimenti : ISO/IEC 7816-4).

Il problema di qualsiasi linguaggio è che, a seconda di chi lo parla (o lo ascolta), ci possono essere delle lievi differenze : i vari dialetti. A seconda di chi ha realizzato l’interprete del linguaggio (il produttore della smart card), ci possono essere delle piccole differenze (spesso solo sfumature) nel modo in cui vengono capiti ed eseguiti i comandi.

Quindi, in soldoni, nonostante esista uno standard di riferimento per questo linguaggio, a seconda del produttore della carta ci possono essere delle piccole differenze nel modo in cui la carta accetta ed esegue i comandi.

Per questo (e per altri motivi troppo tecnici per essere spiegati in questo articolo) è spesso necessario non usare direttamente il linguaggio del microprocessore ma utilizzare un software (fornito dal produttore della smart card) che semplifica la comunicazione con la carta. Entrare nel dettaglio di questo software è veramente troppo complesso, diciamo semplicemente che il nome di questa componente è “modulo che implementa l’API PKCS11”, per gli amici driver PKCS11. E’ importante inoltre dire che il driver PKCS11 elimina i problemi di dialetto.

Qualsiasi applicazione, di qualsiasi produttore software, può quindi parlare con qualsiasi carta, di qualsiasi produttore, se utilizza il driver PKCS11.

Veniamo ora a sinekarta. Ho spiegato in un precedente articolo, qualche tempo fa, come sinekarta permetta di applicare la firma digitale tramite il browser dell’utente. Ma come può sinekarta accedere alla smart card tramite il browser?

Si, bravi, avete capito bene! sinekarta accede alla smart card passando per il driver PKCS11!!

Ma non correte troppo, purtroppo manca un tassello al puzle. Il browser interpreta e visualizza pagine HTML, tramite l’HTML (o javascript) non è possibile accedere ad alcun driver.

Per riuscire ad accedere al driver PKCS11 da un browser, viene utilizzata una APPLET. Una APPLET è un pezzo di software (di sinekarta in questo caso) che viene caricato nella pagina web (esattamente come un’immagine o un filmato). La prima volta che un utente, tramite browser, accede alle funzionalità  di firma digitale di sinekarta, gli viene richiesto di installare questa APPLET. (Se sei un tecnico, non ti preoccupare. So benissimo di avere detto una grande inesattezza ma sto semplificando 😉 ).

La APPLET però non è in grado di accedere in modo semplice al driver PKCS11 perchè il driver è esposto in modo differente a seconda del sistema operativo dell’utente (windows, linux, mac, etc…). L’ultimo pezzettino quindi risolve questo problema tecnologico. Dopo avere installato l’APPLET è necessario scaricare e salvare in una directory del sistema un programma di utilità (PKCS11WRAPPER) che permette di accedere al driver PKCS11 del proprio sistema operativo.

Per fortuna queste ultime attività  devono essere fatte solo al primo utilizzo delle funzioni di firma di sinekarta.

Annunci

One Response to smart card per negati

  1. Pingback: Sinekarta su ipad: ci stiamo lavorando! «

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: