Viafirma ya soporta el DNI electrónico

Con el lanzamiento de la versión 1.2 de Viafirma, nuestra plataforma de validación y firma electrónica ya soporta el uso del DNI electrónico de la Dirección general de la Policía y de la Guardia Civil.

Con esta funcionalidad, Viafirma se convierte en la primera plataforma software libre con soporte para el eDNI.

Si lo desea puede probar su dni electrónico en la aplicación de demostración.

Gracias a Viafirma 1.2 ahora es mucho mas fácil que otras aplicaciones hagan uso del eDNI para autenticar a sus usuarios o solicitarles que autoricen o firmen documentos y transacciones.

Logo eDNI

Principales cambios en la versión 1.2:

  • Soporte para la validación de certificados utilizando OCSP (Online Certificate Status Protocol RFC 2560)
  • Soporte para la autenticación utilizando el DNI electrónico.
  • Soporte para la firma de documentos utilizando el DNI electrónico.
  • API cliente WebSercice, con lo que ahora tenemos disponibles tres APIs: RMI, WebService y OpenId.
  • Admite la configuración offline, desactivando la validación de certificados revocados.

Una vez alcanzadas las funcionalidades básicas, y con la experiencia adquirida en las instalaciones y adaptaciones que hemos realizado de la plataforma, en la próxima versión nos centraremos en mejorar la documentación pública, crear una guía con los errores mas comunes encontrados y mejoras en los ejemplos de integración.

Logotipo de Viafirma

Comentarios

  1. Hola Felix. Como dijiste en algún comentario anterio, en java 6 es posible acceder a los certificados de Windows:

    KeyStore keyStore = KeyStore.getInstance(«Windows-MY»);

    Sin embargo, he visto que vuestra plataforma está implementada para java 4, con lo que supongo que no accedeis a los certificados de esta forma. El problema que tiene hacerlo según java 6, es que se pide 2 veces el PIN para obtener los certificados, y trasteando con vuestra herramienta me ha parecido que sólo lo pide una vez.

    ¿Teneis alguna idea de a qué puede ser debida esta diferencia?

    Muchas gracias, y enhorabuena.

  2. No me había fijado en ese detalle.
    Ciertamente no utilizamos, por ahora, el método que ofrece Java 6 para acceder al Microsoft CryptoAPI (CAPI). Y el motivo es que llego demasiado tarde, cuando nos planteamos el desarrollo el único mecanismo factible era hacer una llamada directa a dll.
    De todas formas, el comportamiento que comentas es el normal, y dependen del Driver del DNI electrónico.
    Si el proceso solo requiere autenticación, el dríver solo solicita una vez el PIN.

    Para el proceso de firma, lo solicita dos veces, primero para permitir el listado de los certificados que hay en su interior(clave pública) y posteriormente para su firma.

    Quizás te ha engañado el «efecto cache» que hace el CAPI/Driver ya que este no vuelve a solicitar el PIN si tiene cacheada la clave pública.

  3. Buenos días. Referente al comentario que haces a Lagar acerca del «efecto cache», me gustaria saber si puedes aclararlo un poco mas. Yo estoy mirando temas de desarrollo con el DNIe y efectivamente, utilizando las CAPI, cuando abro el IE y tengo que utilizar el certificado de firma me pide primero el PIN para acceder a los certificados y luego para la firma en sí. Y que mientras que no vuelva a cerrrar el navegador, ya solo me pide PIN en el proceso de firma. SIn embargo, si uso una implementación con el PKCS11, si que puedo controlar que solo pida un PIN en la sesión. Lo que no he entendido es ese «efecto cache» que indicas que cachea la clave pública ¿ verdaderamente cachea os certificados ? Yo pensaba que lo que pasaba es que la sesion que establece con el token la mantenía abierta y por eso mantiene la conexión con el PIN.

    Muchas gracias y enhorabuena por todo el desarrollo que estais haciendo.

  4. Hola Helios, efectivamente ese efecto “efecto cache” es una imprecisión mía, y efectivamente ocurre lo que tu dices, que el driver no vuelve a pedir el PIN mientras la conexión con el TOKEN esté abierta.
    Pero esto depende totalmente del driver del DNIE y en linux no se comporta de la misma forma.

Comments are closed.