Tengo una tarjeta inteligente que tiene PKCS # 11 u otra interfaz similar y contiene un certificado y una clave privada.
Me gustaría realizar una autenticación local (sin red) del usuario con la tarjeta inteligente y los datos en ella protegidos por PIN.
¿Qué es un buen esquema / algoritmo para hacerlo y confiar?
Mi primera idea es hacer lo siguiente:
- ingresa nombre de usuario / PIN
- Inicie sesión como usuario en la tarjeta inteligente (si falla, devuelva falso)
- Verifique la validez del certificado (si no es válido, devuelva falso)
- Compruebe si el nombre de usuario es igual a CN en el certificado (si no es así, devuelva falso)
- Genere datos aleatorios y firme con una clave privada en una tarjeta inteligente
- Compruebe si la firma es válida (si no, devuelva falso)
- Devuelve true
¿Tiene sentido? ¿O hay algún estándar al respecto?