Wiki

Atrás

Autenticación y Firma Avanzada a través de PKCS#11

PKCS#11 es una interfaz estándar para el acceso a dispositivos criptográficos, y tanto los dispositivos criptográficos como la cédula de identidad uruguaya cuentan con drivers para funcionar como tal. La gran ventaja que ofrece este método de uso es que al tratarse de una interfaz estándar, existen muchas bibliotecas para facilitar la integración en múltiples plataformas. Para este fin, es necesario en primera instancia contar con los drivers correspondientes instalados según el SO en el que se va a trabajar. Dichos drivers pueden ser encontrados en el sitio de AGESIC destinado a tal fin.

En general, se recomienda utilizar este mecanismo para autenticar o firmar siempre que se trate de una aplicación standalone o con un cliente grueso y se esté en un Sistema Operativo para el cual haya drivers soportados (esencialmente Windows, Ubuntu y OS X). A nivel del software cliente es común encontrar bibliotecas especiales (PKCS#11 Providers), que se instancian, se vinculan a la biblioteca del SO que implementa la interfaz PKCS#11, y la firma o la autenticación con estos dispositivos, que son tecnológicamente equivalentes, se realiza a través de los propios métodos del provider, que oficia como Wrapper. Existe un caso de autenticación y dos casos de firma que vale la pena comentar en mayor profundidad, que son el de Autenticación con TLS, Firma de PDF en Adobe y el del Uso de componente externo para firma.

  • Autenticación con TLS.Un uso muy común de autenticación con certificados es utilizando TLS con la exigencia de certificado cliente. En este modo de uso de TLS, además de contar el servidor con un certificado para autenticarse ante el cliente (por ejemplo para evitar phishing), la negociación tiene un paso adicional, en el que el servidor exige al cliente que presente un certificado para autenticarlo. En términos prácticos, una vez que el browser detecta que el servidor web le solicita que presente certificado del cliente, este busca entre los certificados cargados en su Store por uno que sirva. Cualquier certificado de firma avanzada en su dispositivo criptográfico, incluyendo la CI electrónica, sirve para realizar autenticación de este modo. Se requiere previamente cargar el certificado en el Store del navegador e ingresar el pin para que cargue la identidad del usuario correctamente. Para esta carga es que se necesita especificar el driver PKCS#11 del dispositivo, que debe estar previamente instalado, debido a que los navegadores utilizan esta interfaz para acceder a los dispositivos criptográficos que portan los pares de llaves y certificados. Un breve instructivo de cómo realizar esto por plataforma se puede encontrar aquí: Carga de Certificado de firma avanzada en browser para autenticación TLS Cliente
  • Firma de PDF en Adobe.Adobe reader implementa la firma electrónica de PDF de forma muy sencilla, y soporta la carga de un dispositivo a través de interfaz PKCS#11. Es así que es posible cargar la CI electrónica u otro dispositivo criptográfico en nuestro Adobe y realizar la firma electrónica avanzada de un documento PDF en forma simple. Es una alternativa muy sencilla para intercambiar documentación firmada entre partes, ya que no requiere implementación de software alguna. Firmar PDF con Firma Avanzada en Adobe
  • Uso de componente externo para firma.Es común que se utilicen componentes que factorizan la implementación de la firma, de forma de simplificar la implementación de la misma. Si bien los puede haber de muchos tipos, la mayoría basa su implementación en PKCS#11 para soportar una amplia gama de dispositivos criptográficos. AGESIC desarrolló un componente de firma como software público. Esto implica que el mismo puede descargarse y evolucionarse libremente ya que su código es abierto, pero también que no tiene soporte. Esto último implica que si bien su uso es completamente libre, quien lo incorpore a sus sistemas deberá ser capaz de dar soporte sobre el mismo como parte de su solución. AGESIC no asume responsabilidad alguna por el soporte, mantenimiento y evolución del mismo. Se encuentra publicado en el Catálogo de Software Público Uruguayo. Plataformas como Genexus cuentan con componentes ya implementados para facilitar la integración aplicaciones desarrolladas en su tecnología. http://marketplace.genexus.com/product.aspx?gxcdigitalsign,es.

Sin perjuicio de estas soluciones, es posible implementar el acceso a las claves y certificados por PKCS#11 desde cualquier tipo de sistema. Como se tiene que acceder a hardware, las implementaciones en arquitecturas standalone o cliente-servidor son directas, mientras que en arquitecturas web es necesario desarrollar algún componente que corra del lado cliente y realice la firma en nombre del sistema, dado que los browsers no cuentan con interfaces estándar para la realización de firmas electrónicas desde, por ejemplo, Javascript. La motivación del componente de firma desarrollado por AGESIC como Software Público es precisamente la de facilitar la integración de la firma para aplicaciones web.

14442 Accesos
Promedio (0 Votos)
Añadir comentarios