SISTEMA INTEGRADO DE GESTIÓN DE EXPEDIENTES MODULAR (SIGM) CONFIGURACIÓN DE FIRMA DIGITAL POR ENTIDADES SIGM v3 Administración Local Soluciones
Control de versiones Versión Fecha aprobación Cambio producido Autor 01 10-05-2010 Versión inicial IECISA 02 03-10-2012 Actualización para SIGEM v3.0. Configuración del modo de securización de @firma por entidad y propiedad de proxy para especificar los hosts que no lo van a utilizar IECISA AL SIGM v3 Configuración de Firma Digital por Entidades 2
ÍNDICE 1 INTRODUCCIÓN... 4 1.1 VISIÓN GENERAL DEL SISTEMA... 4 1.2 FINALIDAD DEL DOCUMENTO... 4 1.3 DEFINICIONES Y ABREVIATURAS... 4 2 PRE-REQUISITOS... 5 3 TIPOS DE FIRMA Y SU CONFIGURACIÓN... 5 3.1 FIRMA BOUNCYCASTLE... 5 3.2 FIRMA PKCS7... 6 3.3 FIRMA MEDIANTE @FIRMA... 7 4 CONFIGURACIÓN POR DEFECTO... 11 5 CONFIGURAR LA FIRMA DE UNA NUEVA ENTIDAD... 11 AL SIGM v3 Configuración de Firma Digital por Entidades 3
1 Introducción 1.1 Visión general del sistema AL SIGM es la plataforma de Tramitación Electrónica del MINETUR, solución integral para la tramitación electrónica de los procedimientos administrativos, que fomenta la interoperabilidad entre administraciones mediante su adaptación a estándares de comunicación así como la reutilización de recursos e información pública. 1.2 Finalidad del documento El objetivo del presente documento es describir la configuración necesaria para la firma de documentos desde el servidor, detallando los diferentes parámetros que se pueden usar, en cada uno de los diferentes tipos de firma digital soportados por AL SIGM. También se comenta como se debe realizar esta configuración, para soportar varias entidades, de forma que cada entidad pueda usar su propio certificado para la firma. Esta firma digital se usará en el servidor para realizar el firmado de los justificantes que se entregan en las solicitudes telemáticas, y de los justificantes de firma generados en la gestión de expedientes. 1.3 Definiciones y Abreviaturas A continuación se expone una tabla con los diferentes acrónimos y abreviaturas utilizados a lo largo del documento, con su correspondiente definición. Acrónimo / Abreviatura MINETUR IECISA SIGM AL Definición Ministerio de Industria, Energía y Turismo Informática El Corte Inglés S.A. Sistema Integrado de Gestión de Expedientes Modular Administración Local AL SIGM v3 Configuración de Firma Digital por Entidades 4
2 Pre-requisitos Con el fin de garantizar que la información que contiene los justificantes es verídica y no ha sido modificado, se firman dichos documentos con un certificado de firma, correspondiente a la entidad emisora de dicho justificante. El certificado de firma, normalmente consiste en un fichero, con extensión p12 o pfx, protegido por contraseña. Para que cada entidad pueda firmar los justificantes con su propio certificado de firma, es necesario copiar estos certificados al servidor, en un directorio al que pueda acceder el servidor de aplicaciones. Por ejemplo: /home/sigem/sigem/certificados. Cada uno de estos ficheros, constituye el almacén de claves que contiene la clave privada que será utilizada por cada entidad para la firma de sus justificantes. 3 Tipos de Firma y su configuración En SIGEM hay actualmente implementados tres procesos de firma: BC, PKCS7 y @Firma. Para seleccionar qué tipo de firma se utiliza, hay que indicarlo en el fichero de configuración externalizado: SIGEM_Core/SIGEM_spring.properties En concreto, habría que modificar el parámetro FIRMA_ELECTRONICA_DEFAULT_IMPL. En el ejemplo siguiente se ve la validación configurada para utilizar PKCS7, que es la utilizada por defecto en SIGEM. FIRMA_ELECTRONICA_DEFAULT_IMPL=SIGEM_ServicioFirmaElectronica.PKCS7.API La configuración del tipo de firma, se especifica a través del directorio SIGEM_FirmaDigital, de la configuración externalizada. Además puede ser diferente para cada entidad, de forma que cada una puede usar su propio certificado para la firma, si se crean directorios para las distintas entidades. A continuación se muestran los ficheros a configurar para cada uno de los tipos de firma soportados: 3.1 Firma BouncyCastle Su configuración se encuentra en el fichero firmabcconfig.properties, ubicado en SIGEM_FirmaDigital/xxx, y consta de las siguientes propiedades: FIRMA_SIGEM_API_KEYSTORE: Ruta absoluta al almacén de claves que contiene la clave privada a usar en la firma realizada desde el servidor FIRMA_SIGEM_API_PASSWORD: Contraseña del almacén de claves anterior. AL SIGM v3 Configuración de Firma Digital por Entidades 5
FIRMA_SIGEM_API_ALIAS: Alias asociado a la clave privada a utilizar para la firma, en el almacén de claves. Esta información se puede obtener con la utilizada keytool incluida con java (keytool v list). FIRMA_SIGEM_API_KEYSTORE_TYPE: Tipo del almacén de claves anterior (JKS, JCEKS o PKCS12) Por defecto pkcs12 (extensión p12 o pfx). FIRMA_SIGEM_API_KEYSTORE_PROVIDER: Identificador del proveedor a usar para la carga del almacén de claves a usar para firmar. Normalmente BC. Ejemplo: FIRMA_SIGEM_API_KEYSTORE=/home/sigem/SIGEM/certificados/certificadoServid or.pfx FIRMA_SIGEM_API_PASSWORD=sigem FIRMA_SIGEM_API_ALIAS=be401672f8273e2117dd0a6c9ea4aa82_5f0c77b6-1a43-4c79-861f-b7ca120682f1 FIRMA_SIGEM_API_KEYSTORE_TYPE=pkcs12 FIRMA_SIGEM_API_KEYSTORE_PROVIDER=BC 3.2 Firma PKCS7 Su configuración se encuentra en el fichero firmapkcs7config.properties, ubicado en SIGEM_FirmaDigital/xxx, y consta de las siguientes propiedades: FIRMA_PKCS7_API_KEYSTORE: Ruta absoluta al almacén de claves que contiene la clave privada a usar en la firma realizada desde el servidor FIRMA_PKCS7_API_PASSWORD: Contraseña del almacén de claves anterior. FIRMA_PKCS7_API_ALIAS: Alias asociado a la clave privada a utilizar para la firma, en el almacén de claves. Esta información se puede obtener con la utilizada keytool incluida con java (keytool v list ). FIRMA_PKCS7_API_KEYSTORE_TYPE: Tipo del almacén de claves anterior (JKS, JCEKS o PKCS12) Por defecto pkcs12 (extensión p12 o pfx). FIRMA_PKCS7_API_KEYSTORE_PROVIDER: Identificador del proveedor a usar para la carga del almacén de claves a usar para firmar. Normalmente BC. Ejemplo: FIRMA_PKCS7_API_KEYSTORE=/home/sigem/SIGEM/certificados/certificadoServid or.pfx FIRMA_PKCS7_API_PASSWORD=sigem FIRMA_PKCS7_API_ALIAS=be401672f8273e2117dd0a6c9ea4aa82_5f0c77b6-1a43-4c79-861f-b7ca120682f1 FIRMA_PKCS7_API_KEYSTORE_TYPE=pkcs12 FIRMA_PKCS7_API_KEYSTORE_PROVIDER=BC AL SIGM v3 Configuración de Firma Digital por Entidades 6
3.3 Firma mediante @Firma Nota: Actualmente los servicios web de firma digital ofrecidos por @firma, están deprecados. Por esta razón, ya no es posible realizar el alta de nuevos certificados de firma en @firma. Sin embargo, sí se permite el alta de nuevas entidades, para habilitar la utilización del resto de servicios web ofrecidos por la plataforma (validación de certificado, validación de firma, etc). La configuración de este apartado, está dirigida a aquellas entidades que ya estuviesen usando los servicios de firma de @firma, con anterioridad. Su configuración se encuentra en el fichero firmaafirmaconfig.properties, ubicado en SIGEM_FirmaDigital/xxx, y consta de las siguientes propiedades: FIRMA_AFIRMA_API_PATH_SERVICES: URL parcial de acceso a los servicios web, del entorno de @firma a utilizar Nota: En caso de usar https://, hay que añadir los certificados SSL de la ruta de certificación completa, desde la autoridad certificadora raíz, al almacén de confianza del servidor, que normalmente será el cacerts de la JDK del servidor de aplicaciones. FIRMA_AFIRMA_API_SERVICE_FIRMAR: Nombre del servicio web de firma de @firma. Por defecto: FirmaServidor. Normalmente no será necesario modificar este parámetro. FIRMA_AFIRMA_API_SERVICE_VERIFICAR: Nombre del servicio web de validación de @firma. Por defecto: ValidarFirma. Normalmente no será necesario modificar este parámetro. FIRMA_AFIRMA_API_SERVICE_STORAGE: Nombre del servicio web de custodia de documentos de @firma. Por defecto: AlmacenarDocumento. Normalmente no será necesario modificar este parámetro. FIRMA_AFIRMA_API_SERVICE_REGISTRAR_FIRMA: Nombre del servicio web para el registro de firmas de @firma. Por defecto: FirmaUsuario2FasesF2. Normalmente no será necesario modificar este parámetro. FIRMA_AFIRMA_API_APP_ID: Identificador de la aplicación, dada de alta en @firma, que realiza la firma. FIRMA_AFIRMA_API_FIRMANTE: Identificador de la clave privada dada de alta en @firma, que se utilizará para firmar. FIRMA_AFIRMA_API_REF_ID: Actualmente no se usa. FIRMA_AFIRMA_API_ALGO_HASH: Algoritmo Hash que tiene que usar @firma para en la firma. FIRMA_AFIRMA_API_FORMATO: Formato de la firma usar por @firma FIRMA_AFIRMA_API_KEYSTORE: Almacén de claves donde se encuentra el certificado, que también está alojado en @firma. Se utiliza para poder obtener la información del certificado, sin necesidad de acceder a @firma. FIRMA_AFIRMA_API_PASSWORD: Contraseña del Almacén de claves anterior. AL SIGM v3 Configuración de Firma Digital por Entidades 7
FIRMA_AFIRMA_API_ALIAS: Alias del certificado/clave pública en el almacén de claves. Esta información se puede obtener con la utilizada keytool incluida con java (keytool v list ) FIRMA_AFIRMA_API_KEYSTORE_TYPE: Tipo del almacén de claves anterior (JKS, JCEKS o PKCS12) Por defecto pkcs12. FIRMA_AFIRMA_API_KEYSTORE_PROVIDER: Identificador del proveedor a usar para la carga del almacén de claves anterior. Normalmente BC. FIRMA_AFIRMA_API_CONFIG_FILE: Fichero de configuración del mecanismo de seguridad para invocar a los servicios web de @firma, localizado bajo el directorio SIGEM_FirmaDigital/xxx de la configuración externalizada. También es posible especificar una ruta absoluta a dicho fichero. FIRMA_AFIRMA_API_MESSAGES_HANDLER: Nombre del manejador de mensajes para la versión 5.0.1 o 5.2.1 de @firma. Es necesario descomentar el de la versión que se utilice y comentar el resto. Ejemplo: FIRMA_AFIRMA_API_PATH_SERVICES=http://afirma.redsara.es:8080/afirmaws/ser vices/ FIRMA_AFIRMA_API_SERVICE_FIRMAR=FirmaServidor FIRMA_AFIRMA_API_SERVICE_VERIFICAR=ValidarFirma FIRMA_AFIRMA_API_SERVICE_STORAGE=AlmacenarDocumento FIRMA_AFIRMA_API_SERVICE_REGISTRAR_FIRMA=FirmaUsuario2FasesF2 FIRMA_AFIRMA_API_APP_ID=mityc.sigem3 FIRMA_AFIRMA_API_FIRMANTE=mityc.sigem3.firmaservidor.firmante3 FIRMA_AFIRMA_API_REF_ID= FIRMA_AFIRMA_API_ALGO_HASH=SHA1 FIRMA_AFIRMA_API_FORMATO=PKCS7 FIRMA_AFIRMA_API_KEYSTORE=/home/sigem/SIGEM/certificados/certificadoServi dor.pfx FIRMA_AFIRMA_API_PASSWORD=sigem FIRMA_AFIRMA_API_ALIAS= ad3eeb1f5d176e9a6506cabbd77d373e_b4ac0c23-78c6-4849-b036-bb9c77932ac9 FIRMA_AFIRMA_API_KEYSTORE_TYPE=pkcs12 FIRMA_AFIRMA_API_KEYSTORE_PROVIDER=BC FIRMA_AFIRMA_API_CONFIG_FILE=AFirmaConfiguration.properties #FIRMA_AFIRMA_API_MESSAGES_HANDLER=SIGEM_ServicioFirmaElectronica.AFIRMA. API.Afirma501MessagesHandler FIRMA_AFIRMA_API_MESSAGES_HANDLER=SIGEM_ServicioFirmaElectronica.AFIRMA.A PI.Afirma521MessagesHandler Por otra parte, la configuración de securización de los servicios web, se encuentra en el fichero AFirmaConfiguration.properties, normalmente localizado en SIGEM_FirmaDigital/xxx/ y consta de las siguientes propiedades: timer: Tiempo máximo de espera en milisegundos security.mode: Mecanismo de securización a utilizar en la llamada a los servicios. Los valores posibles son None para ninguno, UsernameToken para usuario y contraseña y BinarySecurityToken para el firmado del mensaje SOAP de la petición. AL SIGM v3 Configuración de Firma Digital por Entidades 8
Atributos exclusivos si se usa UsernameToken: security.usertoken.user: Usuario dado de alta para la aplicación que realizará la firma a través de @firma. security.usertoken.password: Contraseña del usuario anterior. security.usertoken.passwordtype: Indica si se envía la password hasheada (PasswordDigest) o ser envía en texto plano (PasswordText). Atributos exclusivos si se usa BinarySecurityToken: security.keystore.location: Localización del almacén de claves a usar en la firma de las peticiones SOAP. security.keystore.type: Tipo del almacén de claves anterior (JKS, JCEKS o PKCS12) Por defecto pkcs12. security.keystore.password: Contraseña del almacén de claves anterior. security.keystore.cert.alias: Alias de la clave privada en el almacén de claves, a usar para firmar las peticiones SOAP. Esta información se puede obtener con la utilizada keytool incluida con java (keytool v list ) security.keystore.cert.password: Contraseña de la clave privada en el almacén de claves. En caso de que la clave privada no tenga contraseña, rellenar con la contraseña del almacén de claves (security.keystore.password). Atributos de configuración del proxy (Dejarlos vacíos si no se usa): http.proxyhost y http.proxyport: Nombre del host y puerto del proxy. http.proxyuser y http.proxypass: Usuario y contraseña de acceso al proxy http.nonproxyhosts: Lista de excepciones del proxy. Se trata de una lista de direcciones, separadas por el carácter de aquellos servidores que deben accederse directamente sin usar proxy. Se puede usar el carácter comodín *. Ejemplo: timer=60000 security.mode=none #security.usertoken.user=user #security.usertoken.password=pass #security.usertoken.passwordtype=passworddigest #security.keystore.location=/certificados/keystore.p12 #security.keystore.type=pkcs12 #security.keystore.password=clave #security.keystore.cert.alias={fe0d1993-06cf-403f-a1df-8a8a1078f667} #security.keystore.cert.password=clave http.proxyhost= http.proxyport= http.proxyuser= http.proxypassword= # Excepciones del proxy: a list of hosts that should be reached directly, bypassing the proxy. AL SIGM v3 Configuración de Firma Digital por Entidades 9
# This is a list of patterns separated by ' '. The patterns may start or end with a '*' for wildcards. # Any host matching one of these patterns will be reached through a direct connection instead of through a proxy. http.nonproxyhosts= AL SIGM v3 Configuración de Firma Digital por Entidades 10
En caso de necesitar configurar un proxy para la conexión con @firma, se recomienda configurar estos parámetros (http.proxyhost, http.proxyport, http.proxyuser, http.proxypassword, http.nonproxyhosts) a nivel de servidor de aplicaciones, en lugar de hacerlo en este fichero de configuración, porque aplican sobre todas las aplicaciones desplegadas. 4 Configuración por defecto En SIGEM se entrega una configuración por defecto para cada tipo de firma dentro de la carpeta de configuración externalizada: SIGEM_FirmaDigital/default/ En caso de no especificar ninguna configuración específica para una entidad, o que no se encontrase, se cargaría la configuración que se encuentre en la carpeta default. 5 Configurar la firma de una nueva entidad Para configurar la firma de una nueva entidad, serviría con: - Duplicar la carpeta default - Renombrarla al nombre de la entidad en cuestión (por ejemplo, 001) - Modificar dentro de esta carpeta, el fichero o ficheros de configuración correspondientes al servicio / tipo de firma digital que se va a utilizar. AL SIGM v3 Configuración de Firma Digital por Entidades 11