ctt-gob-es / clienteafirma

Cliente @firma
http://administracionelectronica.gob.es/ctt/clienteafirma
256 stars 120 forks source link

AF requiere clave de tarjeta criptográfica más de una vez en WINDOWS/MACOS para una operación de varias firmas encadenadas #40

Open mglezr opened 6 years ago

mglezr commented 6 years ago

Buenos días,

Estamos haciendo una integración con servicios de un ministerio que implica el uso del miniapplet. En una de las operaciones tenemos que intercambiar información con los servicios de este ministerio. Realizamos distintas peticiones a sus servicios que contiene información firmada por nosotros (usando el miniapplet). En total realizamos 4 operaciones de firma y una selección de certificado (No podemos firmar todos los datos de una vez porque no tenemos los datos de una vez.

El keystore que usamos es KEYSTORE_PKCS11

Al realizar la selección del certificado nos aparece el dialogo para introducir la clave de la tarjeta. En las siguientes operaciones de firma también van a aparecer. En total son 5 veces que el usuario tendrá que introducir la clave. Solo ocurre en Windows y macOS (En linux no sucede).

¿Tiene alguna solución? ¿Puede ser que nos falte algún tipo de configuración?

Espero vuestra contestación

Muchas gracias y un saludo.

Gamuci commented 5 years ago

Hola @mglezr ,

AutoFirma y el MiniApplet cargan y reutilizan el almacén de certificados a lo largo de su ejecución. Es el controlador PKCS#11 el que solicita el PIN de la tarjeta y en este caso, parece que no es capaz de ver que ya anteriormente lo solicitó y aprobó una operación de firma. También puede ser que lo esté haciendolo así aposta. En todo caso, no hay nada que desde la aplciación se pueda hacer, ya que ésta no recarga el almacén salvo que se solicite y nunca tiene acceso al PIN de la tarjeta. En el caso de Linux, debe haber alguna diferencia en la implementación del controlador.

Si las firmas se realizasen en distintas páginas y el cliente se tuviese que cargar en cada una de ellas, es normal que el PKCS#11 pida el PIN por cada operación.

Un saludo.