En las páginas oficiales del DNI electrónico, los chicos de la Oficina Técnica nos han hecho un regalo: la publicación del Manual de Comandos del DNI electrónico (oficialmente "DNI electrónico: guía de Referencia Técnica").

En dicha publicación se recoge toda la información necesaria para que cualquier desarrollador pueda escribir -por ejemplo- su propia implementación PKCS#11. ¡Incluye incluso anexos con las claves y certificados!

No sólo eso: la "licencia" (aunque ellos prefieren llamarlo "acuerdo" de desarrollo) prácticamente da libertad para copiar, modificar y redistribuir sin limitación. Básicamente se trata de una Creative Commons con atribución de autor, disclaimer, y aviso en caso de modificación.

Es una grandísima noticia...

Pero ahora vienen los peros.

El documento no es público: hay que solicitarlo según un procedimiento que garantiza la identidad del solicitante, así como que sólo lo recibe éste. Básicamente se trata de firmar digitalmente el acuerdo (licencia) de desarrollo y generar y firmar un par de claves que se utilizarán para el envío cifrado del documento

La pregunta inmediata es: ¿Para qué tanta precaución si luego la licencia te permite redistribuir casi sín límites? No tiene mucho sentido... ¿o sí?

Por otro lado, en todo momento se habla de desarrolladores individuales: la licencia explícitamente deja fuera empresas y/o grupos de trabajo. Parece una licencia de desarrollo tipo Apple o Android.

En mi opinión (que puede ser errónea: no tengo todavía los documentos) la única explicación es que los documentos que se envian deben estar personalizados: los certificados y claves del Anexo 3 serían específicos para cada desarrollador, de manera que el código y documentación pudieran ser "rastreados".

Tiene sentido... salvo que no costaría mucho cambiar los certificados y claves personales por los extraídos de los binarios publicados... y la funcionalidad se mantendría. Lo cual nos mete en vericuetos legales que harían las delicias de un abogado con ganas de bronca.

En cualquier caso, tengo ya el documento firmado, las claves generadas, (con el certificado de la FNMT: todavía tengo el DNIe estropeado y la cita para renovar es en Noviembre), y estoy a la espera de que algún experto legal (¿hay algún abogado en la sala?) me diga que no me meto en una ratonera si solicito la documentación.

Y todavía falta por establecer y publicar la política de desarrollo y distribución para empresas y grupos de trabajo...

Lo dicho: en cualquier caso es una muy buena noticia: el código publicado de OpenSC es a día de hoy papel mojado, inútil salvo como documentación. Disponer de un manual de referencia para desarrolladores abre la puerta a poder empezar a pensar en serio en una implementación independiente y sin problemas de licencia (salvo claves... :-)

Juan Antonio