Firma Electrónica sin Applets
Portada
Firma Electrónica sin Applets:
AutoFirma Java Web Start
Universidad de Almería
Firma Electrónica sin Applets
Indice
La firma con applets
AutoFirma: Limitaciones
Soluciones
Integración
2
Firma Electrónica sin Applets3
Un mundo sin applets
El 1 de septiembre de 2015 Google eliminó el
soporte de complementos NPAPI en Chrome.
Firefox lo hará a finales de 2016.
Oracle dejará de dar soporte a los applets Java.
Firma Electrónica sin Applets
Matriz de compatibilidad de Miniapplet 1.4 (*)
4
(*) Fuente: https://ws024.juntadeandalucia.es/ae/descargar/4795
Firma Electrónica sin Applets
Solución del MINHAP: AutoFirma
Es una solución independiente del navegador para
firma en entornos de escritorio.
Se invoca mediante protocolo:
afirma://sign?op=sign&id=9dyk67aKbWgVpom7sdHI
&key=73065939&stservlet=http://admindes5.ual.es:8
082/pfirma/StorageService&format=CAdES&algorith
m=SHA256withRSA&dat=IA==
5
Firma Electrónica sin Applets
Limitaciones de AutoFirma
Requiere una instalación previa
No soporta firma masiva
6
Firma Electrónica sin Applets
Propuesta: AutoFirma JWS
¿Cómo podemos llevarnos AutoFirma al Servidor?
Encapsular AutoFirma en un Java Web Start (JWS).
7
Firma Electrónica sin Applets
¿Qué es un Java Web Start?
8
Programa.jnlp
Local Servidor
Firma Electrónica sin Applets
Ventajas JWS
• No requiere de instalaciones previas.
• Facilita la actualización de AutoFirma.
9
Firma Electrónica sin Applets
Transformar AutoFirma en un JWS
Es necesario:
• El JAR de AutoFirma
• Un archivo JNLP
10
Firma Electrónica sin Applets
Paso de parámetros a AutoFirma
• Parámetros
• datos a firmar
• operación a realizar
• Dentro del archivo JNLP -> JNLP dinámico
11
Firma Electrónica sin Applets
Generación dinámica de JNLP
Servlet que recibe como parámetro la url de
invocación a AutoFirma
Descarga un archivo JNLP para continuar con el
proceso de firma.
http://servidor.ual.es/Autofirma/autofirma.jnlp?cadenafirma=afirma
%3A%2F%2Fsign%3Fop%3Dsign%26id%3D9dyk67aKbWgVpom7
sdHI%26key%3D73065939%26stservlet%3Dhttp%3A%2F%2Fad
mindes5.ual.es%3A8082%2Fpfirma%2FStorageService%26format
%3DCAdES%26algorithm%3DSHA256withRSA%26dat%3DIA%3
D%3D%0A
12
Firma Electrónica sin Applets
Demo
13
Firma Electrónica sin Applets
Inconvenientes de AutoFirma JWS
Hasta la versión JRE 8u73
Se descarga un fichero por petición
El usuario tiene que abrir el fichero
14
Firma Electrónica sin Applets
¿Cómo evitar la descarga?
Java Web Start por protocolo
15
JRE 8.74
Local Servidor
¡Ya no hay que
descargar
ficheros!
Firma Electrónica sin Applets
¿Cómo evitar la descarga?
16
http://servidor.ual.es/Autofirma/autofirma.jnlp?cadenafirma=afirma%3
A%2F%2Fsign%3Fop%3Dsign%26id%3D9dyk67aKbWgVpom7sdHI
%26key%3D73065939%26stservlet%3Dhttp%3A%2F%2Fadmindes5
.ual.es%3A8082%2Fpfirma%2FStorageService%26format%3DCAdE
S%26algorithm%3DSHA256withRSA%26dat%3DIA%3D%3D%0A
jnlp://servidor.ual.es/Autofirma/autofirma.jnlp?cadenafirma=afirma%3
A%2F%2Fsign%3Fop%3Dsign%26id%3D9dyk67aKbWgVpom7sdHI
%26key%3D73065939%26stservlet%3Dhttp%3A%2F%2Fadmindes5
.ual.es%3A8082%2Fpfirma%2FStorageService%26format%3DCAdE
S%26algorithm%3DSHA256withRSA%26dat%3DIA%3D%3D%0A
Firma Electrónica sin Applets
AutoFirma JWS 1.4.1 (Servidores Intermedios)
17
JNLPServer
Auto
1. Invocación de JNLP:// con parámetros
4. Lanzamiento Autofirmacon parámetros
3. Descarga / Actualización Autofirma 5. Firma6. Almacenamiento de la firma 2. Descarga JNLP con parámetros
StorageService / RetrieveService
Firma Electrónica sin Applets
AutoFirma JWS 1.4.2 (Sockets)
18
JNLPServer
Auto
1. Invocación de JNLP:// con parámetros
4. Lanzamiento Autofirmacon parámetros
3. Descarga / Actualización Autofirma 5. Firma6. Almacenamiento de la firma 2. Descarga JNLP con parámetros
Comunicación Directa
Firma Electrónica sin Applets
AutoFirma JWS
¿Cómo hacer que funcionen los sockets?
No se ha lanzado el
Configurador de
AutoFirma
Solución:
19
AutoFirma JWS
Configurador
Firma Electrónica sin Applets
Integración
20
Cliente de Firma
MiniApplet.js
OS
Applet Firma móvil AutoFirma
Firma Electrónica sin Applets
Integración
21
Cliente de Firma
MiniApplet.js
OS
Applet
Firma móvil
AutoFirma
Pre instalado
Fichero JNLP
JNLP://
Mismo documento
de Integración del
MinHAPJNLPServer
Firma Electrónica sin Applets
Limitaciones de Autofirma
Requiere una instalación previa
No soporta firma masiva
22
Firma Electrónica sin Applets
Firma en bloque / Multifirma
• No permite más de una firma por petición.
• El usuario tiene que seleccionar el certificado
tantas veces como firmas se quieran hacer.
23
Firma Electrónica sin Applets
Modificación firma masiva
• Modificación del método sign
• Entrada: “array” de peticiones de firma
• Salida: “array” de firmas.
El objetivo es que los datos a firmar sean del tipo:
OPERACION1;DATO1:OPERACION2;DATO2:…:OPERACIONn;DATOn
24
Firma Electrónica sin Applets
Cambios
Código Nuevas Funcionalidades
Miniapplet.js • Fichero JNLP
• Protocolo JNLP
AutoFirma • Configurador
• Firma masiva
25
https://github.com/sticual
https://github.com/ctt-gob-es/
Firma Electrónica sin Applets
Matriz de compatibilidad de AutoFirma
Windows 7 Windows 10 Linux Ubuntu v15.10
Mac OS v10.11
IExplorer v11 SI SI - -
Firefox v41.0.2 SI SI SI Si
Chrome v48 SI SI SI Si
MS Edge v20 - SI - -
Safari v9 - - - Si
26
Es la misma de Autofirma
Firma Electrónica sin Applets
Matriz de compatibilidad de AutoFirma JWS
Windows 7 Windows 10 Linux Ubuntu v15.10
Mac OS v10.11
IExplorer v11 Servidor
IntermedioSockets - -
Firefox v41.0.2 Servidor
IntermedioSockets
Servidor
Intermedio
Servidor
Intermedio
Chrome v48 Servidor
IntermedioSockets
Servidor
Intermedio
Servidor
Intermedio
MS Edge v20 - Sockets - -
Safari v9 Servidor
IntermedioSockets -
Servidor
Intermedio
27
Es la misma de Autofirma
Firma Electrónica sin Applets
Demo
28
Firma Electrónica sin Applets
Integraciones actuales
Integración con aplicaciones propias
PortaFirmas
U-Move
Oficina Virtual
29
Firma Electrónica sin Applets
Puesta en producción
Finales de abril: Piloto
Problemas en Windows 7, Mac y Linux.
• Se opta por la opción de Servidores Intermedios.
20 de mayo: En producción.
Problemas con Servidores Intermedios:
• En ciertas combinaciones de certificados y documentos el
resultado de firma se truncaba.
Mac: Problemas para abrir el fichero .jnlp
• Se crea un programa para asociar el protocolo jnlp con la
máquina virtual Java.
30
Firma Electrónica sin Applets
Incidencias registradas
31
Firma Electrónica sin Applets32
Firma Electrónica sin Applets
Caso de éxito ;-)
33
Firma Electrónica sin Applets34
Contraportada