Validación a medida
Última revisión: 11-nov-2022
Como se explica en la introducción de esta guía, la configuración incluida en viafirma documents por defecto incluye la validación de TODOS los certificados involucrados en la firma.
Para incluir excepciones en esta configuración por defecto podrás hacer uso del fichero de configuración certificate_support.json donde podrás definir qué certificados o certificados contarán con un tratamiento distinto.
¿Cómo identificar a un certificado?
Para incluir un comportamiento individual podrás identificar al certificado digital por dos medios:
por su número de serie
Ejemplo:
"3118166592089583322": {
"subject": "Revoked certificate JUnit test",
"type": "Public Employee",
"revocationType": "CRL_CACHE"
}
por el tipo de certificado
Ejemplo:
"1.3.6.1.4.1.27395.6.2.4": {
"subject": "Revoked certificate JUnit test",
"type": "Public Employee",
"revocationType": "CRL_CACHE"
}
De esta segunda forma optamos por aplicar una regla a un conjunto de certificados, en concreto a todos aquellos que tengan una política de certificados con OID número 1.3.6.1.4.1.27395.6.2.4, según el ejemplo anterior.
¿Cómo incluir excepciones de validación por certificado?
Modificar el mecanismo de validación de certificados
revocationType:[validation_type]
donde podremos usar las siguientes opciones:
Tipo | Descripción |
---|---|
ONLINE_WITH_CACHE | mecanismo por defecto; primero se intenta validar vía OCSP, y si este mecanismo falla se intenta por CRL_CACHE. |
ONLINE | primero se intenta vía OCSP, y si este mecanismo falla se intenta vía CRL |
CRL_CACHE | solo se intenta mediante la consulta de la CRL previamente cacheada por el sistema |
CRL | solo se intenta mediante la consulta online de la CRL |
OCSP | solo se intenta mediante la consulta online del OCSP |
Ejemplo:
"3118166592089583322": {
"subject": "Revoked certificate JUnit test",
"type": "Public Employee",
"revocationType": "CRL_CACHE"
}
En el ejemplo de arriba, queremos que el certificado con serialnumber 3118166592089583322 se valide mediante CRL_CACHE, sin importar cuál sea el mecanismo establecido por defecto.
Esta configuración obedece a una decisión orientada a una alta concurrencia y en pro de un mejor rendimiento. Se trata de un mismo certificado utilizado, por ejemplo, para firmas desatendidas en procesos batch, por lo que no se considera necesario hacer una validación ONLINE del estado de revocación en cada operación de firma. LA CRL_CACHE se hace offline, y el sistema se encarga de actualizar la CRL cuando ésta haya caducado.
Modificar la fuente de validación del certificado
Por defecto la validación se hará haciendo uso de la fuente de validación informada en las propiedades de cada certificado. Normalmente cuentan con dos mecanismos: OCSP y/o CRL.
Si queremos incorporar una fuente de validación a medida, se podrá hacer incluyéndolo en la excepción, tal y como se explica a continuación:
"certificates": {
"3118166592089583322": {
"subject": "Revoked certificate JUnit test",
"type": "Public Employee",
"revocationType": "CRL_CACHE",
"crls": [
"http://192.168.100.43/myPrivatesubCA.crl",
"http://192.168.100.44/myPrivatesubCA.crl"
],
"ocsps": [
"http://192.168.100.45/myPrivateOCSP"
]
}
En el ejemplo anterior se fuerza la validación del certificado con serialnumber 3118166592089583322 mediante la CRL informada en dos URLs privadas. Esa validación "privada" no resta seguridad, ya que aunque a priori no parezca una fuenta oficial del prestador que emitió el certificado, intermamente el sistema verifica que la CRLs haya sido firmada por el mismo prestador que ha emitido el certificado que se intenta verificar.
Este tipo de configuración obedece a entornos donde cuentan con reglas muy restrictivas econ las salidas a internet, y cuentan con proxies que se encargan de exponer en direcciones locales recursos que han sido obtenidos mediante otros mecanismos automatizados ajenos a viafirma.
¿Se puede desactivar la validación?
No se permite desactivar la validación de certificados y documentos a nivel general. Si necesitas hacerlo debes realizar la siguiente configuración que afectará únicamente a los siguientes patrones de uso:
Identificar excepciones de validación
Tal como se explica en la sección "¿Cómo identificar a un certificado?" tendrás que identificar qué certificados o tipo de certificados van a contar con la excepción.
Una vez identificados, debes incluir la propiedad "validationDisabled", tal y como se muestra en el siguiente ejemplo:
"certificates": {
"3118166592089583322": {
"subject": "Revoked certificate JUnit test",
"type": "Public Employee",
"revocationType": "CRL_CACHE",
"validationDisabled": true
}
¿Dónde aplica esta excepción?
Para que la excepción "validationDisabled" aplique debes confirmar que no uses estándares de FORMATOS DE FIRMA que requieran validación, es decir, NO podrás usar los siguientes formatos de firma:
- XAdES -LT
- XAdES -LTV
- PAdES -LT
- PAdES -LTV
Es decir, si usas estos formatos de firma SIEMPRE se procederá a validar el certificado o certificados involucrados en la firma, aunque estés usando una excepción "validationDisabled".
El resto de formatos de firma podrán ser completados sin necesidad de validar.
results matching ""
No results matching ""