2. 2
Agenda
▶ Introducción
▶ Operaciones soportadas
▶ Arquitectura de comunicación
– Comunicación por servicio
– Comunicación por socket
▶ Próximas novedades
3. 3
Introducción
▶ Autofirma es una herramienta de escritorio para la ejecución de operaciones de
firma electrónica de documento y cofirma de firmas .
▶ Adicionalmente, Autofirma a evolucionado para permitir que se le invoque por
protocolo para sustituir al MiniApplet @firma como herramienta de firma dentro
de un trámite web.
▶ La comunicación entre el JavaScript de despliegue del MiniApplet y AutoFirma se
realizará:
– A través de un socket SSL: Chrome, Firefox, Safari, Microsoft Edge e Internet
Explorer 11 (sin modo de compatibilidad hacia atrás).
– A través de un servidor intermedio: Internet Explorer 11 en modo de
compatibilidad y anteriores versiones de Internet Explorer.
▶ AutoFirma soporta todas las opciones de firma del MiniApplet (formatos,
algoritmos, extraParams…) y buena parte de sus operaciones.
4. 4
Soporte de operaciones del
MiniApplet
Operaciones soportadas
sign
coSign
counterSign
signBatch
selectCertificate
saveDataToFile
echo
checkTime
getBase64FromText
getTextFromBase64
downloadRemoteData
5. 5
▶ Comunicación mediante sockets:
Arquitectura de comunicación
Firma
Página Web miniapplet.js AutoFirma
firmar(datos)
Firma
firmar(datos)
invocarPorProtocolo(id,
puertos)
6. 6
▶ Comunicación mediante sockets:
1. La página web invoca a la función de firma del JavaScript de desapliegue.
2. Si no se puede cargar el MiniApplet, el JavaScript invoca a AutoFirma
pasándole un identificador de sesión y 3 puertos de red aleatorios.
3. El JavaScript hace repetidas llamadas echo a través de cada uno de los
puertos para detectar cuando está disponible y en qué puerto.
4. El JavaScript envía la configuración de las operaciones solicitadas a través
del socket abierto por AutoFirma y obtiene la respuesta a través del mismo.
5. AutoFirma se cierra automáticamente a los 60 segundos, reiniciando la
cuenta cada vez que recibe una nueva operación.
6. El JavaScript realiza las siguientes operaciones a través del mismo puerto:
• Si AutoFirma sigue abierto, procesará las peticiones normalmente.
• Si está cerrado, se cumplirá el tiempo de timeout y se volverá a abrir la
aplicación.
Arquitectura de comunicación
8. 8
Arquitectura de comunicación
1. La página web compone la URL con los datos de la operación e invoca a la
aplicación nativa a través del protocolo “afirma”.
– Si los datos caben en la URL se proporcionan a través de la misma.
– Si no caben, se suben al servidor intermedio y se pasan a través de la URL
los datos necesarios para que la app nativa los descargue de este servidor y
después comience a procesarlos.
– A partir de entonces, la página web inicia un proceso iterativo de solicitud del
resultado de la operación al servidor intermedio.
2. La aplicación nativa muestra un diálogo de selección de certificado al usuario y
ejecuta la operación con el certificado que este haya seleccionado.
3. La aplicación nativa envía cifrado el resultado de la operación al servidor
intermedio.
– En caso de haberse producido un error durante la operación, lo que se
enviará al servidor será el detalle de dicho error.
9. 9
Arquitectura de comunicación
4. La página web intenta recuperar el resultado de la operación del servidor
intermedio.
– Si el servidor aún no tiene los datos, notifica que no existe. La página web
realiza una pequeña espera y lo continúa intentando.
– Si el servidor ya dispone del resultado de la operación, los devuelve a la
página web (sea el resultado de la operación o un mensaje indicando que
ocurrió un error) y se borran del servidor.
– Si se sobrepasa el tiempo máximo de espera la página web da un error
indicando que no se pudo conectar con la aplicación.
▶ El JavaScript de despliegue es el encargado de crear los identificadores de
sesión para la comunicación con el servidor y la clave de cifrado para la
comunicación segura entre la aplicación nativa y la página web.
10. 10
Próximas novedades
▶ Firma visibles de PDF:
– Firma en campos de firma existentes.
– Configuración del aspecto de la firma.
▶ Configuración de las firmas de FacturaE.
▶ Importación de la configuración de firma.
▶ Generación y comprobación de hashes.
▶ Instalador MSI para el despliegue masivo en organismos.