SlideShare une entreprise Scribd logo
1  sur  43
Módulo 1:
Firma electrónica y suite @firma
Integración del
cliente @firma
Ministerio de Hacienda y Administraciones Públicas
 Había pensado que se podría organizar:
>>> * Día 1: Clase teórica
>>> - Conceptos de firma electrónica
>>> - Suite @firma
>>> - Suite del cliente
>>> - Componentes del cliente de firma: módulos, bibliotecas externas
>>> - Comunidad
>>> - Vista rápida de legislación en firma-e y nueva directiva europea
>>> de identidad electrónica
>>>
>>>
1. Firma electrónica
2. Suite @firma
3. Cliente de firma
- Conceptos de firma electrónica
>>> - Suite @firma
>>> - Suite del cliente
>>> - Componentes del cliente de firma: módulos, bibliotecas externas
>>> - Comunidad
>>> - Vista rápida de legislación en firma-e y nueva directiva europea
>>> de identidad electrónica
ÍNDICE
1. FIRMA ELECTRÓNICA
 Desarrollar:
 Qué es
 Garantías: integridad, autenticidad, no repudio,…
 Ley de Firma y Reglamento EIDAS:
 Firma electrónica, avanzada, reconocida/cualificada
 Sello electrónico
 Sello de tiempo electrónico
 …
 TSL
 Otra legislación
 Certificados electrónicos
 Circulo de confianza de PKI
2. SUITE @FIRMA
 Desarrollar:
 Firma Cliente: applet / miniapplet
 Firma Escritorio: firmafacil / standalone
 Firma Servidor: Integr@
 Firma Web: Valide
 Firma Móvil:
 Firma con workflow: Portafirmas
 Validación de firmas: Plataforma
 Visualización de firmas: Valide
 Sellado de tiempo: TSA
3. CLIENTE @FIRMA
Introducción
 Proyecto Java de software libre
 Contiene múltiples módulos que proporcionan operaciones criptográficas
 Principales funcionalidades:
– Firma y multifirma electrónica en diversos formatos
– Operaciones masivas de firma
– Acceso a almacenes de certificados
– Cifrado simétrico de datos
– Generación de sobres electrónicos
 La integración del cliente facilita el uso de estas capacidades
criptográficas
 Dentro del proyecto también se engloban diversas aplicaciones que
puede utilizar el usuario final o un integrador que desee funciones de más
alto nivel.
3. CLIENTE @FIRMA
Introducción
 El Cliente hace uso de los certificados digitales X.509 y de las claves
privadas asociadas a los mismos que estén instalados en repositorios
(keystores):
 Internos:
 Repositorio de Windows / Internet Explorer
 Repositorio de Mozilla / Firefox (Linux y en Windows)
 Repositorio de Mac OS X
 Repositorios en disco (PKCS#12/PFX y JKS)
 Externos (no directamente, sino a través de los internos o su
PKCS#11):
 SmartCards
 Token USB
3. CLIENTE @FIRMA
Descripción de módulos
 Los módulos desarrollados dentro del proyecto Cliente @firma
proporcionan funcionalidades independientes.
 Las relaciones entre estos módulos están bien definidas y vienen dadas
por el uso que hacen de las funciones proporcionadas por el resto.
 afirma-core
– Es el núcleo del proyecto.
– En este módulo se incluyen las interfaces que deben implementar las clases
que den soporte a nuevos formatos de firma, mecanismo de cifrado simétrico
y de gestión de sobres digitales.
– Se incluye también:
• Clases de utilidad genérica.
• Clases para la identificación del formato de ficheros.
• Una clase para la identificación del entorno de ejecución.
• Una clase para la gestión de los interfaces gráficos.
• Excepciones de uso general.
3. CLIENTE @FIRMA
Descripción de módulos
 afirma-core-keystores
– Módulo central para la gestión de almacenes de certificados.
– Proporciona directamente la lógica para el uso de varios almacenes:
• Almacén de Windows (MSCapi)
• Almacén de MAC OS X
• Almacenes en fichero PKCS#12, JKS,…
• Dispositivos PKCS#11
– Adicionalmente, contiene:
• Clases para la gestión de filtros de certificados.
• Callbacks para la inserción de contraseñas de almacenes y certificados.
• Lógica para el uso del diálogo de selección de certificados.
• Excepciones de uso general para la gestión de errores en almacenes.
 afirma-keystores-single
– Módulo para la gestión de certificados sueltos en disco.
– Proporciona un proveedor de seguridad de tipo KeyStore.
3. CLIENTE @FIRMA
Descripción de módulos
 afirma-keystores-mozilla
– Módulo para la gestión del almacén de Mozilla Firefox.
– Proporciona un proveedor de seguridad de tipo KeyStore.
 afirma-keystores-capiaddressbook
– Módulo para el acceso a la libreta de direcciones de Microsoft Windows.
– Proporciona un proveedor de seguridad de tipo KeyStore.
 afirma-keystores-filters-rfc
– Módulo para la gestión de filtros de certificados mediante el estándar RFC-
2254, filtros por KeyUsage y por número de serie del certificado.
– Permite definir filtros para su uso en el diálogo de selección de certificados.
 afirma-keystores-filters-old
– Módulo para la gestión de filtros de certificados según la definición del Cliente
@firma v2.4.
– Permite definir filtros para su uso en el diálogo de selección de certificados.
3. CLIENTE @FIRMA
Descripción de módulos
 afirma-core-firmaweb
– Módulo para la ejecución de firmas sobre formularios Web importado del
Cliente @firma v2.4.
– Actualmente no se ofrece soporte a las funcionalidades proporcionadas por
este módulo.
 afirma-core-massive
– Módulo para la ejecución de procesos de firma/multifirma masiva.
– Contiene las clases para diversos proceso de firma masiva:
• Firma masiva de ficheros.
• Firma masiva programática.
 afirma-crypto-core-pkcs7
– Módulo con las funciones básicas para la generación de firmas y envoltorios
binarios.
3. CLIENTE @FIRMA
Descripción de módulos
 afirma-crypto-core-pkcs7-tsp
– Módulo con la lógica necesaria para la inclusión de sellos de tiempo en firmas
binarias.
 afirma-crypto-cms
– Módulo con el manejador para la generación de firmas en formato
CMS/PKCS#7.
 afirma-crypto-cms-enveloper
– Módulo con el manejador para la generación de envoltorios CMS/PKCS#7.
 afirma-crypto-cades
– Módulo con el manejador para la generación de firmas (y multifirmas según
dependencias) en formato CAdES.
 afirma-crypto-cades-multi
– Módulo con las funciones de multifirma CAdES.
3. CLIENTE @FIRMA
Descripción de módulos
 afirma-crypto-pdf
– Módulo con el manejador para la generación de firmas en formato
PAdES/PDF.
 afirma-crypto-core-xml
– Módulo con las funciones básicas para la generación de firmas XML.
 afirma-crypto-xades
– Módulo con el manejador para la generación de firmas en formato XAdES.
– Incorpora el módulo para la firma de facturas electrónicas.
 afirma-crypto-xmlsignature
– Módulo con el manejador para la generación de firmas en formato XMLdSig.
 afirma-crypto-odf
– Módulo con el manejador para la generación de firmas en formato ODF.
– Compatible con los documentos de Writer, Calc e Impress.
3. CLIENTE @FIRMA
Descripción de módulos
 afirma-crypto-ooxml
– Módulo con el manejador para la generación de firmas en formato OOXML.
– Compatible con los documentos de Word, Excel y PowerPoint.
 afirma-crypto-cipher
– Módulo con las funciones de cifrado simétrico.
– Utiliza el proveedor de seguridad SunJCE.
 afirma-ui-core-jse
– Módulo con la implementación de los diálogos gráficos necesarios por el
Cliente para su uso en un entorno JSE.
 afirma-ui-core-jse-keystores
– Módulo con la implementación del dialogo de selección de certificados
utilizado por el Cliente en entornos JSE.
 afirma-util
– Módulo con clases de utilidad.
3. CLIENTE @FIRMA
Bibliotecas externas
 BouncyCastle (v1.52)
– Biblioteca criptográfica que proporciona clases y funciones para el tratamiento
de objetos ASN.1 y procesamiento de firmas binarias.
– http://www.bouncycastle.org/
 JXAdES
– Biblioteca para la generación de firmas electrónicas de acuerdo al estándar
de firma electrónica avanzada (XAdES).
– https://universitatjaumei.jira.com/browse/JXADES
 iText
– Biblioteca para el tratamiento y firma de documentos PDF.
– El Cliente Afirma utiliza una versión modificada de la versión 2.1.7 de iText
(última versión con licencia compatible con la del Cliente @firma) para
hacerla compatible con BouncyCastle v1.52 y proporcionar diversas
características).
3. CLIENTE @FIRMA
Bibliotecas externas
 JMimeMagic / Apache Jakarta ORO
– Bibliotecas para la identificación de formatos de datos.
– Versiones modificadas para reducir tamaño y eliminar dependencias.
– http://sourceforge.net/projects/jmimemagic/
– http://jakarta.apache.org/oro/
 Universal Charset Detector
– Biblioteca utilizada por el MiniApplet para la identificación de codificaciones de
texto.
3. CLIENTE @FIRMA
Aplicaciones construidas dentro del Cliente @firma
 Dentro del propio proyecto @firma se han desarrollado diversas
aplicaciones que incorporan parte de los anteriores módulos.
 Estas aplicaciones sirven a:
– Usuarios finales que requieren de estas funcionalidades criptográficas.
– Integradores que necesitan funciones de más alto nivel para la integración de
las capacidades criptográficas en sus sistemas y aplicaciones.
 Las principales aplicaciones desarrolladas dentro del proyecto son:
– Applet Cliente @firma
– MiniApplet
– Interfaz StandAlone
– SimpleAfirma
– @firma móvil
– Portafirmas móvil
3. CLIENTE @FIRMA
Applet Cliente @firma
 El applet Cliente @Firma es una aplicación cliente que proporciona
capacidades criptográficas a segundas aplicaciones.
 Es la aplicación más antigua y conocida del proyecto.
– Integrada en más de un centenar de organismos públicos.
 Permite que aplicaciones externas hagan uso de sus funcionalidades a
través de interfaces Java y JavaScript, independientemente del entorno
de desarrollo en que hayan sido programadas.
 Compatibilidad con múltiples entornos:
– Versiones de Java: 6, 7 y 8 (32 y 64 bits).
– Sistemas operativos: Windows, Linux, Mac OS X y Solaris.
– Navegadores Web: Internet Explorer, Firefox, Safari,…
3. CLIENTE @FIRMA – Applet Cliente
Funcionalidades
 Firma electrónica.
 Operaciones de firma, cofirma, contrafirma y operaciones masivas.
 Distintos modos, formatos, algoritmos,…
 Cifrado / descifrado.
 Cifrado y descifrado mediante clave simétrica.
 Cifrado por contraseña.
 Sobres digitales.
 Sobres envueltos.
 Sobres envueltos y firmados.
 Sobres autenticados.
 Acceso a múltiples almacenes.
– Windows
– Mozilla
– …
 Última versión con cambios funcionales.
 Incorpora todos los manejadores de firma con las últimas mejoras
disponibles.
 Se abandona la distribución de varias construcciones.
 Se elimina compatibilidad con Java 5.
 Se eliminan características deprecadas sin soporte:
 Firma Web.
 Filtros de certificados antiguos.
 Firma de múltiples hashes.
 Compatibilidad en Mac OS X con la JDK de Oracle.
 Se omiten advertencias en la carga de recursos del mismo dominio.
 Correcciones varias.
 Actualización a la última versión de sus dependencias.
3. CLIENTE @FIRMA – Applet Cliente
Nueva versión 3.4
3. CLIENTE @FIRMA
MiniApplet
 Applet cliente con funcionalidades de firma.
 Gran estabilidad y fiabilidad.
 Diferencias con el applet Cliente @firma:
– Despliegue e integración simplificadas.
– Mejor sistema de tratamiento de errores.
– Sistema de filtros preconfigurado.
– Políticas de firma preconfiguradas.
– Permite la carga de ficheros de mayor tamaño.
– Permite la generación de firmas trifásicas.
– No dispone de funcionalidades de cifrado, generación de sobres digitales,
firma masiva…
 Desarrollo compatible con el Cliente de firma móvil y Autofirma para
permitir la compatibilidad de entornos en los que los applets están
restringidos o cuando el usuario no permite su ejecución.
3. CLIENTE @FIRMA – Miniapplet
Nueva versión 1.3
 Agrega nuevas funcionalidades:
– Nuevos filtros prediseñados.
– Configuración automática de la política de firma v1.9 de la AGE.
– Iconos informativos en el diálogo de selección de certificados.
– Escritura de log en disco para simplificar la notificación de incidencias.
– Notificación de desfases de tiempo con el servidor.
– Descarga de contenido remoto mediante JavaScript para firma.
 Mejoras en los distintos módulos del proyecto.
– Nuevas opciones de configuración en todos los formatos de firma.
– Soporte para la firma de datos de mayor tamaño.
– Mayor estabilidad en los procesos de firma trifásica.
– Mejora de compatibilidad en los nuevos entornos.
 Despliegue compatible con el Cliente @firma móvil y clientes nativos.
3. CLIENTE @FIRMA
Interfaz StandAlone
 Potente interfaz gráfica de escritorio para operaciones criptográficas.
 Permite:
– Firmas y multifirmas.
– Multifirmas masivas de ficheros.
– Cifrado simétrico.
– Generación de sobre digitales.
 Acceso a múltiples almacenes.
 Múltiples formatos y algoritmos de firma.
 Sistema de asistentes para la realización de operaciones.
 Multiplataforma.
 Ayuda detallada.
3. CLIENTE @FIRMA
Interfaz StandAlone 1.3
3. CLIENTE @FIRMA – Standalone
Situación actual
 La versión 2.1 incorpora:
– Interfaz renovada.
– Sistema de perfiles de usuario.
– Completamente accesible.
– Mejor identificación de errores.
– Integración con el driver 100% Java de DNIe.
– Validación de estructura de firmas en local (no de certificados).
 Se aprovecha de las mejoras realizadas en cada uno de los módulos del
proyecto.
– Compatibilidad el almacén de los últimos Firefox.
– Compatibilidad con nuevas distribuciones de Linux.
– Configuración de firmas PAdES-Basic y PAdES-BES
– Etc.
3. CLIENTE @FIRMA – Standalone
Interfaz StandAlone
3. CLIENTE @FIRMA
SimpleAfirma
 Interfaz gráfica de escritorio.
 Funcionalidades:
– Firma
– Cofirma
 Utiliza el repositorio de certificados del sistema.
 Precarga de almacén para un uso más ágil.
 Integrado con el driver Java de DNIe.
 Multiplataforma.
 Configuración individual para cada formato de firma.
 Política de la AGE integrada.
 Ayuda detallada.
 Compatible con los despliegues del MiniApplet @firma v1.3 y superiores.
3. CLIENTE @FIRMA – SimpleAfirma
3. CLIENTE @FIRMA
Componentes del applet Cliente @firma
 El applet Cliente @firma está compuesto por:
 Un applet con la funcionalidad global del cliente.
 A los integradores se les ofrece:
 Las bibliotecas JavaScript necesarias para la carga, configuración
del cliente y el uso de las funcionalidades del cliente.
 Páginas HTML con ejemplos de uso del cliente.
3. CLIENTE @FIRMA
Construcciones
▶ Se dispone de tres construcciones del cliente, consistentes en
tres distribuciones del núcleo con distintas funcionalidades.
▶ Construcción LITE:
– Firmas/multifirmas CMS, CAdES y las funcionalidades de cifrado y
sobre digital.
▶ Construcción MEDIA:
– Capacidades de la construcción Lite y las firmas/multifirmas XAdES,
XMLdSig, ODF, OOXML y factura electrónica.
▶ Construcción COMPLETA:
– Capacidades de la construcción Media y las firmas/multifirmas PDF.
La versión 3.4 del Applet Cliente @firma abandona el sistema de
construcciones. Sólo se distribuye un JAR con todas las
funcionalidades.
3. CLIENTE @FIRMA v3.4
Instalación y despliegue
Nombre Descripción
applet_afirma_3_4.jar Applet con las funcionalidades del Cliente @firma.
constantes.js Fichero con los parámetros de configuración del cliente @firma.
instalador.js Biblioteca con las interfaces para carga del cliente.
firma.js Funciones de ayuda para la generación de firmas.
cripto.js Funciones de ayuda para el uso de las funciones de cifrado.
» Ficheros requeridos:
3. CLIENTE @FIRMA
Configuración
 Existen ciertos parámetros del cliente configurables mediante el fichero JavaScript
“constantes.js”.
Variable Por defecto Descripción
base
Directorio de la
página de carga
Ruta al directorio del BootLoader
signatureAlgorithm SHA512withRSA Algoritmo de firma por defecto.
signatureFormat CAdES Formato de firma por defecto
signatureAlgorithm SHA512withRSA Algoritmo de firma por defecto.
3. CLIENTE @FIRMA
Configuración
Variable Por defecto Descripción
showErrors false
Indica si se deben mostrar al usuario los errores internos
sufridos por el cliente.
showMozillaSmartCa
rdWarning
false
Indica si debe advertirse antes de la carga del almacén
por defecto cuando el navegador sea Firefox que se
inserten las tarjetas inteligentes en los lectores.
showExpiratedCertifi
cates
true
Indica si se deben mostrar los certificados caducados en
el diálogo de selección de certificados para firma.
locale Vacío Idioma por defecto de la aplicación
CUSTOM_JAVA_ARG
UMENTS
Vacío
Parámetros que deseamos que el applet establezca
como propiedades del sistema durante la inicialización.
3. CLIENTE @FIRMA
Notas sobre la configuración
 Es recomendable dar valor siempre a “base”
 El establecimiento de los valores por defecto “signatureAlgorithm”,
“signatureFormat ” y “cipherAlgorithm” se produce al llamar al método
“configuraFirma()” de firma.js o " configuraCifrador" de cripto.js.
 El establecimiento del valor por defecto de "showErrors" se produce al
invocar al método “initialize()” de la biblioteca crypto.js o firma.js.
 El Cliente @firma v3.4 sólo dispone del gallego como idioma incorporado
que pueda cargarse a través del parámetro "locale".
3. CLIENTE @FIRMA
Componentes del MiniApplet
 Los elementos que se distribuyen con el MiniApplet son:
 miniapplet-full_x_y.jar
 Applet con la funcionalidad global.
 miniapplet.js
 Biblioteca JavaScript para la carga y uso del MiniApplet.
 miniapplet.html
 Página web con ejemplo de carga y uso del MiniApplet.
 A los integradores se les ofrece:
 Manual del integrador.
 Javadoc completo.
 Javadoc sólo de la clase applet.
3. CLIENTE @FIRMA
Applet Cliente @firma: Modelo a seguir
 Forma de operar:
1. Toma de datos.
 Recogemos todos los datos insertados por el usuario o tomados de la sesión.
 Evitar la preconfiguración de variables.
2. Inicialización del applet de firma.
 Reinicio de todas las variables mediante el método initialize().
3. Configuración de todos los parámetros.
 Concentración de la configuración.
4. Ejecución de la operación.
 Firma, cifrado, ensobrado, operación masiva,…
5. Recuperación del resultado.
 Obtención de firma/multifirma, datos cifrados, datos planos, sobres digitales…
3. CLIENTE @FIRMA
Origen de datos
 La selección de los datos puede realizarse de varias formas:
 Datos: Se especifican en base 64 los datos a firma. Este método es útil
cuando los datos se han generado como parte del procedimiento (formulario
de datos, ficheros cargados en memoria,…).
 Método del cliente: setData(String b64Data);
 Ficheros: Se especifica la ruta, local o remota, de un fichero. Este método es
útil cuando el ciudadano desea aportar documentos para un procedimiento
(envió de documentación para trámites, escritos,…).
 Método del cliente: setFileuri(String uri);
 Hash: Se especifica en base 64 el hash de los datos que deseamos firmar.
Este método es útil para generar firmas sin obligar a subir grandes cantidades
de datos al servidor (carga de ficheros grandes, principalmente).
 Método del cliente: setHash(String hash);
3. CLIENTE @FIRMA
Configurar la operación
 setSignatureAlgorithm(algorithm)
 setSignatureFormat(format)
 setSignatureMode(mode)
 addExtraParam(key, value)
 setSelectedCerticateAlias(alias)
 setPolicy(identifier, description, qualifier, hashB64)
 addRFC2254CertificateFilter(subFilter, issFilter,
signerKeyUsage)
 setMandatoryCertificate(mandatory)
 setSignersToCounterSign(indexes)
 setMassiveOperation(massiveOperation)
 setOriginalFormat(original)
 Etc.
3. CLIENTE @FIRMA
Ejecución de la operación
 boolean sign()
 boolean coSign()
 boolean counterSignIndexes()
 boolean counterSignSigners()
 boolean counterSignLeafs()
 boolean counterSignTree()
 boolean signDirectory()
 String massiveSignatureData(String b64Data)
 String massiveSignatureHash(String b64Hash)
 String massiveSignatureFile(String fileuri)
 boolean cipherData()
 Etc.
3. CLIENTE @FIRMA
Obtención del resultado
 String getSignatureBase64Encoded()
 String getSignatureText(String charsetName)
 String getCipherData()
 String getPlainData()
 String getB64Data()
 String getData()
 setOutFilePath(String filename)
 boolean saveSignToFile()
 boolean saveDataToFile()
 boolean saveCipherDataToFile(String filename)
 boolean savePlainDataToFile(String filename)
 Etc.
3. CLIENTE @FIRMA
MiniApplet vs Applet Cliente
 El almacén de certificados sólo puede modificarse durante la carga.
 Todos las opciones de configuración de una operación se proporcionan
como parámetros de la función que la ejecuta.
 Cada función que ejecuta una operación criptográfica devuelve el
resultado como valor de retorno.
 Siempre se opera sobre datos en memoria.
 Cualquier selección de fichero (carga o guardado) debe realizarla el
usuario.
 Sistema de filtro de certificados predefinidos.
 Expansión de variables de configuración.
 La gestión de errores se realiza mediante excepciones.
3. CLIENTE @FIRMA
Comunidad
 El Ministerio de Hacienda y Administraciones Públicas en colaboración
con Cenatic ha convertido el Cliente @firma en un proyecto de software
libre alrededor del cual se ha construido una comunidad de
desarrolladores.
 La comunidad permite que cualquier entidad contribuya al proyecto
agregando nuevas funcionalidades, dando soporte a la comunidad (listas
de distribución, foros,…), realizando baterías de pruebas, aportando
equipos de pruebas (dispositivos móviles, máquinas virtuales en
servidores,…)
 En el proyecto participan tanto individuos a nivel personal como distintas
empresas y entidades:
3. CLIENTE @FIRMA
Comunidad
 El proyecto Cliente @firma se desarrolla desde la forja del Centro de
Transferencia Tecnológica (CTT) del Ministerio de Hacienda y
Administraciones Públicas (MinHAP).
 CTT: http://forja-ctt.administracionelectronica.gob.es/web/clienteafirma
 El código se sincroniza a diario con GitHub para obtener una mayor
visibilidad:
 GitHub: https://github.com/ctt-gob-es/clienteafirma
 La Universidad Jaume I ha puesto a disposición un sistema de integración
continua para facilitar las pruebas, el empaquetado y la comprobación de
la calidad del proyecto.
 Jenkins: http://devel.uji.es/hudson/job/afirma-client/
 Sonar: http://devel.uji.es/sonar/components/index/es.gob.afirma:afirma-client
 El código de la aplicación se encuentra mavenizado para facilitar la
construcción de los distintos artefactos.

Contenu connexe

Tendances

Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...Tomás García-Merás
 
D andoni perez_de_lema_-_igae_-_optimizacion_de_la_calidad_de_servicio_y_la_e...
D andoni perez_de_lema_-_igae_-_optimizacion_de_la_calidad_de_servicio_y_la_e...D andoni perez_de_lema_-_igae_-_optimizacion_de_la_calidad_de_servicio_y_la_e...
D andoni perez_de_lema_-_igae_-_optimizacion_de_la_calidad_de_servicio_y_la_e...clienteafirma
 
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMariano Tejedor
 
Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014Tomás García-Merás
 
correo seguro
 correo seguro correo seguro
correo seguroG Hoyos A
 

Tendances (7)

Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...Alternativas a los Applets de Java para la realización de firmas electrónicas...
Alternativas a los Applets de Java para la realización de firmas electrónicas...
 
D andoni perez_de_lema_-_igae_-_optimizacion_de_la_calidad_de_servicio_y_la_e...
D andoni perez_de_lema_-_igae_-_optimizacion_de_la_calidad_de_servicio_y_la_e...D andoni perez_de_lema_-_igae_-_optimizacion_de_la_calidad_de_servicio_y_la_e...
D andoni perez_de_lema_-_igae_-_optimizacion_de_la_calidad_de_servicio_y_la_e...
 
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y CardmoduleMTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
MTM eSEC-ENISE 26Oct - Framework DNIe y Cardmodule
 
Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014Presentación firma electrónica Codemotion 2014
Presentación firma electrónica Codemotion 2014
 
17 certdigitalespkcs
17 certdigitalespkcs17 certdigitalespkcs
17 certdigitalespkcs
 
correo seguro
 correo seguro correo seguro
correo seguro
 
ASP.NET
ASP.NETASP.NET
ASP.NET
 

En vedette

Presentación gira alianza pacifico para méxico, agroindustria y servicios, me...
Presentación gira alianza pacifico para méxico, agroindustria y servicios, me...Presentación gira alianza pacifico para méxico, agroindustria y servicios, me...
Presentación gira alianza pacifico para méxico, agroindustria y servicios, me...ProColombia
 
Hugo en 10 clics
Hugo en 10 clicsHugo en 10 clics
Hugo en 10 clicsCuatroTV
 
هداية المبتدئين لمعرفة أركان الدين Orientation des débutants pour connaitre...
هداية المبتدئين لمعرفة أركان الدين   Orientation des débutants pour connaitre...هداية المبتدئين لمعرفة أركان الدين   Orientation des débutants pour connaitre...
هداية المبتدئين لمعرفة أركان الدين Orientation des débutants pour connaitre...حمادي نزار
 
Qué es el mfc
Qué es el mfcQué es el mfc
Qué es el mfchiginio_oa
 
Social media analytics as a service: tools from GATE
Social media analytics as a service: tools from GATESocial media analytics as a service: tools from GATE
Social media analytics as a service: tools from GATEDiana Maynard
 
COMPANY PROFILE SINGGALANG PRODUCTION 2
COMPANY PROFILE SINGGALANG PRODUCTION 2COMPANY PROFILE SINGGALANG PRODUCTION 2
COMPANY PROFILE SINGGALANG PRODUCTION 2Bayu Permadi
 
Zero Cost Base Budgeting
Zero Cost Base BudgetingZero Cost Base Budgeting
Zero Cost Base Budgetingchestertrybus
 
How to make Canadian Patient Safety Week 2016 come alive using social media!
How to make Canadian Patient Safety Week 2016 come alive using social media!How to make Canadian Patient Safety Week 2016 come alive using social media!
How to make Canadian Patient Safety Week 2016 come alive using social media!Canadian Patient Safety Institute
 
IBIZA, Vivi il Mediterraneo
IBIZA, Vivi il MediterraneoIBIZA, Vivi il Mediterraneo
IBIZA, Vivi il Mediterraneoatb20
 
didáctica de la lengua materna
 didáctica de la lengua materna  didáctica de la lengua materna
didáctica de la lengua materna Fabián Cuevas
 
OpenStack, a view from sysadmin. Ver. 0.1
OpenStack, a view from sysadmin. Ver. 0.1OpenStack, a view from sysadmin. Ver. 0.1
OpenStack, a view from sysadmin. Ver. 0.1Hazzim Anaya
 
Vocabulary agronomy toritos.
Vocabulary agronomy toritos.Vocabulary agronomy toritos.
Vocabulary agronomy toritos.toritosalguero
 
DIDÁCTICA CRITICA (Lic. TS Lilian Vanessa Martínez Carmona
DIDÁCTICA CRITICA (Lic. TS Lilian Vanessa Martínez Carmona DIDÁCTICA CRITICA (Lic. TS Lilian Vanessa Martínez Carmona
DIDÁCTICA CRITICA (Lic. TS Lilian Vanessa Martínez Carmona lilian vanessa martinez
 

En vedette (20)

Cpu informatica
Cpu informaticaCpu informatica
Cpu informatica
 
Presentación gira alianza pacifico para méxico, agroindustria y servicios, me...
Presentación gira alianza pacifico para méxico, agroindustria y servicios, me...Presentación gira alianza pacifico para méxico, agroindustria y servicios, me...
Presentación gira alianza pacifico para méxico, agroindustria y servicios, me...
 
Hugo en 10 clics
Hugo en 10 clicsHugo en 10 clics
Hugo en 10 clics
 
alianza.compressed (1)
alianza.compressed (1)alianza.compressed (1)
alianza.compressed (1)
 
هداية المبتدئين لمعرفة أركان الدين Orientation des débutants pour connaitre...
هداية المبتدئين لمعرفة أركان الدين   Orientation des débutants pour connaitre...هداية المبتدئين لمعرفة أركان الدين   Orientation des débutants pour connaitre...
هداية المبتدئين لمعرفة أركان الدين Orientation des débutants pour connaitre...
 
Qué es el mfc
Qué es el mfcQué es el mfc
Qué es el mfc
 
Social media analytics as a service: tools from GATE
Social media analytics as a service: tools from GATESocial media analytics as a service: tools from GATE
Social media analytics as a service: tools from GATE
 
COMPANY PROFILE SINGGALANG PRODUCTION 2
COMPANY PROFILE SINGGALANG PRODUCTION 2COMPANY PROFILE SINGGALANG PRODUCTION 2
COMPANY PROFILE SINGGALANG PRODUCTION 2
 
Zero Cost Base Budgeting
Zero Cost Base BudgetingZero Cost Base Budgeting
Zero Cost Base Budgeting
 
XIV jornadas de historia en llerena
XIV jornadas de historia en llerenaXIV jornadas de historia en llerena
XIV jornadas de historia en llerena
 
How to make Canadian Patient Safety Week 2016 come alive using social media!
How to make Canadian Patient Safety Week 2016 come alive using social media!How to make Canadian Patient Safety Week 2016 come alive using social media!
How to make Canadian Patient Safety Week 2016 come alive using social media!
 
IBIZA, Vivi il Mediterraneo
IBIZA, Vivi il MediterraneoIBIZA, Vivi il Mediterraneo
IBIZA, Vivi il Mediterraneo
 
didáctica de la lengua materna
 didáctica de la lengua materna  didáctica de la lengua materna
didáctica de la lengua materna
 
PerfilNautico42
PerfilNautico42PerfilNautico42
PerfilNautico42
 
OpenStack, a view from sysadmin. Ver. 0.1
OpenStack, a view from sysadmin. Ver. 0.1OpenStack, a view from sysadmin. Ver. 0.1
OpenStack, a view from sysadmin. Ver. 0.1
 
Tonnellerie du Sud Ouest, tonelería de prestigio
Tonnellerie du Sud Ouest, tonelería de prestigioTonnellerie du Sud Ouest, tonelería de prestigio
Tonnellerie du Sud Ouest, tonelería de prestigio
 
Vocabulary agronomy toritos.
Vocabulary agronomy toritos.Vocabulary agronomy toritos.
Vocabulary agronomy toritos.
 
Business School IDE-CESEM. DIRECCIÓN ESTRATÉGICA DE LAS FINANZAS
Business School IDE-CESEM. DIRECCIÓN ESTRATÉGICA DE LAS FINANZASBusiness School IDE-CESEM. DIRECCIÓN ESTRATÉGICA DE LAS FINANZAS
Business School IDE-CESEM. DIRECCIÓN ESTRATÉGICA DE LAS FINANZAS
 
Eps guía didáctica
Eps guía didácticaEps guía didáctica
Eps guía didáctica
 
DIDÁCTICA CRITICA (Lic. TS Lilian Vanessa Martínez Carmona
DIDÁCTICA CRITICA (Lic. TS Lilian Vanessa Martínez Carmona DIDÁCTICA CRITICA (Lic. TS Lilian Vanessa Martínez Carmona
DIDÁCTICA CRITICA (Lic. TS Lilian Vanessa Martínez Carmona
 

Similaire à 2015 10 - Curso Cliente @firma INAP día 1

Gestión documental colaborativa con Alfresco ECM
Gestión documental colaborativa con Alfresco ECMGestión documental colaborativa con Alfresco ECM
Gestión documental colaborativa con Alfresco ECMzylk net
 
Logitek Comunicación segura OPC_JAI_2014
Logitek Comunicación segura OPC_JAI_2014Logitek Comunicación segura OPC_JAI_2014
Logitek Comunicación segura OPC_JAI_2014Logitek Solutions
 
Comunicaciones industriales opc
Comunicaciones industriales opcComunicaciones industriales opc
Comunicaciones industriales opcCarlos Benito
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidosJaziel Torres
 
Samba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPSamba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPiesgrancapitan.org
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - ServiciosRicard Clau
 
CLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxCLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxDiseoGrfico14
 
Seguridad en Entornos Web Open Source
Seguridad en Entornos Web Open SourceSeguridad en Entornos Web Open Source
Seguridad en Entornos Web Open SourceConferencias FIST
 
Computación básica
Computación básicaComputación básica
Computación básicaRaulArregal
 
Unidad 2 Integración de Sistemas
Unidad 2   Integración de SistemasUnidad 2   Integración de Sistemas
Unidad 2 Integración de Sistemasvverdu
 
Certificados Cacert
Certificados CacertCertificados Cacert
Certificados CacertKevin MH
 
Software Delta.Info
Software Delta.InfoSoftware Delta.Info
Software Delta.Infoinloac
 

Similaire à 2015 10 - Curso Cliente @firma INAP día 1 (20)

Gestión documental colaborativa con Alfresco ECM
Gestión documental colaborativa con Alfresco ECMGestión documental colaborativa con Alfresco ECM
Gestión documental colaborativa con Alfresco ECM
 
Logitek Comunicación segura OPC_JAI_2014
Logitek Comunicación segura OPC_JAI_2014Logitek Comunicación segura OPC_JAI_2014
Logitek Comunicación segura OPC_JAI_2014
 
Comunicaciones industriales opc
Comunicaciones industriales opcComunicaciones industriales opc
Comunicaciones industriales opc
 
Protocolo vpn
Protocolo vpnProtocolo vpn
Protocolo vpn
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Samba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAPSamba como PDC y autentificación LDAP
Samba como PDC y autentificación LDAP
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - Servicios
 
CLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptxCLASE03_TEMA02_2.pptx
CLASE03_TEMA02_2.pptx
 
Seguridad en Entornos Web Open Source
Seguridad en Entornos Web Open SourceSeguridad en Entornos Web Open Source
Seguridad en Entornos Web Open Source
 
Computación básica
Computación básicaComputación básica
Computación básica
 
Unidad 2 Integración de Sistemas
Unidad 2   Integración de SistemasUnidad 2   Integración de Sistemas
Unidad 2 Integración de Sistemas
 
Certificados Cacert
Certificados CacertCertificados Cacert
Certificados Cacert
 
SimpleSAMLphp
SimpleSAMLphpSimpleSAMLphp
SimpleSAMLphp
 
Tutorial ISA Server
Tutorial ISA ServerTutorial ISA Server
Tutorial ISA Server
 
BASE DE DATOS (2)
BASE DE DATOS (2)BASE DE DATOS (2)
BASE DE DATOS (2)
 
Estandar de red
Estandar de redEstandar de red
Estandar de red
 
PFC IMS
PFC IMSPFC IMS
PFC IMS
 
Reporte final
Reporte finalReporte final
Reporte final
 
Integración de sistemas y Firewalls
Integración de sistemas y FirewallsIntegración de sistemas y Firewalls
Integración de sistemas y Firewalls
 
Software Delta.Info
Software Delta.InfoSoftware Delta.Info
Software Delta.Info
 

Plus de Tomás García-Merás

NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19Tomás García-Merás
 
Hacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridadHacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridadTomás García-Merás
 
Blockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector públicoBlockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector públicoTomás García-Merás
 
T3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en BlockchainT3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en BlockchainTomás García-Merás
 
Confidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloquesConfidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloquesTomás García-Merás
 
CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
CyberCamp 2018 - La autenticación con certificados en las Sedes ElectrónicasCyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
CyberCamp 2018 - La autenticación con certificados en las Sedes ElectrónicasTomás García-Merás
 
Mitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en BlockchainMitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en BlockchainTomás García-Merás
 
Asegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLAsegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLTomás García-Merás
 
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicosDesarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicosTomás García-Merás
 
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con AndroidProgramación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con AndroidTomás García-Merás
 
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...Tomás García-Merás
 
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...Tomás García-Merás
 
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...Tomás García-Merás
 
Autenticación biométrica de firma manuscrita sobre dispositivos móviles de ca...
Autenticación biométrica de firma manuscrita sobre dispositivos móviles de ca...Autenticación biométrica de firma manuscrita sobre dispositivos móviles de ca...
Autenticación biométrica de firma manuscrita sobre dispositivos móviles de ca...Tomás García-Merás
 
Nuevos retos en la gestion de la identidad digital para la nueva generación d...
Nuevos retos en la gestion de la identidad digital para la nueva generación d...Nuevos retos en la gestion de la identidad digital para la nueva generación d...
Nuevos retos en la gestion de la identidad digital para la nueva generación d...Tomás García-Merás
 
Cyber threat intelligence program (Microsoft) - II Encuentro nacional sobre f...
Cyber threat intelligence program (Microsoft) - II Encuentro nacional sobre f...Cyber threat intelligence program (Microsoft) - II Encuentro nacional sobre f...
Cyber threat intelligence program (Microsoft) - II Encuentro nacional sobre f...Tomás García-Merás
 
Certificados electrónicos en dispositivos móviles (FNMT-RCM) - II Encuentro n...
Certificados electrónicos en dispositivos móviles (FNMT-RCM) - II Encuentro n...Certificados electrónicos en dispositivos móviles (FNMT-RCM) - II Encuentro n...
Certificados electrónicos en dispositivos móviles (FNMT-RCM) - II Encuentro n...Tomás García-Merás
 
Firma electrónica manuscrita (StepOver) - II Encuentro nacional sobre firma y...
Firma electrónica manuscrita (StepOver) - II Encuentro nacional sobre firma y...Firma electrónica manuscrita (StepOver) - II Encuentro nacional sobre firma y...
Firma electrónica manuscrita (StepOver) - II Encuentro nacional sobre firma y...Tomás García-Merás
 
La firma electrónica en los servicios públicos desde la perspectiva de las ad...
La firma electrónica en los servicios públicos desde la perspectiva de las ad...La firma electrónica en los servicios públicos desde la perspectiva de las ad...
La firma electrónica en los servicios públicos desde la perspectiva de las ad...Tomás García-Merás
 

Plus de Tomás García-Merás (20)

NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19NWC10 - Retos digitales derivados del COVID-19
NWC10 - Retos digitales derivados del COVID-19
 
Hacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridadHacking hardware en sistemas empotrados: De la preservación a la seguridad
Hacking hardware en sistemas empotrados: De la preservación a la seguridad
 
Blockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector públicoBlockchain vs. Firma electrónica en sector público
Blockchain vs. Firma electrónica en sector público
 
T3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en BlockchainT3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
T3chfest 2019 - Modelos de confianza técnico-jurídica en Blockchain
 
Confidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloquesConfidencialidad de los datos en la cadena de bloques
Confidencialidad de los datos en la cadena de bloques
 
CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
CyberCamp 2018 - La autenticación con certificados en las Sedes ElectrónicasCyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
CyberCamp 2018 - La autenticación con certificados en las Sedes Electrónicas
 
Mitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en BlockchainMitos y realidades de la confianza en Blockchain
Mitos y realidades de la confianza en Blockchain
 
Madres Digitales 2017
Madres Digitales 2017Madres Digitales 2017
Madres Digitales 2017
 
Asegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSLAsegurando los API con Criptografía RSA: Más allá del SSL
Asegurando los API con Criptografía RSA: Más allá del SSL
 
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicosDesarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos
Desarrollo Java en PlayStation: Aplicaciones en disco para usos atípicos
 
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con AndroidProgramación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
Programación y uso de tarjetas criptográficas NFC (DNIe, TUI, etc) con Android
 
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
Uso de la firma en la AEAT (AEAT) - II Encuentro nacional sobre firma y admin...
 
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
El papel de la firma electrónica en la administración (UAM) - II Encuentro na...
 
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
El papel de la firma electrónica en la administración (MinHAP-SEAP) - II Encu...
 
Autenticación biométrica de firma manuscrita sobre dispositivos móviles de ca...
Autenticación biométrica de firma manuscrita sobre dispositivos móviles de ca...Autenticación biométrica de firma manuscrita sobre dispositivos móviles de ca...
Autenticación biométrica de firma manuscrita sobre dispositivos móviles de ca...
 
Nuevos retos en la gestion de la identidad digital para la nueva generación d...
Nuevos retos en la gestion de la identidad digital para la nueva generación d...Nuevos retos en la gestion de la identidad digital para la nueva generación d...
Nuevos retos en la gestion de la identidad digital para la nueva generación d...
 
Cyber threat intelligence program (Microsoft) - II Encuentro nacional sobre f...
Cyber threat intelligence program (Microsoft) - II Encuentro nacional sobre f...Cyber threat intelligence program (Microsoft) - II Encuentro nacional sobre f...
Cyber threat intelligence program (Microsoft) - II Encuentro nacional sobre f...
 
Certificados electrónicos en dispositivos móviles (FNMT-RCM) - II Encuentro n...
Certificados electrónicos en dispositivos móviles (FNMT-RCM) - II Encuentro n...Certificados electrónicos en dispositivos móviles (FNMT-RCM) - II Encuentro n...
Certificados electrónicos en dispositivos móviles (FNMT-RCM) - II Encuentro n...
 
Firma electrónica manuscrita (StepOver) - II Encuentro nacional sobre firma y...
Firma electrónica manuscrita (StepOver) - II Encuentro nacional sobre firma y...Firma electrónica manuscrita (StepOver) - II Encuentro nacional sobre firma y...
Firma electrónica manuscrita (StepOver) - II Encuentro nacional sobre firma y...
 
La firma electrónica en los servicios públicos desde la perspectiva de las ad...
La firma electrónica en los servicios públicos desde la perspectiva de las ad...La firma electrónica en los servicios públicos desde la perspectiva de las ad...
La firma electrónica en los servicios públicos desde la perspectiva de las ad...
 

2015 10 - Curso Cliente @firma INAP día 1

  • 1. Módulo 1: Firma electrónica y suite @firma Integración del cliente @firma Ministerio de Hacienda y Administraciones Públicas
  • 2.  Había pensado que se podría organizar: >>> * Día 1: Clase teórica >>> - Conceptos de firma electrónica >>> - Suite @firma >>> - Suite del cliente >>> - Componentes del cliente de firma: módulos, bibliotecas externas >>> - Comunidad >>> - Vista rápida de legislación en firma-e y nueva directiva europea >>> de identidad electrónica >>> >>>
  • 3. 1. Firma electrónica 2. Suite @firma 3. Cliente de firma - Conceptos de firma electrónica >>> - Suite @firma >>> - Suite del cliente >>> - Componentes del cliente de firma: módulos, bibliotecas externas >>> - Comunidad >>> - Vista rápida de legislación en firma-e y nueva directiva europea >>> de identidad electrónica ÍNDICE
  • 4. 1. FIRMA ELECTRÓNICA  Desarrollar:  Qué es  Garantías: integridad, autenticidad, no repudio,…  Ley de Firma y Reglamento EIDAS:  Firma electrónica, avanzada, reconocida/cualificada  Sello electrónico  Sello de tiempo electrónico  …  TSL  Otra legislación  Certificados electrónicos  Circulo de confianza de PKI
  • 5. 2. SUITE @FIRMA  Desarrollar:  Firma Cliente: applet / miniapplet  Firma Escritorio: firmafacil / standalone  Firma Servidor: Integr@  Firma Web: Valide  Firma Móvil:  Firma con workflow: Portafirmas  Validación de firmas: Plataforma  Visualización de firmas: Valide  Sellado de tiempo: TSA
  • 6. 3. CLIENTE @FIRMA Introducción  Proyecto Java de software libre  Contiene múltiples módulos que proporcionan operaciones criptográficas  Principales funcionalidades: – Firma y multifirma electrónica en diversos formatos – Operaciones masivas de firma – Acceso a almacenes de certificados – Cifrado simétrico de datos – Generación de sobres electrónicos  La integración del cliente facilita el uso de estas capacidades criptográficas  Dentro del proyecto también se engloban diversas aplicaciones que puede utilizar el usuario final o un integrador que desee funciones de más alto nivel.
  • 7. 3. CLIENTE @FIRMA Introducción  El Cliente hace uso de los certificados digitales X.509 y de las claves privadas asociadas a los mismos que estén instalados en repositorios (keystores):  Internos:  Repositorio de Windows / Internet Explorer  Repositorio de Mozilla / Firefox (Linux y en Windows)  Repositorio de Mac OS X  Repositorios en disco (PKCS#12/PFX y JKS)  Externos (no directamente, sino a través de los internos o su PKCS#11):  SmartCards  Token USB
  • 8. 3. CLIENTE @FIRMA Descripción de módulos  Los módulos desarrollados dentro del proyecto Cliente @firma proporcionan funcionalidades independientes.  Las relaciones entre estos módulos están bien definidas y vienen dadas por el uso que hacen de las funciones proporcionadas por el resto.  afirma-core – Es el núcleo del proyecto. – En este módulo se incluyen las interfaces que deben implementar las clases que den soporte a nuevos formatos de firma, mecanismo de cifrado simétrico y de gestión de sobres digitales. – Se incluye también: • Clases de utilidad genérica. • Clases para la identificación del formato de ficheros. • Una clase para la identificación del entorno de ejecución. • Una clase para la gestión de los interfaces gráficos. • Excepciones de uso general.
  • 9. 3. CLIENTE @FIRMA Descripción de módulos  afirma-core-keystores – Módulo central para la gestión de almacenes de certificados. – Proporciona directamente la lógica para el uso de varios almacenes: • Almacén de Windows (MSCapi) • Almacén de MAC OS X • Almacenes en fichero PKCS#12, JKS,… • Dispositivos PKCS#11 – Adicionalmente, contiene: • Clases para la gestión de filtros de certificados. • Callbacks para la inserción de contraseñas de almacenes y certificados. • Lógica para el uso del diálogo de selección de certificados. • Excepciones de uso general para la gestión de errores en almacenes.  afirma-keystores-single – Módulo para la gestión de certificados sueltos en disco. – Proporciona un proveedor de seguridad de tipo KeyStore.
  • 10. 3. CLIENTE @FIRMA Descripción de módulos  afirma-keystores-mozilla – Módulo para la gestión del almacén de Mozilla Firefox. – Proporciona un proveedor de seguridad de tipo KeyStore.  afirma-keystores-capiaddressbook – Módulo para el acceso a la libreta de direcciones de Microsoft Windows. – Proporciona un proveedor de seguridad de tipo KeyStore.  afirma-keystores-filters-rfc – Módulo para la gestión de filtros de certificados mediante el estándar RFC- 2254, filtros por KeyUsage y por número de serie del certificado. – Permite definir filtros para su uso en el diálogo de selección de certificados.  afirma-keystores-filters-old – Módulo para la gestión de filtros de certificados según la definición del Cliente @firma v2.4. – Permite definir filtros para su uso en el diálogo de selección de certificados.
  • 11. 3. CLIENTE @FIRMA Descripción de módulos  afirma-core-firmaweb – Módulo para la ejecución de firmas sobre formularios Web importado del Cliente @firma v2.4. – Actualmente no se ofrece soporte a las funcionalidades proporcionadas por este módulo.  afirma-core-massive – Módulo para la ejecución de procesos de firma/multifirma masiva. – Contiene las clases para diversos proceso de firma masiva: • Firma masiva de ficheros. • Firma masiva programática.  afirma-crypto-core-pkcs7 – Módulo con las funciones básicas para la generación de firmas y envoltorios binarios.
  • 12. 3. CLIENTE @FIRMA Descripción de módulos  afirma-crypto-core-pkcs7-tsp – Módulo con la lógica necesaria para la inclusión de sellos de tiempo en firmas binarias.  afirma-crypto-cms – Módulo con el manejador para la generación de firmas en formato CMS/PKCS#7.  afirma-crypto-cms-enveloper – Módulo con el manejador para la generación de envoltorios CMS/PKCS#7.  afirma-crypto-cades – Módulo con el manejador para la generación de firmas (y multifirmas según dependencias) en formato CAdES.  afirma-crypto-cades-multi – Módulo con las funciones de multifirma CAdES.
  • 13. 3. CLIENTE @FIRMA Descripción de módulos  afirma-crypto-pdf – Módulo con el manejador para la generación de firmas en formato PAdES/PDF.  afirma-crypto-core-xml – Módulo con las funciones básicas para la generación de firmas XML.  afirma-crypto-xades – Módulo con el manejador para la generación de firmas en formato XAdES. – Incorpora el módulo para la firma de facturas electrónicas.  afirma-crypto-xmlsignature – Módulo con el manejador para la generación de firmas en formato XMLdSig.  afirma-crypto-odf – Módulo con el manejador para la generación de firmas en formato ODF. – Compatible con los documentos de Writer, Calc e Impress.
  • 14. 3. CLIENTE @FIRMA Descripción de módulos  afirma-crypto-ooxml – Módulo con el manejador para la generación de firmas en formato OOXML. – Compatible con los documentos de Word, Excel y PowerPoint.  afirma-crypto-cipher – Módulo con las funciones de cifrado simétrico. – Utiliza el proveedor de seguridad SunJCE.  afirma-ui-core-jse – Módulo con la implementación de los diálogos gráficos necesarios por el Cliente para su uso en un entorno JSE.  afirma-ui-core-jse-keystores – Módulo con la implementación del dialogo de selección de certificados utilizado por el Cliente en entornos JSE.  afirma-util – Módulo con clases de utilidad.
  • 15. 3. CLIENTE @FIRMA Bibliotecas externas  BouncyCastle (v1.52) – Biblioteca criptográfica que proporciona clases y funciones para el tratamiento de objetos ASN.1 y procesamiento de firmas binarias. – http://www.bouncycastle.org/  JXAdES – Biblioteca para la generación de firmas electrónicas de acuerdo al estándar de firma electrónica avanzada (XAdES). – https://universitatjaumei.jira.com/browse/JXADES  iText – Biblioteca para el tratamiento y firma de documentos PDF. – El Cliente Afirma utiliza una versión modificada de la versión 2.1.7 de iText (última versión con licencia compatible con la del Cliente @firma) para hacerla compatible con BouncyCastle v1.52 y proporcionar diversas características).
  • 16. 3. CLIENTE @FIRMA Bibliotecas externas  JMimeMagic / Apache Jakarta ORO – Bibliotecas para la identificación de formatos de datos. – Versiones modificadas para reducir tamaño y eliminar dependencias. – http://sourceforge.net/projects/jmimemagic/ – http://jakarta.apache.org/oro/  Universal Charset Detector – Biblioteca utilizada por el MiniApplet para la identificación de codificaciones de texto.
  • 17. 3. CLIENTE @FIRMA Aplicaciones construidas dentro del Cliente @firma  Dentro del propio proyecto @firma se han desarrollado diversas aplicaciones que incorporan parte de los anteriores módulos.  Estas aplicaciones sirven a: – Usuarios finales que requieren de estas funcionalidades criptográficas. – Integradores que necesitan funciones de más alto nivel para la integración de las capacidades criptográficas en sus sistemas y aplicaciones.  Las principales aplicaciones desarrolladas dentro del proyecto son: – Applet Cliente @firma – MiniApplet – Interfaz StandAlone – SimpleAfirma – @firma móvil – Portafirmas móvil
  • 18. 3. CLIENTE @FIRMA Applet Cliente @firma  El applet Cliente @Firma es una aplicación cliente que proporciona capacidades criptográficas a segundas aplicaciones.  Es la aplicación más antigua y conocida del proyecto. – Integrada en más de un centenar de organismos públicos.  Permite que aplicaciones externas hagan uso de sus funcionalidades a través de interfaces Java y JavaScript, independientemente del entorno de desarrollo en que hayan sido programadas.  Compatibilidad con múltiples entornos: – Versiones de Java: 6, 7 y 8 (32 y 64 bits). – Sistemas operativos: Windows, Linux, Mac OS X y Solaris. – Navegadores Web: Internet Explorer, Firefox, Safari,…
  • 19. 3. CLIENTE @FIRMA – Applet Cliente Funcionalidades  Firma electrónica.  Operaciones de firma, cofirma, contrafirma y operaciones masivas.  Distintos modos, formatos, algoritmos,…  Cifrado / descifrado.  Cifrado y descifrado mediante clave simétrica.  Cifrado por contraseña.  Sobres digitales.  Sobres envueltos.  Sobres envueltos y firmados.  Sobres autenticados.  Acceso a múltiples almacenes. – Windows – Mozilla – …
  • 20.  Última versión con cambios funcionales.  Incorpora todos los manejadores de firma con las últimas mejoras disponibles.  Se abandona la distribución de varias construcciones.  Se elimina compatibilidad con Java 5.  Se eliminan características deprecadas sin soporte:  Firma Web.  Filtros de certificados antiguos.  Firma de múltiples hashes.  Compatibilidad en Mac OS X con la JDK de Oracle.  Se omiten advertencias en la carga de recursos del mismo dominio.  Correcciones varias.  Actualización a la última versión de sus dependencias. 3. CLIENTE @FIRMA – Applet Cliente Nueva versión 3.4
  • 21. 3. CLIENTE @FIRMA MiniApplet  Applet cliente con funcionalidades de firma.  Gran estabilidad y fiabilidad.  Diferencias con el applet Cliente @firma: – Despliegue e integración simplificadas. – Mejor sistema de tratamiento de errores. – Sistema de filtros preconfigurado. – Políticas de firma preconfiguradas. – Permite la carga de ficheros de mayor tamaño. – Permite la generación de firmas trifásicas. – No dispone de funcionalidades de cifrado, generación de sobres digitales, firma masiva…  Desarrollo compatible con el Cliente de firma móvil y Autofirma para permitir la compatibilidad de entornos en los que los applets están restringidos o cuando el usuario no permite su ejecución.
  • 22. 3. CLIENTE @FIRMA – Miniapplet Nueva versión 1.3  Agrega nuevas funcionalidades: – Nuevos filtros prediseñados. – Configuración automática de la política de firma v1.9 de la AGE. – Iconos informativos en el diálogo de selección de certificados. – Escritura de log en disco para simplificar la notificación de incidencias. – Notificación de desfases de tiempo con el servidor. – Descarga de contenido remoto mediante JavaScript para firma.  Mejoras en los distintos módulos del proyecto. – Nuevas opciones de configuración en todos los formatos de firma. – Soporte para la firma de datos de mayor tamaño. – Mayor estabilidad en los procesos de firma trifásica. – Mejora de compatibilidad en los nuevos entornos.  Despliegue compatible con el Cliente @firma móvil y clientes nativos.
  • 23. 3. CLIENTE @FIRMA Interfaz StandAlone  Potente interfaz gráfica de escritorio para operaciones criptográficas.  Permite: – Firmas y multifirmas. – Multifirmas masivas de ficheros. – Cifrado simétrico. – Generación de sobre digitales.  Acceso a múltiples almacenes.  Múltiples formatos y algoritmos de firma.  Sistema de asistentes para la realización de operaciones.  Multiplataforma.  Ayuda detallada.
  • 24. 3. CLIENTE @FIRMA Interfaz StandAlone 1.3
  • 25. 3. CLIENTE @FIRMA – Standalone Situación actual  La versión 2.1 incorpora: – Interfaz renovada. – Sistema de perfiles de usuario. – Completamente accesible. – Mejor identificación de errores. – Integración con el driver 100% Java de DNIe. – Validación de estructura de firmas en local (no de certificados).  Se aprovecha de las mejoras realizadas en cada uno de los módulos del proyecto. – Compatibilidad el almacén de los últimos Firefox. – Compatibilidad con nuevas distribuciones de Linux. – Configuración de firmas PAdES-Basic y PAdES-BES – Etc.
  • 26. 3. CLIENTE @FIRMA – Standalone Interfaz StandAlone
  • 27. 3. CLIENTE @FIRMA SimpleAfirma  Interfaz gráfica de escritorio.  Funcionalidades: – Firma – Cofirma  Utiliza el repositorio de certificados del sistema.  Precarga de almacén para un uso más ágil.  Integrado con el driver Java de DNIe.  Multiplataforma.  Configuración individual para cada formato de firma.  Política de la AGE integrada.  Ayuda detallada.  Compatible con los despliegues del MiniApplet @firma v1.3 y superiores.
  • 28. 3. CLIENTE @FIRMA – SimpleAfirma
  • 29. 3. CLIENTE @FIRMA Componentes del applet Cliente @firma  El applet Cliente @firma está compuesto por:  Un applet con la funcionalidad global del cliente.  A los integradores se les ofrece:  Las bibliotecas JavaScript necesarias para la carga, configuración del cliente y el uso de las funcionalidades del cliente.  Páginas HTML con ejemplos de uso del cliente.
  • 30. 3. CLIENTE @FIRMA Construcciones ▶ Se dispone de tres construcciones del cliente, consistentes en tres distribuciones del núcleo con distintas funcionalidades. ▶ Construcción LITE: – Firmas/multifirmas CMS, CAdES y las funcionalidades de cifrado y sobre digital. ▶ Construcción MEDIA: – Capacidades de la construcción Lite y las firmas/multifirmas XAdES, XMLdSig, ODF, OOXML y factura electrónica. ▶ Construcción COMPLETA: – Capacidades de la construcción Media y las firmas/multifirmas PDF. La versión 3.4 del Applet Cliente @firma abandona el sistema de construcciones. Sólo se distribuye un JAR con todas las funcionalidades.
  • 31. 3. CLIENTE @FIRMA v3.4 Instalación y despliegue Nombre Descripción applet_afirma_3_4.jar Applet con las funcionalidades del Cliente @firma. constantes.js Fichero con los parámetros de configuración del cliente @firma. instalador.js Biblioteca con las interfaces para carga del cliente. firma.js Funciones de ayuda para la generación de firmas. cripto.js Funciones de ayuda para el uso de las funciones de cifrado. » Ficheros requeridos:
  • 32. 3. CLIENTE @FIRMA Configuración  Existen ciertos parámetros del cliente configurables mediante el fichero JavaScript “constantes.js”. Variable Por defecto Descripción base Directorio de la página de carga Ruta al directorio del BootLoader signatureAlgorithm SHA512withRSA Algoritmo de firma por defecto. signatureFormat CAdES Formato de firma por defecto signatureAlgorithm SHA512withRSA Algoritmo de firma por defecto.
  • 33. 3. CLIENTE @FIRMA Configuración Variable Por defecto Descripción showErrors false Indica si se deben mostrar al usuario los errores internos sufridos por el cliente. showMozillaSmartCa rdWarning false Indica si debe advertirse antes de la carga del almacén por defecto cuando el navegador sea Firefox que se inserten las tarjetas inteligentes en los lectores. showExpiratedCertifi cates true Indica si se deben mostrar los certificados caducados en el diálogo de selección de certificados para firma. locale Vacío Idioma por defecto de la aplicación CUSTOM_JAVA_ARG UMENTS Vacío Parámetros que deseamos que el applet establezca como propiedades del sistema durante la inicialización.
  • 34. 3. CLIENTE @FIRMA Notas sobre la configuración  Es recomendable dar valor siempre a “base”  El establecimiento de los valores por defecto “signatureAlgorithm”, “signatureFormat ” y “cipherAlgorithm” se produce al llamar al método “configuraFirma()” de firma.js o " configuraCifrador" de cripto.js.  El establecimiento del valor por defecto de "showErrors" se produce al invocar al método “initialize()” de la biblioteca crypto.js o firma.js.  El Cliente @firma v3.4 sólo dispone del gallego como idioma incorporado que pueda cargarse a través del parámetro "locale".
  • 35. 3. CLIENTE @FIRMA Componentes del MiniApplet  Los elementos que se distribuyen con el MiniApplet son:  miniapplet-full_x_y.jar  Applet con la funcionalidad global.  miniapplet.js  Biblioteca JavaScript para la carga y uso del MiniApplet.  miniapplet.html  Página web con ejemplo de carga y uso del MiniApplet.  A los integradores se les ofrece:  Manual del integrador.  Javadoc completo.  Javadoc sólo de la clase applet.
  • 36. 3. CLIENTE @FIRMA Applet Cliente @firma: Modelo a seguir  Forma de operar: 1. Toma de datos.  Recogemos todos los datos insertados por el usuario o tomados de la sesión.  Evitar la preconfiguración de variables. 2. Inicialización del applet de firma.  Reinicio de todas las variables mediante el método initialize(). 3. Configuración de todos los parámetros.  Concentración de la configuración. 4. Ejecución de la operación.  Firma, cifrado, ensobrado, operación masiva,… 5. Recuperación del resultado.  Obtención de firma/multifirma, datos cifrados, datos planos, sobres digitales…
  • 37. 3. CLIENTE @FIRMA Origen de datos  La selección de los datos puede realizarse de varias formas:  Datos: Se especifican en base 64 los datos a firma. Este método es útil cuando los datos se han generado como parte del procedimiento (formulario de datos, ficheros cargados en memoria,…).  Método del cliente: setData(String b64Data);  Ficheros: Se especifica la ruta, local o remota, de un fichero. Este método es útil cuando el ciudadano desea aportar documentos para un procedimiento (envió de documentación para trámites, escritos,…).  Método del cliente: setFileuri(String uri);  Hash: Se especifica en base 64 el hash de los datos que deseamos firmar. Este método es útil para generar firmas sin obligar a subir grandes cantidades de datos al servidor (carga de ficheros grandes, principalmente).  Método del cliente: setHash(String hash);
  • 38. 3. CLIENTE @FIRMA Configurar la operación  setSignatureAlgorithm(algorithm)  setSignatureFormat(format)  setSignatureMode(mode)  addExtraParam(key, value)  setSelectedCerticateAlias(alias)  setPolicy(identifier, description, qualifier, hashB64)  addRFC2254CertificateFilter(subFilter, issFilter, signerKeyUsage)  setMandatoryCertificate(mandatory)  setSignersToCounterSign(indexes)  setMassiveOperation(massiveOperation)  setOriginalFormat(original)  Etc.
  • 39. 3. CLIENTE @FIRMA Ejecución de la operación  boolean sign()  boolean coSign()  boolean counterSignIndexes()  boolean counterSignSigners()  boolean counterSignLeafs()  boolean counterSignTree()  boolean signDirectory()  String massiveSignatureData(String b64Data)  String massiveSignatureHash(String b64Hash)  String massiveSignatureFile(String fileuri)  boolean cipherData()  Etc.
  • 40. 3. CLIENTE @FIRMA Obtención del resultado  String getSignatureBase64Encoded()  String getSignatureText(String charsetName)  String getCipherData()  String getPlainData()  String getB64Data()  String getData()  setOutFilePath(String filename)  boolean saveSignToFile()  boolean saveDataToFile()  boolean saveCipherDataToFile(String filename)  boolean savePlainDataToFile(String filename)  Etc.
  • 41. 3. CLIENTE @FIRMA MiniApplet vs Applet Cliente  El almacén de certificados sólo puede modificarse durante la carga.  Todos las opciones de configuración de una operación se proporcionan como parámetros de la función que la ejecuta.  Cada función que ejecuta una operación criptográfica devuelve el resultado como valor de retorno.  Siempre se opera sobre datos en memoria.  Cualquier selección de fichero (carga o guardado) debe realizarla el usuario.  Sistema de filtro de certificados predefinidos.  Expansión de variables de configuración.  La gestión de errores se realiza mediante excepciones.
  • 42. 3. CLIENTE @FIRMA Comunidad  El Ministerio de Hacienda y Administraciones Públicas en colaboración con Cenatic ha convertido el Cliente @firma en un proyecto de software libre alrededor del cual se ha construido una comunidad de desarrolladores.  La comunidad permite que cualquier entidad contribuya al proyecto agregando nuevas funcionalidades, dando soporte a la comunidad (listas de distribución, foros,…), realizando baterías de pruebas, aportando equipos de pruebas (dispositivos móviles, máquinas virtuales en servidores,…)  En el proyecto participan tanto individuos a nivel personal como distintas empresas y entidades:
  • 43. 3. CLIENTE @FIRMA Comunidad  El proyecto Cliente @firma se desarrolla desde la forja del Centro de Transferencia Tecnológica (CTT) del Ministerio de Hacienda y Administraciones Públicas (MinHAP).  CTT: http://forja-ctt.administracionelectronica.gob.es/web/clienteafirma  El código se sincroniza a diario con GitHub para obtener una mayor visibilidad:  GitHub: https://github.com/ctt-gob-es/clienteafirma  La Universidad Jaume I ha puesto a disposición un sistema de integración continua para facilitar las pruebas, el empaquetado y la comprobación de la calidad del proyecto.  Jenkins: http://devel.uji.es/hudson/job/afirma-client/  Sonar: http://devel.uji.es/sonar/components/index/es.gob.afirma:afirma-client  El código de la aplicación se encuentra mavenizado para facilitar la construcción de los distintos artefactos.