Teclados sumergidos en un charco

DNI-e en macOS Big Sur

Antecedentes

Cuando adquirí mi MacBook Pro en 2013, me pareció buena idea utilizar mi DNI-e. Por aquel entonces, aunque el DNI-e se había lanzado en 2006, casi nadie lo usaba: configurar los lectores de DNI-e en Windows ya tenía sus dificultades y, en Mac, era un reto que no conseguí superar.

He ido realizando la firma digital con el certificado de la FNMT, hasta que hace una semana, casi terminado el curso en el colegio, me pregunté cuál sería el estado actual de este asunto.

A continuación, detallo cómo he conseguido hacer funcionar mi DNI-e con macOS Big Sur. Mi portátil es antiguo y ya no tiene soporte para nuevas actualizaciones del sistema operativo de Apple.

Hardware

Lo primero que hice fue buscar en Amazon lectores de DNI-e compatibles con Mac y revisar las opiniones de otros usuarios. Me decidí por el lector de tarjetas Sveon SCT011M, que no llegaba a los 10 €. Pensé que, si no lograba hacerlo funcionar, el gasto no supondría un gran problema.

La documentación clave

Debo destacar el excelente trabajo de Felipe Barbalho Costa, quien ha creado una magnífica documentación en GitHub. Su enfoque consiste en exportar los certificados de autenticación y firma e incorporarlos al llavero de certificados de Mac, de forma similar a como se hace con el certificado de la FNMT.

De este modo, el uso que se le da al lector de DNI-e es únicamente para la extracción de los certificados. No tengo claro que este escenario me convenza del todo, ya que teniendo el certificado de la FNMT, entiendo que no aporta nada adicional a la experiencia de uso. No sé vosotros, pero firmar un documento PDF con Adobe Acrobat Reader es muy sencillo y el proceso está bien pulido. Mi idea era investigar si con el DNI-e en Mac el proceso es igual de fluido o presenta dificultades.

DNI-e vs Certificado FNMT

Desde el punto de vista de la seguridad, presentan diferencias significativas, no en el resultado final del documento firmado, sino en lo que implica usar uno u otro.

En cuanto a una posible suplantación de identidad, el DNI-e es más robusto. Para acceder a los certificados de autenticación o firma, se necesita una contraseña que se introduce una sola vez. Las claves no se almacenan en ninguna parte. Al finalizar el proceso y retirar el DNI del lector, no queda rastro de nuestras claves. Claro que para esto necesitas el lector de DNI-e, el propio DNI-e y la clave de acceso al chip.

¿Por qué es importante en caso de pérdida o robo de nuestro Mac? Con el certificado de la FNMT instalado en tu equipo, si una persona no autorizada consigue tu nombre de usuario y contraseña de acceso al Mac, podría suplantar tu identidad. Esto es así porque el certificado de la FNMT se instala en el llavero de inicio de sesión. Para mitigar este riesgo, se recomienda tener una contraseña robusta y cifrar el disco para evitar ataques de fuerza bruta. Debo confesar que yo no lo tengo cifrado y ahora no me atrevo a activarlo por temor a una pérdida de rendimiento importante. Os recuerdo que mi Mac es de 2013.

¿Qué no vamos a poder conseguir? Usar el lector de DNI-e directamente desde Chrome o Safari, ya que dependen del llavero de inicio del Mac. Lo que sí he conseguido es utilizar AutoFirma y Acrobat Reader con el lector de DNI-e.

Si queréis tener los certificados de vuestro DNI-e en vuestro llavero de claves y gestionarlos como el certificado de la FNMT, seguid el tutorial de Felipe.

Instalación del software para el DNI-e y configuración de Firefox

Es necesario instalar el software adecuado creado específicamente para el DNIE-e. Afortunadamente, todavía hay soporte para macOS Big Sur de manera habitual: archivos .dmg o .pkg que se pueden descargar desde la web oficial. Seguid el tutorial que preparó en su momento Sveon. La única dificultad es que el Mac no reconoce al desarrollador del paquete, por lo que hay que añadir una excepción en la sección Seguridad y Privacidad de nuestro Mac. En el tutorial también se explica cómo configurar Firefox.

Caducidad de los certificados del DNI-e

Es importante tener en cuenta que la vida útil de los certificados almacenados en el chip de nuestro DNI-e no está alineada con la caducidad del propio DNI. He tenido que hacer una búsqueda bastante exhaustiva para entenderlo (Perplexity). Puede resultar sorprendente, pero argumentos como la seguridad proactiva (rotación de claves ante amenazas computacionales), mitigación de riesgos (por robo, pérdida o futuros ataques cuánticos) y cumplimiento normativo (eIDAS, ENS y políticas propias) justifican este desajuste. Y sí, yo los tenía caducados. ¿Cómo lo supe? Os lo cuento a continuación.

Adobe Acrobat Reader + DNI-e

Tras instalar el software del DNIE-e seguí el tutorial de Felipe seguí el Paso 4, el de la importación de los certificados extraídos al llavero de Mac:

security import ~/Desktop/dnie-auth.cer -k ~/Library/Keychains/login.keychain-db
security import ~/Desktop/dnie-sign.cer -k ~/Library/Keychains/login.keychain-db

Ok, no daba error. Entonces, ¿porqué no conseguía ver los certificados en mi llavero? Frustrado me pasé a probar cositas con Acrobat Reader.

Para firmar con un certificado digital desde Mac con Adobe Acrobat Reader hay que seleccionar Todas as herramientas y Utilizar un certificado.

Antes de nada, tenéis que tener el lector de DNI-e y el DNI insertado. Ojo, que la primera vez metí el DNI al revés… Una vez insertado ya podemos pinchar en Utilizar un certificado.

Herramienta Utlizar un certificado en Adobe Acrobat Reader
Herramienta Utlizar un certificado en Adobe Acrobat Reader
Opción para Firmar Digitalmente o añadir una Marca de hora en Adobe Acrobat Reader
Opción para Firmar Digitalmente o añadir una Marca de hora en Adobe Acrobat Reader

Luego os cuento de qué va la Marca de hora, porqué tiene relativa importancia y cómo configurarlo. De momento pinchamos en Firmar digitalmente. Nos va a pedir que definamos una zona del PDF donde aparecerá un sello que indica que el documento va firmado. Queda a vuestro criterio estético hacerlo más o menos grande y en qué posición del documento situarlo. Al fijar la zona, emerge una ventana donde nos mostrará qué certificados podemos usar.

Acrobat Reader lista los certificados disponibles para firmar
Acrobat Reader lista los certificados disponibles para firmar

Wait a minute! ¿Pero esto que estás contando no se supone que es para utilizar el DNI-e con un lector? Yo solo estoy viendo el certificado de la FNMT. Ahí está el kid de la cuestión sobre cómo supe que mis certificados estaban caducados. Acrobat no mostrará los certificados si no está el lector funcionando, no está bien insertado el DNI o ¡los certificados están caducados!

Como no los veía, pinché en Configurar ID digital nuevo:

Opciones para crear un nuevo ID Digital en Acrobat Reader
Opciones para crear un nuevo ID Digital en Acrobat Reader

Y di a Continuar teniendo seleccionado Utilizar un dispositivo de creación de firmas.:

Opción para configurar un lector de DNI-e en Acrobat Reader
Opción para configurar un lector de DNI-e en Acrobat Reader

Es entonces cuando tenemos que pinchar en Administrar ID digital:

Dispositivo PKCS#11 configurado y con acceso a los certificados
Dispositivo PKCS#11 configurado y con acceso a los certificados

¿Y ese triángulo amarillo? Vaya, los certificados habían caducado en 2021. Toca ir a renovarlos a comisaría.

Renovación de certificados en la comisaría de policía

No sé cómo estará en otras comisarías pero en la de Langreo no hace falta pedir cita previa. Comprobad cuál es el funcionamiento de la que tengáis pensado ir para no llevar sorpresas.

Tengo que destacar la ayuda y disponibilidad de la agente que me atendió nada más ver que acercaba a la máquina del DNI-e. Suelen estar situadas cerca de la entrada, como es el caso de la mía. La maquina — llamada formalmente Punto de Actualización del DNI electrónico (PAD) — tiene un interfaz bastante amigable, aunque en la mía la parte táctil tenía cierto retraso que hizo que me equivocase un par de veces.

Si no recordáis vuestro PIN de acceso al DNI, no pasa nada: se crea uno nuevo desde el propio PAD.

IMPORTANTE

Si no recuerdas tu contraseña de acceso al DNI no podrás operar con él en casa, y no se puede cambiar si no acudes a Comisaría a hacerlo en la máquina. Anótalo bien y no lo pierdas.

El proceso de renovación de los certificados fue sencillo y no tardé más de dos minutos. No deberíais tener dificultad ninguna con ello y, si contáis con alguien ayudando como tuve yo, miel sobre hojuelas.

NOTA

Aproveché en ese momento para activar también la Aplicación MiDNI desde una opción específica y destacada que ofrece la máquina. No se puede usar la app sin activarla: se necesita autenticar que eres tú quien está instalando la app.

De vuelta en casa

Al volver a repetir los pasos, llegando hasta la configuración de la Administración del ID digital, los warnings ya habían desaparecido:

Certificados del DNIE-e visibles sin avisos en Acrobat Reader
Certificados del DNIE-e visibles sin avisos en Acrobat Reader

Aproveché en ese momento para pinchar en el lápiz y seleccionar el certificado de Firma de los dos que ofrece (Autenticación/Firma).

CONSEJO

Acordaros que siempre que usemos el DNI con nuestro lector, hay que hacer «login» en él. En algún momento las aplicaciones que van a usar los certificados del DNI piden acceso y tendrá que aparecer una ventana emergente para pedir la contraseña.

Al repetir el proceso para firmar un PDF normalmente, ya aparecen todos los certificados:

Ya aparecen todos los certificados...
Ya aparecen todos los certificados…

Y fijaros que nos pide el PIN para hacer login en el DNI:

Pantalla de firma en Acrobat Reader donde nos pide el PIN para el acceso a la firma de nuestro DNIE-e
Pantalla de firma en Acrobat Reader donde nos pide el PIN para el acceso a la firma de nuestro DNIE-e

¿Qué ocurre si os aparece este error que tenéis a continuación? ¡Pues que habéis bloqueado el DNI-e por introducir mal el PIN 3 veces! ¡Tenía las mayúsculas activadas y no me di cuenta a tiempo!

Bloqueo de PIN en el DNI-e tras tres intentos fallidos
Bloqueo de PIN en el DNI-e tras tres intentos fallidos

Ojo, que buscando por Internet no aparecía qué significaba este error. Solo hasta ver el error que genera Autofirma se resolvió el misterio:

es.gob.afirma.core.AOException: Error al generar la firma PKCS#1 de la firma PAdES: es.gob.afirma.core.AOException: Error durante el proceso de firma PKCS#1: es.gob.jmulticard.card.AuthenticationModeLockedException

Consultando con la IA obtengo la respuesta:

¿Qué significa AuthenticationModeLockedException?

Este error se produce cuando:

  • El PIN del DNIe o tarjeta ha sido introducido incorrectamente tres veces, bloqueando el acceso a las operaciones criptográficas (firma, autenticación).
  • El dispositivo está en un estado de seguridad que impide el uso de la clave privada hasta que se desbloquee el PIN.

Como no se puede desbloquear el DNI desde el lector de tarjetas pues nada, toca…

Otro viaje a la Comisaría

Y como Forrest Gump decía, «Otra vez en la Casa Blanca…» pues yo a usar la maquina para fijar un nuevo PIN para mi DNI. Recuerdo un cómic de Mortadelo y Filemón en el que destrozaban varios coches seguidos. Dice Filemón. «Otro coche espachurrado. En el concesionario ya me tratan de tú», pues eso a mí en Comisaría 🙂

Sellado de tiempo

Cuando firmamos un documento digitalmente se suele añadir una marca de agua en la que, a no ser que hayamos hecho alguna modificación, aparece la fecha y hora a la que se realizó dicha firma. ¿Es esa la hora real a la que se firmó el archivo? Pues no lo sabemos, ya que depende de la hora de nuestro equipo. ¿Cómo garantizar entonces a qué hora se firma un documento? Pues es un paso aparte y requiere una pequeña configuración.

Os doy la definición formal podéis encontrar en Wikipedia. Un servicio TSA (Autoridad de Sellado de Tiempo, del inglés Timestamping Authority) es un sistema que permite certificar, de forma fiable y con validez legal, que un documento digital existía y no ha sido modificado desde un momento concreto. La TSA actúa como una tercera parte de confianza que emite un sello de tiempo electrónico, vinculando el contenido del documento con la fecha y hora oficiales.

También el orden es importante: primero firmas electrónicamente el documento. Acto seguido, solicitas el sello de tiempo a la TSA, enviando el hash del documento ya firmado a la entidad de firma TSA. La TSA devuelve el sello de tiempo, que incluye la fecha y hora oficiales, y se adjunta automáticmanete al documento.

¿Garantiza este sistema que la firma del documento se realizó cuando se indica? Pues realmente no. Lo que hace es garantizar que el documento no se ha modificado y mantiene su integridad desde el momento que se aplica el sello TSA.

Sellado de tiempo en Adobe Acrobat Reader

Esto es lo que hay que configurar en el Acrobat Reader para utilizar el servicio de sellado de tiempo de Izenpe. Pero, ¿qué es Izenpe? Ellos mismos se definen así:

Izenpe S.A., empresa de certificación y servicios: es una sociedad anónima constituida en 2002 y supone un proyecto impulsado por el Gobierno Vasco y las Diputaciones Forales, constituida a través de sus sociedades informáticas: EJIE, LANTIK, IZFE y CCASA.

¿A qué se dedica Izenpe? Pues a esto:

Izenpe es un prestador de servicios de confianza, es decir, una organización que proporciona servicios de firma electrónica. La firma electrónica se puede definir como un conjunto de procedimientos técnicos y jurídicos que permiten “sustituir” la firma manual convencional con el fin de poder realizar a través de Internet y del teléfono tramites que antes debían hacerse de forma presencial.

La configuración es muy sencilla. Preferencias > Firmas > Marca de hora de documento

Configuración de un servidor de marca de tiempo en Acrobat Reader
Configuración de un servidor de marca de tiempo en Acrobat Reader

Añadimos la URL http://tsa.izenpe.com

Configuración para el servidor TSA de Izenpe en Acrobat Reader
Configuración para el servidor TSA de Izenpe en Acrobat Reader

De manera similar y alternativa puedes configurar el servidor TSA del a Comunidad Valenciana.

Una vez configurado, para usar el sellado de tiempo Acrobat nos ofrece la opción desde Herramientas > Utilizar un certificado > Marca de hora

Opción disponible para añadir marca de hora en Acrobat Reader
Opción disponible para añadir marca de hora en Acrobat Reader

Conclusiones

Para terminar, os comparto mis recomendaciones.

Acude primero a la Comisaría

Si nunca has usado el DNI-e con un lector o hace mucho tiempo que no lo haces, ve a la máquina de la comisaría para fijar un nuevo PIN y actualizar los certificados.

Cierta lentitud en Adobe

No sé a qué es debido pero el proceso de firma con el lector de DNI-e es bastante lento. El lector parpadea indicando que se está accediendo a él y tarda unos treinta segundos en terminar y otro tanto en verificar la firma. Con un certificado instalado en el equipo el proceso es muchísimo más rápido.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.