7. Il rapporto delle smart card con PKI

Come già sappiamo, le smart card sono luoghi sicuri su cui collocare dati sensibili, quali soldi ed identità personale. E se l'argomento è l'identità personale dobbiamo parlare di PKI, Public Key Infrastructure, e smart card.

Si immagini di lavorare in un'azienda con molte filiali e succursali. In queste grandi aziende gli impiegati hanno frequentemente permesso d'accedere in diversi luoghi fisici. Inoltre, si può accedere ai server aziendali per varie mansioni quali inviare posta elettronica, aggiornare le pagine web ed accedere ai database aziendali. Si pensi, una password per ogni server ed una chiave per ogni porta e dei soldi in portafoglio per acquistare cibo o bevande nel ristorante più vicino.

In realtà, si potrebbe utilizzare una smart card. Se s'utilizza una scheda a microprocessore ed il sistema operativo della scheda oppure le cardlet Java lo consentono, si potrebbe in effetti utilizzare un'unica scheda per tutto questo. Affinché questo scenario sia fattibile, l'azienda deve disporre di una propria CA, Certificate Authority. Lo schema seguente mostra una semplice struttura PKI, come descritto nell'RFC 2459.

       +---+
       |   |                       +---------------+
       | D | <-------------------->| Entità finale |
       | e |       Transazioni     +---------------+
       | p |        operative            ^
       | o |      e transazioni          |  Transazioni
       | s |       gestionali            |  gestionali
       | i |                             |                utenti PKI
       | t |                             v
       | o |       -------------------+--+-----------+----------------
       |   |                          ^              ^
       |   |                          |              | entità di
       | C |                          v              |  gestione  PKI
       | e |                         +------+        |
       | r | <-----------------------| RA   | <--+   |
       | t | Pubblica il certificato +------+    |   |
       |   |                                     |   |
       | / |                                     |   |
       |   |                                     v   v
       | C |                                +------------+
       | R | <------------------------------|     CA     |
       | L |   Pubblica il certificato      +------------+
       |   |   Pubblica la CRL                     ^
       |   |                                       |
       +---+                        Transazioni    |
                                    gestionali     |
                                                   v
                                               +------+
                                               |  CA  |
                                               +------+
   

In realtà, questa è solo una visione semplificata delle entità PKI. L'impiegato o l'entità finale si riferisce semplicemente alla CA od alla RA per ottenerne un certificato. Un certificato è solo una chiave pubblica digitalmente firmata con la chiave privata dell'ente rilasciante, la CA. Se firmato con la chiave privata della CA, tutti coloro che ripongono fiducia in essa danno automaticamente fiducia all'entità finale. La propria ID digitale è servita, bisogna solo scrivere la propria ID digitale e la chiave privata nella smart card, meglio ancora se s'utilizzano le nuove smart card, rilasciate con funzioni incluse che generano chiavi pubbliche e private all'interno della scheda, il che significa che la tua chiava privata non è esportata verso alcun luogo.

Le schede di nuova generazione sono in grado di utilizzare funzioni PKI che non richiedono d'esportare la chiave privata verso l'applicazione utilizzata. Ad esempio, quando si vuole mandare una mail firmata il programma di posta elettronica prima genera una hash del documento che si ha appena scritto e poi instaura la comunicazione con la scheda. L'applicazione quindi invia il valore dell'hash alla scheda, che provvede a firmare dentro se stessa tale valore con la chiave privata contenuta nella scheda medesima. In questo modo, la chiave privata non viene mai esportata verso l'ambiente pubblico, ovvero il computer.

Inoltre, quando si accede ad un proprio account remoto si può utilizzare un client ssh, la shell sicura. Un metodo di autenticazione per il protocollo ssh2 è descritto nella man page di OpenSSH. Il principale proposito di tal metodo è l'effettiva identificazione della persona che tenta d'accedere all'account e quindi l'instaurazione di una connessione tra gli host, qualora l'utente venisse accettato. In teoria, solo l'utente può conoscere la propria chiave privata. Sebbene la chiave privata sia leggibile solo dal proprietario, questo può essere un rischio di sicurezza, ma se la chiave privata viene memorizzata all'interno di una smart card si può ottenere una maggiore sicurezza. Naturalmente può capitare di perdere una smart card, ma a questo punto interviene un ulteriore argomento di sicurezza, il PIN. In generale, si può dire che la sicurezza delle smart card ha due origini, una che si sa ed una che si possiede.

SSH non è l'unica applicazione per cui si possono utilizzare le smart card. Transazioni monetarie in rete, autenticazione presso siti cui ci si connette ed altre applicazioni possono essere svolte grazie alle smart card. Il sistema è sempre più o meno lo stesso: l'identificazione viene verificata attraverso la chiave privata ed una sessione sicura viene avviata con le chiavi; a questo punto emergono specifiche e diverse componenti delle applicazioni, così come son state pensate e realizzate dal fornitore dell'applicazione. In alcuni casi le transazioni monetarie vengono effettuate all'interno della smart card, ma con altre applicazioni ad essa viene solo richiesto il numero di conto corrente bancario. Ci possono essere poi ulteriori metodologie.

È possibile trovare sul mercato serrature elettroniche che dialogano con una smart card. PKI può supportare, in aggiunta alla reciproca autenticazione di scheda e lettore, il conteggio degli accessi nello stabile. Si può utilizzare la semplice e reciproca autenticazione, oppure la serratura può effettuare una richiesta ad un server locale che contiene i dati degli utenti e verificare se all'utente è concesso di oltrepassare la porta e, sia che l'accesso sia concesso oppure rifiutato, il server tiene traccia dei tentativi d'accesso.

Man mano che l'integrazione delle smart card con il mondo PKI procederà, molte nuove applicazioni verranno create, soprattutto riguardanti vari aspetti della sicurezza oppure per semplificare la vita dell'utenza.