2016 04 --curso_cliente_movil_v3

22
14/04/2016 Funcionamiento y problemas frecuentes Cliente @firma móvil

Upload: tomas-garcia-meras

Post on 15-Apr-2017

196 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 2016 04 --curso_cliente_movil_v3

14/04/2016

Funcionamiento y problemas frecuentes

Cliente @firma móvil

Page 2: 2016 04 --curso_cliente_movil_v3

2

Agenda

▶ Introducción

▶ Soporte de operaciones

▶ Arquitectura

▶ Dudas y problemas comunes

– Generales

– Cliente móvil

▶ Pantallas

Page 3: 2016 04 --curso_cliente_movil_v3

3

Introducción

▶ Es una app para la ejecución de operaciones de firma. Esta aplicación es compatible con los despliegues del MiniApplet @firma, de tal forma que al cargar en un dispositivo móvil una página web que integra una operación de firma con el MiniApplet, en lugar de usarse este, se ejecutará la app nativa para realizar la firma.

▶ La compatibilidad de los despliegues del MiniApplet con clientes móviles incluye:

– Despliegue de los servicios Storage y Retrieve y uso del método setServlet para establecerlos.

– Uso de las funciones callback para la recogida de los resultados.

▶ En Android, la aplicación puede utilizarse también para la generación de firmas locales.

– Las firmas de PDF siempre se realizarán con PAdES.

– El resto de documentos siempre se firmarán en CAdES.

– No se permite configurar la operación y el resultado se almacena automáticamente en el mismo directorio que el documento firmado.

Page 4: 2016 04 --curso_cliente_movil_v3

4

Soporte de operaciones del MiniApplet

Operaciones soportadas Sistema

sign Todos

coSign Todos

counterSign Todos

saveDataToFile Android

echo Todos

checkTime Todos

getBase64FromText Todos

getTextFromBase64 Todos

downloadRemoteData Todos

Page 6: 2016 04 --curso_cliente_movil_v3

6

Arquitectura

Page 7: 2016 04 --curso_cliente_movil_v3

7

Arquitectura

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 cabían en la URL se proporcionan a través de la misma.

– Si no cabían, 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.

Page 8: 2016 04 --curso_cliente_movil_v3

8

Arquitectura

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.

Page 9: 2016 04 --curso_cliente_movil_v3

9

Dudas y problemas comunes (General)

▶ ¿Cómo instalar certificados de firma en Android? (1)

– El sistema operativo gestiona la instalación de los certificados. Pueden instalarse certificados desde almacenes PKCS#12 (PFX/P12).

– El fichero debe copiarse a la SD o almacenamiento interno del dispositivo en caso de no haber. Puede hacerse con un cable desde un PC, envío por correo electrónico (no recomendable)…

– Ajustes -> Seguridad -> (Almacenamiento de credenciales) -> Instalar desde la tarjeta SD

• El nombre varia de un dispositivo a otro.

– Se recomienda eliminar el fichero tras la instalación.

– La instalación del certificado requiere introducir la contraseña del certificado, ponerle un alias y OBLIGARÁ a que el dispositivo tenga contraseña o patrón de seguridad.

Page 10: 2016 04 --curso_cliente_movil_v3

10

Dudas y problemas comunes (General)

▶ ¿Cómo instalar certificados de firma en Android? (y 2)

– La aplicación Android incorpora un botón “Importar certificado” en la pantalla principal para poder seleccionar un almacén PKCS#12 de disco e instalar sus claves y certificados después de introducir su contraseña.

Page 11: 2016 04 --curso_cliente_movil_v3

11

Dudas y problemas comunes (General)

▶ Me aparece una advertencia de seguridad tras instalar mi certificado de firma en Android ¿Qué hago?

– Determinadas versiones de Android alertan cuando se instalan certificados de CA no reconocidas. Esto ocurre comúnmente cuando se instala un certificado a partir de un almacén que contiene también sus CA y esta no es de confianza.

– ¡La advertencia puede ser muy alarmante!

– Esta advertencia no refleja ningún problema de seguridad real si el la CA del certificado instalado es realmente de confianza.

– Modos de proceder:

• El usuario puede cerrar esta advertencia, pero muy probablemente le vuelva a aparecer en el futuro al reiniciar el dispositivo.

• El usuario puede eliminar los certificados de CA. Esto no impide el uso de los certificados o la aplicación, pero las firmas pueden no generarse a partir de ese momento con la cadena de certificación completa.

Page 12: 2016 04 --curso_cliente_movil_v3

12

Dudas y problemas comunes (General)

▶ Me aparece una advertencia de seguridad tras instalar mi certificado de firma en Android ¿Qué hago?

Page 13: 2016 04 --curso_cliente_movil_v3

13

Dudas y problemas comunes (General)

▶ ¿Cómo instalar certificados de firma en iOS?

– El almacén central de claves de iOS sólo puede ser utilizado por las aplicaciones de Apple, así que la app que quieran usar certificados necesitan mantener su propio almacén de certificados.

– La aplicación iOS gestiona un almacén de certificados propio en el que se pueden importar nuevas claves y certificados a partir de almacenes PKCS#12 (PFX/P12).

– Los pasos a seguir para importar los certificados son:

• 1.- Copiar el fichero PFX/P12 a la aplicación.

– Para esto será necesario un equipo con iTunes.

• 2.- Importar el almacén PKCS#12 en el almacén de la aplicación.

Page 14: 2016 04 --curso_cliente_movil_v3

14

Dudas y problemas comunes (General)

▶ En iOS: ¿Cómo copiar el fichero PFX/P12 a la aplicación?

1. Conectar el dispositivo a un equipo.

2. Iniciar iTunes.

3. Seleccionar el dispositivo recién conectado.

4. Seleccionar “Aplicaciones”.

5. En el apartado inferior, aparecerá el listado de “Archivos compartidos”

6. Seleccionar la aplicación “Cliente @firma”.

7. Pulsar el botón “Añadir…”

8. Seleccionar el fichero P12/PFX deseado.

9. Pulsar el botón “Sincronizar”.

Page 15: 2016 04 --curso_cliente_movil_v3

15

Dudas y problemas comunes (General)

▶ En iOS: ¿Cómo importar el almacén PKCS#12 en el almacén de la aplicación?

1. Abrir la app.

2. Acceder al apartado “Gestión de certificados” de la pantalla principal.

3. En el listado de certificados del almacén, usar la opción de agregar (‘+’).

4. Seleccionar el almacén de claves en cuestión.

5. Introducir la contraseña del almacén PKCS#12 y pulsar “Registrar”.

6. Aparecerá el mensaje de que el certificado se cargó correctamente.

Page 16: 2016 04 --curso_cliente_movil_v3

16

Dudas y problemas comunes (General)

▶ Por qué no aparece mi certificado en las operaciones de autenticación / firma

– Las aplicaciones de Apple acceden al almacén central de claves y las utilizan cuando es necesario. Por ejemplo, en las autenticaciones SSL cliente realizadas desde Safari.

– El Cliente @firma iOS tiene su propio almacén (no puede usar el almacén central) y usa los certificados instalados en él para llevar a cabo las operaciones de firma.

– Un usuario tendrá que instalar sus certificados tanto en el almacén central del sistema (por medio de un perfil de configuración) como en el Cliente @firma iOS para poder usar sus certificados para ambas operaciones.

Page 17: 2016 04 --curso_cliente_movil_v3

17

Dudas y problemas comunes (General)

▶ ¿Por qué necesito contraseña o patrón para instalar certificados? ¿Por qué no se me pide la contraseña/patrón para usar el certificado?

En Android:

– Una vez importados los certificados en el almacén del sistema, pueden usarse libremente sin necesidad de insertar ningún tipo de contraseña. Este comportamiento no se puede cambiar.

– La seguridad reside en que Android sólo permite instalar certificados cuando hay una contraseña de acceso o patrón de seguridad para desbloquear el dispositivo. Este sólo sería vulnerable si el usuario lo dejase desbloqueado.

– Mientras haya certificados instalados, el usuario no podrá deshabilitar la contraseña o el patrón de seguridad.

En iOS:

– Los certificados se importan a un almacén interno de la app, de tal forma que es esta la que gestiona el acceso a ellos.

Page 18: 2016 04 --curso_cliente_movil_v3

18

Dudas y problemas comunes (General)

▶ En Android 4.1.X: ¿Falla la operación de firma al seleccionar algunos certificados?

– Android 4.1.X tiene un error que provoca que fallen las firmas realizadas con un certificado cuyo alias contenga espacios o cualquier otro carácter alfanuméricos, incluso cuando este es el alias por defecto del certificado.

– El usuario podrá seleccionar el certificado, pero la operación fallará.

– Los usuarios de Android 4.1.X siempre deben establecer alias que contengan sólo caracteres alfanuméricos.

Page 19: 2016 04 --curso_cliente_movil_v3

19

Dudas y problemas comunes (Cliente móvil)

▶ ¿Dónde puedo ver la versión del Cliente @firma móvil que tengo instalada?

– En iOS: En la pantalla principal (al abrirla desde el icono).

– En Android: Al entrar en el detalle de la aplicación desde el listado de aplicaciones instaladas. Próximamente se modificará para que aparezca en la pantalla principal.

▶ En Android: Si realizo una firma e instalo un certificado desde el diálogo de selección, la operación falla.

– El certificado se instala, pero al seleccionarlo en el diálogo, este nos vuelve a aparecer.

– Este es un error conocido que se tratará de resolver en el futuro.

Page 20: 2016 04 --curso_cliente_movil_v3

20

Dudas y problemas comunes (Cliente móvil)

▶ No se puede realizar firmas XAdES ni de FacturaE sin servidor trifásico de firma

– En Android se soportan las firmas monofásicas CAdES y PAdES.

– En iOS se soportan las firmas monofásicas CAdES.

– Cuando se solicita realizar una firma con un formato monofásico no soportado siempre se intenta firma con la versión trifásica del formato.

– En los despliegues compatibles con aplicaciones móviles siempre se debe establecer la URL del servicio trifásico de firma.

Page 21: 2016 04 --curso_cliente_movil_v3

21

Pantallas

Página de prueba (https://valide.redsara.es/firmaMovil)

Page 22: 2016 04 --curso_cliente_movil_v3

22

Pantallas

Pantalla principal Resultado de firma local Selección de fichero