“Ahora podemos mantener el soporte del DNIe en Linux/Mac/Windows de manera estable, lo cual requiere una completa base de documentación y código que supone que otros puedan unirse al proyecto y continuarlo”

0

JUAN ANTONIO MARTÍNEZ
Líder del proyecto OpenDNIe

OpenDNIe es el resultado de la colaboración de diferentes actores, pero si alguien merece un reconocimiento especial, ése es Juan Antonio Martínez, líder indiscutible del proyecto. Este maestro de laboratorio y desarrollador de Software Libre, de los de la vieja guardia, nos desvela todos los detalles de por qué el soporte para el DNIe español se ha convertido en lo que es hoy: una realidad que hace posible la inclusión de todos los ciudadanos en la Sociedad de la Información. Juan Antonio también estará presente en el Hackfest de la Comunidad OpenDNIe que se celebrará los próximos días 26 y 27 de mayo en la Universidad de Cádiz.

 

 

Juan Antonio Martínez.


 

Gaceta Tecnológica. Antes de empezar, te agradeceríamos que nos explicases qué significa “estándar de criptografía de clave pública PKCS#11” y qué relación tiene con el proyecto OpenSC OpenDNIe…
J.A.M.
PKCS son siglas de “Public Key Criptography Standards”, y corresponden a una familia de normas, publicadas por los RSA Labs que indican cómo trabajar con la infraestructura de clave pública (PKI) que es el sistema de criptografía más utilizado en la actualidad.

 

El PKCS#11 corresponde a la declaración y definición de un API de programación para aplicaciones criptográficas, que define las diversas operaciones, estructuras de datos y protocolos a utilizar en los programas que utilicen el estándar PKCS. Cada fabricante de tarjetas ofrece una biblioteca PKCS#11, de manera que los usuarios pueden realizar programas basados en el estándar pkcs#11 sin -en teoría- tener que preocuparse de las particularidades de cada tarjeta.

OpenSC es un framework basado en código abierto y licencia LGPL de manejo de tarjetas criptográficas basadas en el standard PKCS#15, el estándar que define cómo estructurar los datos criptográficos en una smartcard. Podemos considerar PKCS#15 como un estándar de sistema de ficheros y directorios en una tarjeta inteligente.

El framework OpenSC soporta múltiples tipos de tarjetas, entre ellas nuestro DNI electrónico. Como todos los demás drivers de tarjetas, ofrece su propia biblioteca PKCS#11.

G. T. Tras esta excepcional aclaración, ¿cuáles son las motivaciones que te llevaron a trabajar desde cero en el código para el driver del DNIe?
J.A.M.
Básicamente: la necesidad y la curiosidad. Había colaborado anteriormente en el proyecto OpenSC, por lo que estaba familiarizado con dicho framework. Tanto en mi entorno laboral como doméstico, el sistema operativo de uso es Linux, por lo que tenía muy limitadas las posibilidades de poder usar el DNI electrónico en un entorno Linux actualizado. Como socio de HispaLinux he participado en diversos proyectos de administración y voto electrónico, y considero que la Administración debe cumplir con los principios de neutralidad tecnológica que indican las leyes españolas y las directivas europeas sobre interoperabilidad y seguridad.

En este entorno, y desde diversos foros, se hizo mucha presión sobre la Administración para conseguir un driver Linux para el DNIe basado en código abierto, y que pudiera ir de serie en las diversas distribuciones y sin problemas legales.

La liberación del código fuente del DNIe por parte de la Dirección General de la Policía y la Guardia Civil (DGPGC), y la posterior publicación del Manual de Comandos del DNIe nos abrieron las puertas a la posibilidad del desarrollo de dicho driver. Debido a la licencia no era posible utilizar el código de la DGP (aunque sí ver su funcionamiento), por lo que la única opción viable era re-escribirlo desde cero con una licencia compatible con OpenSC. Vi la oportunidad y, bueno, aquí está el resultado.


G.T. ¿Hasta qué punto tomaste como referencia los desarrollos del proyecto OpenSC?
J.A.M.
OpenDNIe no hubiera sido posible sin dichos desarrollos. Como se comenta antes, la licencia del código oficial publicado por la DGPGC impedía su reutilización, por lo que había que acudir a otras fuentes. El código de OpenSC proporciona ejemplos de programación de una gran variedad de tarjetas criptográficas, por lo que su reutilización permite, por una parte, un gran ahorro en el tiempo de desarrollo y, por otra, poder mantener una uniformidad en el estilo de codificación de los diversos drivers, lo que redunda en un mantenimiento mucho más sencillo.

G.T. ¿Cuánto tiempo te ha llevado este trabajo desinteresado? ¿Pensaste alguna vez que sería tan ardua esta tarea?
J.A.M.
Desde la publicación del Manual de Comandos, hasta la primera versión funcional de OpenDNIe transcurrieron cuatro meses. El trabajo fue llevado a cabo en mi tiempo libre, contando con la colaboración y apoyo tanto de CENATIC como del equipo de programadores de OpenSC. Al fin y al cabo todos éramos parte interesada.

En cuanto al lo complicado del trabajo, técnicamente el driver no es especialmente complejo. Lo difícil ha sido lidiar con la falta de documentación clara y la necesidad de cumplir con los requisitos legales del código de OpenSC. Dado que no era posible utilizar el código fuente original, para muchos comandos ha sido necesario buscar segundas fuentes, e incluso hacer algo de ingeniería inversa. Cuando finalmente la Dirección General de la Policía y la Guardia Civil se decidió a apoyar el proyecto, muchos de estos problemas quedaron solventados.

Y en cuanto a “trabajo desinteresado”, bueno, digamos que he salido beneficiado en muchos otros aspectos. No siempre el dinero es el único aliciente.

G.T. El desarrollo ha sido duro, pero mucho más el trabajo de elaborar toda esa documentación en torno a él de manera detallada e impecable. Otro tesoro que dejas en manos de la comunidad del Software Libre. Esto es lo que da calidad a esta tecnología frente a las privativas. ¿Por qué este tesón?
J.A.M.
Todavía queda mucho por documentar y hay mucha gente trabajando en dicho proyecto de documentación. Creo que se debe a que ahora podemos mantener el soporte del DNIe en Linux/Mac/Windows de manera estable, lo cual requiere una completa base de documentación y código que supone que otros puedan unirse al proyecto y eventualmente continuarlo.

Otra razón para este esfuerzo de documentación es la posibilidad de certificar y acreditar el driver de manera que OpenDNIe sea el “driver oficial” del DNI electrónico. Cuando OpenDNIe empezó, el (mi) objetivo era conseguir que el DNIe funcionara en distribuciones Linux modernas. Ahora que es una realidad, la Comunidad empieza a vislumbrar posibilidades y se produce un efecto de realimentación positiva que induce a trabajar más y más en el proyecto, así como a involucrar a más participantes en él.

G.T. ¿Te has visto respaldado durante todo el proceso tanto por la gente del proyecto OpenSC en los aspectos técnicos, como por la Free Software Foundation y desde el punto de vista jurídico-legal?
J.A.M.
Por supuesto, Martin Paljak y el resto de colaboradores de OpenSC estaban especialmente interesados en integrar el DNIe en el mainstream del Proyecto. De hecho, en su día hubo fricciones legales debido a la no disponibilidad del código fuente original, derivadas de la licencia de OpenSC. La publicación de dicho código y la posterior posibilidad del desarrollo de un driver con licencia compatible, significaba el fin de las fricciones y un empujón importante a ambos proyectos (OpenSC y DNIe).

La gente de OpenSC ha contribuído no solo con código, sino también con apoyo y sugerencias. Y viceversa, el código de OpenDNIe contribuye también a la mejora en calidad de OpenSC.

La asesoría legal de la Free Software Foundation, especialmente de Malcom Baim, ha sido esencial para poder escribir el driver: saber los límites de las licencias, qué código se podía incluir y en qué condiciones, la búsqueda de segundas fuentes de información… OpenDNIe ha devenido en un proyecto colaborativo, del cual ahora estamos empezando a ver las posibilidades.

G.T. ¿Y por la comunidad del Software Libre? ¿Has tenido ayuda de beta-testers, traductores, desarrolladores….?
J.A.M.
Pues… digamos que sí. En mi opinión, la visión que existe de la Administración española por parte de sus “administrados” dista de ser cordial. Esto redunda en que para los proyectos de administración electrónica cuesta cierto trabajo convencer a la comunidad de que un determinado proyecto merece la pena. La acción de CENATIC en su labor de mediación y aglutinar a todos los participantes en el proyecto es realmente digna de elogio.

Hay mucho trabajo pendiente, pero creo que estamos en condiciones de poder afirmar que la primera etapa (conseguir un driver funcional) está conseguida. Queda la que tal vez sea la tarea más difícil: la difusión del trabajo y su adopción, no sólo por parte de la comunidad del Software Libre sino por la ciudadanía en general.

‘En la agenda está también el coordinar con CENATIC y con OpenSC el proceso de integración de OpenDNIe en OpenSC, y cuál va a ser mi papel futuro en esta aventura’

G.T. ¿Cuáles han sido los principales problemas con que te has encontrado desde el momento que tomas la decisión de conseguir este controlador para el DNIe estándar, estable, multiplataforma y legal?
J.A.M.
Sin dudarlo: la falta de tiempo y de documentación. A esto habría que añadir otros imponderables, como la carencia de herramientas de prueba… A título de ejemplo: estuve un mes codificando “a ciegas” porque se me había estropeado el chip de mi DNIe.

 

En cuanto al tema legal, la necesidad de garantizar que se cumplían los términos de la licencia. Realmente más que dificultad se trata de disciplina: documentar y acreditar segundas fuentes para cada línea de código. Ahí quedan las notas, los correos electrónicos y diarios de desarrollo como prueba del trabajo legal realizado.

Y en cuanto a multiplataforma… OpenSC es un proyecto multiplataforma. OpenDNIe hereda dicha cualidad. A título de ejemplo, se están haciendo experimentos para portar OpenSC a plataformas Android. Quedan diversos detalles técnicos, pero el trabajo ya ha empezado.

G.T.¿Eres consciente de la aportación que ha tenido tu trabajo de cara al ciudadano y de su inclusión en la Sociedad de la Información?
J.A.M.
La verdad, nunca imaginé que el proyecto llegara tan lejos. Visto en retrospectiva casi asusta.

G.T. ¿Imaginabas este apoyo por parte de las Administración Pública de la mano de CENATIC?
J.A.M.
Honradamente no. De hecho, las primeras relaciones fueron de cierta suspicacia. Sabía, eso sí, que en la Administración española había mucha gente involucrada en potenciar el Software Libre, pero no era consciente de hasta dónde se podía llegar. Como he dicho antes, el español medio tiende a mirar con suspicacia a la Administración. Hoy no tengo sino palabras de agradecimiento y admiración a tantos y tantos responsables que han hecho esto posible.

G.T. ¿Hasta qué punto crees que tu proyecto es estratégico para que nuestra Administración Pública consiga la independencia tecnológica y garantice la transparencia del OpenGoverment?
J.A.M.
Es una parte importante, pero no fundamental. El DNI electrónico no es la única herramienta de autenticación que ofrece la Administración española, y en cualquier caso es un simple engranaje dentro de la normativa sobre interoperabilidad.

En este apartado, entra dentro de las obligaciones ciudadanas exigir y pedir a la Administración que dicha interoperabilidad sea efectiva; que la ventanilla única electrónica sea una realidad, que no haya más páginas web “Windows Only” en la Administración.

G.T. ¿La consideración de tu driver como oficial del Estado ya justifica todo el esfuerzo de estos años? Dejas un legado muy importante para la sociedad española, aunque muchos no serán conscientes de ello nunca…

J.A.M. Todavía queda mucho camino para dicha consideración de oficialidad. Y afortunadamente no seré yo quien lo recorra ni quien tome las decisiones sobre el tema. Hay que preparar la documentación, realizar los trámites para solicitar y obtener la certificación, preparar la transferencia tecnológica, los entornos de pruebas, la tarea de difusión y promoción… es una tarea ingente. En mi opinión, mi tarea futura será simplemente la de servir como contacto entre CENATIC y OpenSC, e intentar seguir trabajando en que la comunidad española de Software Libre supere su reticencia a colaborar con proyectos oficiales.

En cuanto a justificar el esfuerzo, como comentas, la mayoría de la gente ni siquiera va a ser consciente de ello. No me preocupaba cuando empecé y tampoco me preocupa ahora. Estoy orgulloso, por supuesto, pero no tanto por el resultado final -que no es mérito ni decisión mía- sino por lo que he obtenido durante el proceso.

G.T. De cara a la celebración del HackFest asociado a la comunidad OpenDNIe los próximos 26 y 27 de mayo, ¿cómo vas a participar y de qué manera animarás a los nuevos desarrolladores para que formen parte de la comunidad del OpenDNIe?

J.A.M. Mi participación va a ir dirigida principalmente a la orientación, resolución de dudas a los participantes y, sobre todo, a explicar el desarrollo realizado, de manera que el resto de la comunidad y del personal de la Administración pueda seguir en un futuro el trabajo hecho. Es básicamente una sesión de transferencia de tecnología.

 

Compartir.

Responder