Tarjetas: DNI Electrónico - ctt-gob-es/clienteafirma GitHub Wiki

Comportamiento del DNIe

Las firmas con DNIe requieren que se introduzca el PIN por cada operación de firma

El DNIe y los controladores que le dan soporte están desarrollados conforme a diversas normativas de seguridad, entre ellas, la norma europea EN14890. Esta norma define la necesidad de que el PIN del DNIe se presente ante cada una de las operaciones de firma.

Cualquier aplicación que no solicite el PIN de su DNIe por cada operación de firma viola esta norma de seguridad y pone en peligro sus datos ya que esa aplicación estaría almacenando, al menos temporalmente, el PIN de su DNIe. Por seguridad, el MiniApplet y AutoFirma solicitarán el PIN de su DNIe por cada operación de firma, incluso en aquellos casos en los que se ejecute un proceso de firma masiva.

Tenga en cuenta que la contrafirma de un documento con múltiples firmas puede implicar que se realicen varias operaciones de firma, aunque sólo se genere una única firma electrónica. Así pues, este tipo de firmas pueden requerir que el usuario inserte varias veces el PIN de su DNIe.

Solicitud del PIN antes de la firma

El Cliente @firma solicita el PIN de la tarjeta antes de listar los certificados del almacén y de que el usuario indique qué certificado desea utilizarla para firmar. Este comportamiento emula el de los controladores PKCS#11 de las tarjetas en donde el PIN es necesario para listar los certificados contenidos por la tarjeta y sigue la lógica de que si un usuario ha insertado el DNIe en el lector es porque lo desea utilizar. Cuando el usuario inserta el PIN, se listan sus certificados y se abre el canal seguro con la tarjeta y, en el momento de firmar, se utiliza este canal seguro para realizar la operación de firma. A continuación, se cierra el canal seguro.

Las operaciones de firma realizadas posteriormente desde la misma instancia del MiniApplet/AutoFirma, solicitarán el PIN de la tarjeta sólo en el momento de realizar la firma, momento en el cual se volverá a abrir el canal seguro con la tarjeta.

Si se recargase el almacén por medio de la opción correspondiente del diálogo de selección de certificados, el controlador se reiniciaría y volvería a pedir el PIN de la tarjeta para listar los certificados.

Aparecen los certificados del DNIe en el diálogo de selección después de cancelar el diálogo de PIN

El Cliente @firma utiliza, por norma general, la biblioteca JMulticard para hacer uso del DNIe. Es esta biblioteca la que detecta que se encuentra un DNIe insertado en un lector y muestra el diálogo de inserción de PIN. En caso de que el usuario cancele este diálogo, se omite el uso de JMulticard y se solicita al almacén de claves el listado de certificados disponible. En el caso del almacén de Windows (utilizado por AutoFirma en el modo escritorio y cuando se ejecuta desde Internet Explorer, Edge o Chrome), si se encuentra el controlador de DNIe instalado en el sistema, el propio almacén nos devolverá los certificados del DNIe como parte de los certificados del sistema. Por ese motivo siguen apareciendo en el diálogo de selección de certificados.