Firma digital de PDF con CryptoApplet en la Document Library via Liferay Portlet

Una de las herramientas interesantes de firma digital con la que venimos trabajando desde hace tiempo, en el marco de los proyectos de firma electrónica desde el planeta zylk, es el CryptoApplet, una aplicación java con características de firma avanzada (PDF, CMS/PKCS#7, XadES-X-L en formato Digidoc...) desarrollada en la Universitat Jaume I.

La aplicación (el applet) permite realizar firmas en una aplicación web en el formato definido en la configuración. El applet puede ejecutarse en los sistemas operativos MS Windows y Linux, y con los navegadores IE (via CryptoAPI) o Firefox (via PKCS#11). Esto puede ser extensible a navegadores como Chrome, ya que utilizan las librerías de Firefox (NSS) y a otros sistemas operativos como Mac OS X via OpenSC.

Los procesos de firma digital forman parte de muchas de nuestras aplicaciones cotidianas y se incorporan en diferentes flujos de trabajo de la empresa, integrándose con aplicaciones a medida, con herramientas de planificación de recursos empresariales (ERP), de facturación, o de gestión documental (ECM) en diferentes aproximaciones.

En este artículo, vamos a tratar una aproximación a una solución de almacenamiento de documentos PDF que se firman digitalmente en el repositorio de ficheros de un portal empresarial como Liferay Portal. Hemos implementado un portlet de subida de documentos PDF en una determinada ruta de la DL (Document Library) integrado con el CryptoApplet. Las modificaciones sobre el applet han sido las siguientes:
 

  1. Ampliación del listado de certificados raíces e intermedios para la validación del certificado  con propiedad 'digitalSignature' con el que se firman los PDF.
  2. Desarrollo de otro applet para la selección local del fichero a firmar.
  3. Configuración específica para la imagen que acompaña el PDF firmado.



Os dejo aquí unas capturas del portlet de firma y subida de documentos a la DL:



El CryptoApplet permite configurar los dispositivos hardware para la lectura de certificados tanto de forma automática como manual, en nuestro caso, tarjetas criptográficas controladas mediante PCSC con OpenSC. Permite también la carga manual de dispositivos así como certificados en formato P12.
 



Finamente podemos comprobar la firma del documento subido a la librería de documentos:


Además del portlet de firma de PDF's, hemos implementado otros portlets en Liferay Portal en donde el objeto firmado es un formulario HTML, lo que permite, verificar la identidad de la persona que esta aportando los datos en un formulario de un determinado proceso (por ejemplo, la constancia de una reclamación en una institución, solicitudes de pedidos a terceros... ), y desde el punto de vista del usuario la integridad de los datos del mismo.

En próximos artículos publicaremos una matriz de compatibilidades para el uso del crytoapplet en diferentes sistemas operativos, navegadores y almacenes de llaves (NSS, NSS/Share, Carga directa, CAPI)

En breve habilitaremos una demo para estos componentes en nuestro portal. Para mas información, no dude en contactar con nosotros.

00

Más entradas de blog

Añadir comentarios