Utilizzare il TPM come Smart Card

Lo scopo di questo articolo è mostrare come sia possibile utilizzare un TPM per conservare certificati di autenticazione senza collegare il computer ad un server AD.

Innanzitutto creiamo la smartcard virtuale:

tpmvscmgr.exe create /name tpmvsc /pin PROMPT /puk PROMPT /adminkey random /generate /attestation AIK_AND_CERT /pinpolicy minlen 6

Fatto ciò, apriamo certmgr.vsc e andiamo in Personale->Certificati. Qui tasto destro e scegliamo “Crea richiesta personalizzata”. Scegliamo Continua senza criteri->Avanti->Dettagli->Proprietà e impostiamo:

Generale->Nome = Arbitrario
Soggetto->Tipo->Nome comune = Arbitrario
Estensioni->Utilizzo Chiave = Firma digitale, Chiave concordata, Rendi critici
Estensioni->Utilizzo Chiave esteso = Autenticazione client
Chiave privata->CSP = Scegliere “RSA, Microsoft Smart Card Key Storage Provider”
Chiave privata->Resto = Personalizzare

Facciamo OK, quindi avanti e infine salviamo il file req (vi verrà chiesto il pin).

Consegnamo il req alla CA o firmiamolo noi stessi con:

openssl x509 -req -days 3650 -in file.req -CA ca.pem -CAkey key.pem -out tpm.cer -set_serial 03

Se invece volete utilizzarla con OpenVPN, è possibile creare il cer con easy-rsa. Copiamo il csr nella cartella keys e diamo:

source vars

./sign-req nomecsr

Nella cartella keys ora troveremo nomecsr.cer. Specifichiamo nel file ovpn togliamo <cert> e <key> e aggiungiamo la seguente direttiva:

cryptoapicert “THUMB:00 11 22 33…”

Dove i numeri rappresentano l’id sha1 del certificato.

Una volta ottenuto il file cer, tasto destro, installa, sempre avanti. Il sistema chiederà il pin scelto in precedenza per installare il certificato. Se tutto è stato fatto come descritto saremo ora in grado di loggarci tramite il TPM:

tpm

Infine è possibile eliminare la smartcard con:

tpmvscmgr destroy /instance root\smartcardreader\0000

Dove 0000 è il numero progressivo della card. I dati non sono recuperabili ne estraibili in nessun caso.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *