1.- Introducción a MFE para integradores

INDICE DEL CONTENIDO



1.- ¿Qué es MFE?


El Módulo de Firma Electrónico (MFE) es una plataforma que proporciona toda la lógica de negocio necesaria para dotar de funcionalidades relacionadas con firma electrónica a aplicaciones integradoras.
El objetivo de este módulo es que de una forma sencilla para las aplicaciones, éstas tengan funcionalidades de firma electrónica abstrayéndose de las diferentes plataformas o componentes de firma o identificación.

2.- ¿Qué funcionalidades ofrece a los integradores?


MFE ofrece dos módulos a los integradores:

  • MFE - Identificación.
    • Ofrece funcionalidades de indentificación de usuarios para acceso portales mediante varios métodos (certificado electrónico, clave permante...)
    • SSO - Single Sign On.habilita al usuario para acceder a todos los sistemas integrados con MFE con una sola instancia de identificación.
    • Cierre de sesión.
    • Ayuda online al usuario con sistema de testeo del equipo.
    • Posibilidad de adaptación de los estilos de MFE  al del portal integrador.
    • Evolución con nuevos métodos de identificación sin que las aplicaciones integradoras deban modificar sus integraciones beneficiándose de las nuevas funcionalidades de MFE al instante.


  • MFE - Firma cliente:
    • Ofrece funcinalidades de firma en cliente de documentos mediante varios métodos (certificado, claveFirma...). Es decir, firma de documentos por usuarios con su propio certificado.
    • Ofrece funcionalidades de frima cliente de documentos en bloque. En  decir, con una sola acción, el usuario puede firmar varios documentos a la vez.
    • Ayuda online al usuario con sistema de testeo del equipo.
    • Posibilidad de adaptación de los estilos de MFE  al del portal integrador.
    • Evolución con nuevos métodos de firma sin que las aplicaciones integradoras deban modificar sus integraciones beneficiándose de las nuevas funcionalidades de MFE al instante.




3.- ¿Cómo funciona MFE?


3.1.- MFE - Identificación

El módulo de identificación provee servicios y toda la lógica de negocio necesaria para realizar la identificación de un usuario en un portal. La aplicación integradora tendrá toda la configuración de identificación dentro de MFE, tanto los métodos de identificación que desea utilizar como sus propiedades. De esta forma la aplicación se abstrae de toda configuración requerida y no será necesario la modificación sus integraciones con la evolución de los distintos proveedores de identificación ofrecidos por MFE.


Cómo funciona MFE - Módulo de identificación

El portal integrador coloca una etiqueta html iframe en su página de login donde se indica la url del servicio REST de identificación que provee el MFE. En esta url se indican el código de la aplicación y la url de retorno del portal una vez identificado el usuario. En este iframe MFE incrustarán todos los métodos de identificación que la aplicación tenga asignados.

En este momento, toda la lógica de negocio la controla el MFE. El usuario seleccionará el método de identificación que desea y MFE gestionará todas las invocaciones al proveedor de identificación, validaciones y redirecciones. Como resultado de la identificación, sea cuál sea el método de identificación seleccionado por el usuario, se proporcionará al portal un token JWT (Json Web Token) firmado por MFE con los datos de identificación. La forma que tendrá el portal de recogerlos, será mediante una función javascript que el portal tendrá implementada en la página de login. cuando un usuario se haya identificado, esta función será invocada por MFE de forma transparente para el portal por medio de eventos. Por seguridad, la aplicación deberá validar este token jwt una vez llegue al servidor mediante una invocación a un servicio REST de MFE y obtener así los datos de identificación.

La identificación con el MFE tiene implementado un sistema de autenticación única (SSO - Single Sign On) es decir, habilita al usuario para acceder a todos los sistemas integrados con MFE con una sola instancia de identificación. Este SSO comparte el token JWT autocontenido entre todos sus sitios webs mediante el almacenamiento local del navegador. La procedencia de estos datos se aseguran mediante la validación del jwt contra los servicios de MFE. El integrador no debe realizar ninguna implementación para este SSO, la lógica de negocio proporcionada por el módulo de identificación de MFE contiene toda su gestión.


3.2.- MFE - Firma cliente

El módulo de firma cliente provee servicios y toda la lógica de negocio necesaria para realizar la firma de documentos en cliente. La aplicación integradora tendrá toda la configuración de sus firmas dentro de MFE, tanto las plataformas o componentes de firma que desea utilizar como sus propiedades. De esta forma la aplicación se abstrae de toda configuración requerida y no será necesario la modificación de sus propiedades con la evolución de las distintos plataformas/componentes de firma. Cada aplicación puede realizar distintos tipos de firmas cliente: firma de recibo por parte de un ciudadano, firma de una factura por parte de un proveedor, firma de un documento por parte de un empleado de la administración pública... Cada una de estas firmas tendrá su formato de firma y propiedades distintas. Por ello cada aplicación integradora tendrá creadas en MFE las distintas operaciones de firma que vaya a realizar con sus propiedades y con los componentes/plataformas que ofrecerá al al usuario para firmar.


Cómo funciona MFE - Módulo de firma

El portal integrador coloca una etiqueta html iframe en su página de firma donde se indica la url del servicio REST de firma que provee MFE. En esta url como parámetros se indican el código de identificación de la aplicación en MFE y la operación de firma que desea realizar. En este iframe MFE incrustarán todos los métodos de firma que la aplicación tenga asociados a esta operación configurados con los parámetros de la operación de firma indicada.

En este momento, toda la lógica de negocio la controla MFE. El usuario seleccionará el método de firma que desea y MFE será quién gestione todas las invocaciones al componente/plataforma seleccionado. Los datos a firmar se buscarán en una determinada etiqueta dentro de la página de firma y una vez terminada la operación de firma, MFE invocará con el resultado a una función javascript que el integrador deberá tener implementada en la misma página de firma.


4.- Conceptos básicos de firma


Para poder integrarse con MFE se requiere cierto grado de conocimiento de firma electrónica. En este apartado se van a explicar algunos conceptos para favorecer la comprensión de la configuración a solicitar en MFE.

4.1.- Certificado electrónico

4.1.1 Qué es un certificado electrónico

Un certificado electrónico es un documento emitido y firmado por una autoridad de certificación que identifica a una persona física o jurídica. Esta autoridad de certificación ( o prestador de servicios de certificación) y es quien acredita que el propietario del certificado electrónico es quien dice ser. El usuario  podrá identificarse en aplicaciones o servicios, firmar documentos eletrónicamente o cifrarlos utilizando su certificado electrónico.

Cada certificado está identificado por un número de serie único y tiene un período de validez que está incluido en el certificado. 

4.1.2.- Claves digitales

En un Certificado, las claves digitales son los elementos esenciales para la firma, cifrado e identificación del firmante. Existen dos claves, la clave privada y clave pública, y trabajan de forma complementaria. Lo que cifra o codifica una clave sólo lo puede descifrar o decodificar la otra.

· La clave privada es aquella con la que se realiza la firma y está pensada para que nunca salga del certificado estando siempre bajo el control del firmante. 

· La clave pública  tiene todos los datos del propietario así como la autoridad de certificación que la emite. Esta clave pública se puede compartir para realizar determinadas operaciones mediante un fichero .cer

La autoridad de certificación, por seguridad,  puede revocar un certificado en caso de que se vea comprometida su clave privada. En este momento el certificado dejará de ser válido.

4.1.3 Tipos de certificado electrónico según propietario

· Persona física: el certificado identifica a una persona.

· Representante: el certificado se emite a una persona física para que pueda operar en nombre de una empresa o entidad.

· Empleado público: Son los certificados que cada Administración Pública puede proveer a su personal para la identificación y autenticación del ejercicio de la competencia de la Administración Pública

· SelloSegún la Ley, es el certificado usado para la identificación y la autenticación del ejercicio de la competencia en la actuación administrativa automatizada. Esto quiere decir que el Sello Electrónico (o sello de órgano) es el que debe usarse para todos los trámites administrativos que se realizan por medios telemáticos, tanto para la identificación de los servidores y la firma de los documentos electrónicos, como para el establecimiento de comunicaciones seguras entre máquinas

· Sede electrónicaEl certificado de Sede es un certificado de Servidor que identifica y autentifica al servidor como Sede Electrónica de una Administración Pública. Las sedes electrónicas, cuando sea necesario, dispondrán de sistemas que permiten el establecimiento de comunicaciones seguras. Además, utilizarán sistemas de firma basados en certificados de dispositivo seguro o medio equivalente para identificarse y mantener una comunicación segura.

· Sello de tiempo: certificado para aplicación del sellado de tiempo  mediante las cuales se garantizan el momento exacto en el que se produjo la firma de un documento.


4.2.- Firma electrónica

4.2.1.- ¿Qué es la firma electrónica?

La firma electrónica es un conjunto de datos electrónicos que acompañan o que están asociados a un documento electrónico y cuyas funciones básicas son:

· Identificación al firmante de manera inequívoca

· Asegurar la integridad del documento firmado. Asegura que el documento firmado es exactamente el mismo que el original y que no ha sufrido alteración o manipulación

· Asegurar el no repudio del documento firmado. Los datos que utiliza el firmante para realizar la firma son únicos y exclusivos y, por tanto, posteriormente, no puede decir que no ha firmado el documento

· Confidencialidad (en caso de cifrado): sólo el destinatario del documento electrónico podrá conocer su contenido.

La base legal de la Firma electrónica está recogida en la Ley 59/2003 de Firma Electrónica y se desarrolla en más profundidad en la sección Base legal de las Firmas. La sección también explora, bajo qué circunstancias la ley equipara la firma electrónica a la firma manuscrita

4.2.1.- Tipos de firma según ubicación del certificado

Firma en cliente: es aquella donde todo el proceso de firma se ejecuta en el lado cliente (el navegador). El usuario selecciona su propio certificado alojado en el navegador o en una tarjeta criptográfica para firmar. Dependiendo del componente o herramienta que se utilice para firmar puede realizarse por ejemplo mediante la ejecución de un applet, mediante apoyo de aplicación de escritorio o en una firma tres fases. Este tipo de firmas se realizan mediante MFE - Módulo de Firma electrónico.

Firma en servidor: es aquella donde el proceso de firma se ejecuta en el lado servidor de la aplicación. El certificado está alojado en una almacén de certificados a la que la plataforma de firma  tiene acceso. Este es el tipo de firmas que se realizan mediante SIFE - Servicios Integrados de Firma Electrónica, salvaguardando los certificados en su propio almacén de certificados.


4.2.2.- Tipos de firma según ubicación de la firma en el documento original

Firmas attached:  son aquellas en las que el documento y la firma se guardan en un mismo archivo.

Firmas dettached: son aquellas en las que el documento y la firma se guardan en dos archivos distintos

4.2.3.-  Tipos de firma según su formatos de firma

El formato de firma es la forma como se genera el documento de firma y como se guarda o estructura la información de firma en el documento generado.

Formatos de firma básicos:

PKCS7 o CMSFormato binario de firma usado para cualquier tipo de documento. Con este formato de firma se puede firmar cualquier documento ya que lo trata como un conjunto de bytes.

XML_DSIGN : Es una especificación desarrollada bajo el amparo del w3c que permite la firma de documentos utilizando una notación XML estándar, por ello está orientada a la firma de este tipo de documentos xml. 

PDF: Firma embebida en documentos PDF acordes a estándares ISO-32001.


Formatos avanzados o longevos:

El problema de los formatos de firma básicos es que tiene validez hasta que el certificado con el que está firmado sea válido y no haya caducado. Esto hace que pasado un tiempo estos documentos ya no sean válidos. Para ello se desarrollaron las firmas longevas a partir de las ya existentes que garantiza la validez de una firma a largo plazo, una vez vencido el periodo de validez del certificado.

CAdES : formato desarrollado a partir de la firma básica PKCS7

XAdES: formato desarrollado a partir del formato básico XML

PAdES:  formato desarrollado a partir del formato básico PDF


Estos formatos añaden a la firma evidencias de terceros (de autoridades de certificación) y certificaciones de tiempo,que realmente certifican cuál era el estado del certificado en el momento de la firma. En base a esto,  existen distintos sub-formatos de firma que van incrementando la calidad de la misma hasta conseguir una firma que pueda ser verificada a largo plazo (de forma indefinida) con plenas garantías jurídicas:

Firma Básica (AdES - BES), es el formato básico para satisfacer los requisitos de la firma electrónica avanzada.

AdES ­ T, se añade un sellado de tiempo (T de TimeStamp) con el fin de situar en el tiempo el instante en que se firma un documento.

AdES ­ C, añade un conjunto de referencias a los certificados de la cadena de certificación y su estado, como base para una verificación longeva (C de Cadena).

AdES ­ X, añade sellos de tiempo a las referencias creadas en el paso anterior (X de eXtendida).

AdES ­ XL, añade los certificados y la información de revocación de los mismos, para su validación a largo plazo (XL de eXtendido Largo plazo).

AdES ­ A, permite la adición de sellos de tiempo periódicos para garantizar la integridad de la firma archivada o guardada para futuras verificaciones (A de Archivo).


El formato de firma que se debe de adoptar por defecto para firmas de documentos pdf dentro de Gobierno de Aragón  son CAdES elevándose a CAdES-A y con firma detached.