Ho una smart card con PKCS # 11 o altra interfaccia simile e contiene certificato e chiave privata.
Mi piacerebbe fare un'autenticazione locale (senza rete) dell'utente che utilizza la smart card e i dati su di essa protetti da PIN.
Che cosa è un buon schema / algoritmo per farlo e fidarsi?
La mia prima idea è di fare quanto segue:
- Inserisci nome utente / PIN
- Accedi come utente alla smart card (se fallisce, restituisci false)
- Verifica la validità del certificato (se non valido, restituisci falso)
- Controlla se il nome utente è uguale a CN nel certificato (se non lo è, restituisci falso)
- Genera dati casuali e firmalo utilizzando la chiave privata su smart card
- Verifica se la firma è valida (in caso contrario, restituisci false)
- Restituisce vero
Ha senso? O ci sono degli standard in merito?