Il recente post di David Cross che annuncia la pubblicazione del programma di certificazione per gli Smart Card Minidriver, mi fornisce l'occasione per darvi qualche dettaglio sulla evoluzione dell'architettura di gestione delle Smart Card su Windows Vista, che va sotto il nome di Windows Smartcard Framework (WSF): questa è una di quelle innovazioni che di solito non guadagnano i riflettori della ribalta, ma sono davvero delle pietre miliari nell'evoluzione dei  sistemi operativi Microsoft. Facciamo un passo indietro. Il supporto per le Smart Card (che d'ora in poi indico con SC) su Windows esiste da Windows 2000. Il dispositivo per leggere le SC, il lettore, richiede la presenza di un driver conforme alle specifiche PC/SC v.1.0.  In particolare, su Windows Vista non è necessario aggiungere alcun driver se il lettore è USB, conforme alle specifiche USB-CCID, perché ne esiste uno già nativamente: quindi per questi lettori USB l'esperienza è plug-'n-play (= li colleghi e funzionano). La SC fisica poi richiede la presenza di un componente software denominato Cryptographic Service Provider (CSP), che viene invocato dalle applicazioni che intendono usare le SC tramite delle interfacce applicative chiamate Crypto API (più note come CAPI). Il vendor di SC che voleva scrivere il suo CSP ci metteva circa un anno uomo di lavoro nello sviluppo applicativo, impegno non banale. Come agevolare l'adozione delle SC (...per liberarci quanto prima dell'uso di credenziali deboli quali username/password) e semplificare la realizzazione del CSP? Adottare la modifica architetturale già ben riuscita con i driver per le stampanti introdotta in Windows 2000: suddividere logicamente il CSP in una parte che contiene le funzionalità di base di gestione delle SC (Smart Card Base CSP), e una parte che è specifica per la particolare SC del vendor (Card Module, ora chiamato Smart Card MiniDriver). Quindi il Base CSP è stato incluso nativamente in Windows Vista, e visto che rappresenta una evoluzione importante da fornire anche alle  versioni precedenti di Windows è stato reso disponibile come download (da novembre del 2005) e posto anche su Windows Update. Ai vendor di SC rimane quindi solo il compito di scrivere il SC Minidriver, con un impegno medio di 4-6 settimane di sviluppo applicativo: un decimo di tempo del passato ! Il programma di certificazione di cui vi ho detto all'inizio, non è altro che il programma che permette di assicurare la consistente qualità degli Smart Card Minidriver, ottenendo il logo "Works for Windows Vista" che permetterà la distribuzione dei driver tramite Window Update: in questo modo per gli utenti sarà più immediato installare il software necessario per far funzionare le SC! Trovate tutti i link necessari nel post del blog di Window Vista Security.

Per completare questa breve panoramica sulla nuova architettura di gestione delle SC in Windows Vista è importante aggiungere che per supportare nuovi algoritmi crittografici, ed una architettura estensibile,   è stato aggiunto un nuovo set di interfacce applicative, le Crypto API Next Generation (CNG), che si affiancano alle "vecchie" Crypto API. L'architettura è del tutto analoga, e il componente parallelo rispetto al Base CSP si chiama Smart Card Key Storage Provider (KSP), presente nativamente in Windows Vista, che offre le stesse interfacce verso gli Smart Card MiniDriver, ed è quello che, per esempio, permette  il supporto per gli algoritmi Elliptic Curve Cryptography (ECC).

Risorse per approfondire:

il blog sulla Smart Card Infrastructure, il whitepaper "Enterprise Smart Card Deployment in the Microsoft® Windows® Smart Card Framework" e link indicati nei suoi riferimenti.