Qualche giorno fa qualcuno mi ha chieso una procedura semplice per poter installare dei certificati su dispositivi Windows Mobile 6.0. Vorrei scrivere un pò di più su questo delicato argomento e di cui in giro non troviamo mai una documentazione soddisfacente....mi riprometto di fare qualcosa di più organico e completo in un prossimo post. Per adesso mi limiterò ad illustrare una procedura semplice ed efficace, riproducibile in qualunque ambiente.
Dove sono i miei certificati?
I certificati in Windows Mobile sono memorizzati in chiavi di registro ben precise in formato Blob (Binary Large object).Vi sono alcune differenze, che accenniamo solamente, tra la versione 5 e la 6 per quanto riguarda la presenza di stores e il loro accesso. In Windows Mobile 5.0 le store Root e Certificate Authentication (CA) erano completamente inaccessibili a tutti gli utenti che non avessero i permessi assegnati al ruolo di Manager. In Windows Mobile 6 sono state aumentate le store e quindi troviamo le store User Root e User CA per permettere di aggiungere dei certificati anche ad utenti con minori permessi, oltre alle store system Root e system CA che imangono comunque inaccessibili senza permessi da Manager o Enterprise. Ricordiamo come nei dispositivi venga utiizzato un meccanismo di selezione degli accessi alle risorse (chiavi di registro, applicazioni, certificate stores...) basato sul ruolo che ciascun utente al momento dell'accesso al dispositivo ricopre.
Ho trovato le stores dei certificati (ma dove sono!!?? :-)) e li ho riprodotti in figura per un Mobile Device Emulator 5.0:(ricordo che questo screenshot è stato prodotto utilizzando i remote tools di Visual Studio 2005 ed in particolare il Device Emulator Manager)
Come si vede sono presenti tutte le stores relative alla macchina, mentre se andate sulla chiave di registro [HKEY_CURRENT_USER\Comm\Security\SystemCertificates] troverete solamente la chiave "my" in cui memorizzare i certificati dell'utente.
Si può vedere nell'immagine successiva invece come in Windows Mobile 6 le cose siano state modificate abbastanza per quanto riguarda soprattutto le stores relative a HKCU. In particolare la chiave "root" può contetnere certificati root o self-signed installati da qualcuno con il ruolo Authenticated ( e non Enterprise o Manager). Inoltre la chiave "ca" (sempre all'interno di HKCU) contiene certificati emessi da CA intermedie installabili ancora da utenti nel ruolo Authenticated User.
Let's Install!!
Procuriamoci innanzi tutto un certificato. A proposito...che tipo di certificato supporta Windows Mobile 6? Abbiamo la possibilità di scegliere tra questi formati:
|
PFX/.P12 – Public-Key Cryptography Standards #12 (PKCS #12). Questo formato include certificati personali a cui si possono allegate anche le rispettive chiavi private
|
|
CER – Base64-encoded oppure DER-encoded X.509. Certificati che si installano nelle stores intermediate e root.
|
|
P7B - Public-Key Cryptography Standards #7 (PKCS #7) Si installano con questo formato, più certificati in qualsiasi store del device.
|
Io ho scelto un certificato personale presente sulla mia macchina desktop che tramite lo snap-in "certificates" della MMC ho esportato (insieme alla chiave privata) in un file di tipo .pfx. Solitamente poi, siccome i file .pfx/.p12 vengono protetti con una ulteriore password che viene fornita al momento dell'esportazione, ho inserito una password che al momento della istallazione sul device dovrò digitare nuovamente.
Adesso si pone il problema di come fare il deploy del file .pfx. Nel caso in esempio ho ovviamente utilizzato il remote tool "Windows CE file View", ma nella realtà è possibile utilizzare diversi meccanismi quali per esempio ActiveSync, card rimuovibili, attachment di e-mail oppure tramite download da Mobile Internet Explorer di file .cpf (dei wrapper di cui parleremo in un successivo post). Quando il file sarà presente sul dispositivo si presenterà così:
A questo punto non rimane che fare un tap sul file per far partire automaticamente la procedura di installazione del certificato. Verrà ovviamente richiesta la password:
Ed infine il certificato sarà installato con successo:
Dove lo ritroviamo? il percorso da seguire è Start>Settings>System>Certificates ed infine arriviamo alle nostre stores che vengono visualizzate sul dispositivo: