DNI electrónico

Ayer fui a hacerme el DNI electrónico (DNIe para los amigos, si es que tiene alguno). Aproveché que tengo un cambio de domicilio pendiente para ir a renovármelo, pues en este caso la renovación sale gratis. Pedí cita previa en la web correspondiente, de manera que fue llegar y besar el santo. O casi, porque las fotos que tenía no valían (me dijeron que salían mis ojos muy oscuros) y tuve que hacerme unas fotos en el chino de al lado (menudo negocio debe tener el chino, desde luego). Por lo demás, el trámite fue rápido, no tuve que esperar y, a los pocos minutos (principalmente, los minutos que lleva generar las claves en la tarjeta), tenía mi nuevo DNIe en la mano.

DNI electronico

A continuación me dirigí al PAD, un terminal que tienen en las oficinas de expedición, que nos permite acceder a los datos que hay en el DNI y cambiar el PIN (contraseña de acceso y de desbloqueo de la clave privada). Está bien pensado: el terminal cuenta con un lector de huellas dactilares y así, en caso de que se nos bloquee el PIN, podemos resetearlo en el terminal sin más que identificarnos con nuestra huella dactilar. El problema es que, tanto el terminal como el PAD virtual (un software que permite cambiar el PIN en nuestro ordenador personal) necesitan estar conectados a los servidores de la Policía para proceder, cosa que no me explico (siendo malpensados, podría servir para que la Policía guarde siempre una copia de seguridad del PIN).

En cualquier caso, una vez cambiado el PIN me volví a casa con el DNIe, dispuesto a probarlo en mi portátil con la Ubuntu 8.10. Mi portátil es por ahora un Dell D430, que tiene lector de tarjetas integrado, y además reconocido por Linux, así que en principio deberá funcionar.

Efectivamente, siguiendo las instrucciones que dan en esta página para Ubuntu Gutsy, el DNIe puede usarse desde Firefox para autenticarnos o firmar peticiones. En realidad, en el manual han omitido un paso que si no se hace, impide a Firefox acceder al DNIe (cuando intentamos cargar el módulo criptográfico nos dará error). El paso que han omitido es instalar el paquete pcscd (algo que haremos con el comando "aptitude install pcscd").

Hecho esto, abrimos manualmente la página de configuración del navegador para DNIe (basta con abrir la URL "file:///usr/share/opensc-dnie/instal_dnie/instala_modulo.htm"), seguimos sus instrucciones y, si no da errores, ya podremos verificar el DNI en esta página, obteniendo el resultado esperado:

Verificacion DNIe OK

Esto es todo. Para detalles técnicos adicionales recomiendo leer otras fuentes que lo único que hacen es repetir el mismo procedimiento técnico que indica el portal oficial.

Ahora vamos a los inconvenientes:

En primer lugar, el DNIe tiene una funcionalidad muy limitada. Las claves generadas solo sirven para autenticar al usuario y firmar peticiones con el navegador. No permite, por ejemplo, firmar correo electrónico ya que la Policía decidió no incluir direcciones de correo electrónico del ciudadano en el dispositivo. Tampoco se permite cifrar información, es decir, las claves están ahí pero no se han definido para cifrar documentos.

Estas carencias son cubiertas por el certificado de la FNMT, por lo que recomiendo utilizarlo en su lugar.

Otra limitación es que, supuestamente, el DNI incluye en su interior versiones codificadas de la fotografía, la firma manuscrita  y la huella dactilar. Sin embargo ningún software permite extraer dicha información al usuario; solo se pueden visualizar utilizando los terminales PAD de la policía.

Por otro lado, no podemos negar que hay algunas deficiencias que generan desconfianza. La generación de claves ocurre (y solo puede ocurrir) en la oficina de expedición, teniendo una norma administrativa (y el uso de tarjetas que supuestamente solo pueden generar las claves privadas en su interior) como única garantía de que las claves no son copiadas por un tercero. Por otro lado, para cambiar la contraseña de acceso, es preciso usar un software que, como ya hemos indicado anteriormente, necesita conectarse al servidor de la Policía, sin que vea explicación para ello; o bien usar un PAD, ese dispositivo cerrado que se encuentra en las oficinas policiales y que presumiblemente también se encuentra conectado a sus servidores. Por tanto, no hay garantías tampoco de que la contraseña la conozca únicamente el usuario.

Pero existe una deficiencia más: el DNI electrónico solo se puede gestionar con el paquete opensc-dnie. Este paquete tiene bastante poco de open, porque ni la Policía ni sus posibles mantenedores (todo apunta a que son la misma gente que los responsables de CERES en la FNMT) suministran el código fuente del mismo. Esto obviamente genera desconfianza, pues nada nos asegura que no tenga algún tipo de manipulación para enviar información privada a un servidor gubernamental, por ejemplo. Y esto al margen de un posible incumplimiento de licencia, si el código estuviera basado en el paquete opensc, que se distribuye con licencia LGPL.

Por todas estas razones, creo que por ahora seguiré usando el certificado de la FNMT, que sirve para casi toda la administración electrónica española y además otorga al usuario las mismas garantías que cualquier otra infraestructura de clave pública "en condiciones". El DNIe me puede servir para una emergencia, como puede ser generar un nuevo certificado de usuario FNMT desde casa, sin necesidad de acreditar mi identidad presencialmente.

Discusión