|
Este artículo explica cómo validar certificados digitales usando TrustedX.
Descripción del proceso de validación de certificados digitales
El procedimiento de validación de certificados digitales se detalla en el estándar ITU-T x509v3 y más extensamente en la RFC 5055 de IETF. El resultado del procedimiento puede ser:
- Certificado válido. Se trata de un certificado emitido por una CA de confianza (obedece a las políticas de confianza definidas), que no ha caducado y no ha sido revocado
- Certificado inválido. Se ha emitido por una CA en la que no se confía, o bien ha expirado o ha sido revocado
- No se puede completar la validación
El procedimiento incluye:
- Validar todos los certificados de la cadena de certificación.
- Comprobar el nivel de confianza de las distintas CAs y VAs usadas para la comprobación del estado del certificado (p.e. respuestas ocsp de VAs de confianza, varias fuentes de confianza de CRLs, etc.).
- Analizar los datos que incluyen los certificados.
- Determinar los datos completos del propietario del certificado (p.e. nombre, apellidos, organización, tipo de persona, NIF/CIF/VAT, etc.).
Los procedimientos de construcción de la cadena de certificación, la validación del estado de los certificados digitales y la posterior interpretación de los datos que éstos incluyen son comunes para todas las aplicaciones. No obstante, la gestión de la confianza (¿cuáles con las CAs reconocidas en cada contexto corporativo?) es un aspecto crítico, que debe gobernarse de forma orquestada y auditable, conforme con las políticas de seguridad corporativas.
Implementación del proceso de validación de certificados con TrustedX
Desde la perspectiva de la aplicación, la implantación del proceso de validación de certificados consistirá única y exclusivamente en el consumo de un servicio de TrustedX. Por otra parte, es en la configuración de TrustedX dónde se aplican las políticas corporativas de validación de certificados (p.e. qué CAs se reconocen y cómo debe comprobarse el estado del certificado y qué datos deben interpretarse) y dónde se mantiene el nivel de confianza de las entidades de confianza.
De esta forma, la validación de un certificado digital consistirá en enviar un certificado a TrustedX delegando en éste la realización del diagnóstico del nivel de confianza y la ejecución de cualquier otra operación relacionada con el certificado digital (p.e. la obtención de los datos del certificado).
TrustedX admite diferentes arquitecturas de integración y sus servicios se pueden usar como SOAP/WS o REST/WS (consultar el howto “Arquitecturas de Integración con TrustedX”). Al igual que los servicios de verificación de firma electrónica se soportan las especificaciones DSS de OASIS (ver “Verificación de firmas electrónicas con TrustedX (PKCS#7/CMS, XML-DSig, PDF, S/MIME, CAdES, XAdES y WS-Security)”.
A continuación se muestra un ejemplo de solicitud de validación de un certificado X.509v3 usando el estándar DSS de OASIS, donde los certificados se incluyen en el elemento <dss:VerifyRequest>. Además del resultado de la validación, la respuesta incluirá un diagnóstico del nivel de confianza de los certificados (elementos <TrustInfo> y <TrustInfoSummary>):
<SOAP-ENV:Envelope Attributes>
<SOAP-ENV:Header>
...
</SOAP-ENV:Header>
<SOAP-ENV:Body Attributes>
<dss:VerifyRequest Profile=" urn:safelayer:tws:dss:1.0:profiles:certstatus:1.0:verify" Attributes>
<dss:OptionalInputs>…</dss:OptionalInputs>
<dss:SignatureObject>…</dss:SignatureObject>
</dss:VerifyRequest>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
En los elementos <TrustInfo> y <TrustInfoSummary>, TrustedX incluye un diagnóstico concreto del nivel de confianza que el sistema resuelve acerca de cada certificado (tantos <TrustInfo> como certificados). Este diagnóstico se expresa en un valor decimal 0 (de poca confianza), 1 (de confianza media), 2 (de confianza) o 3 (de confianza alta), y en un valor textual denominado etiqueta de confianza (por ejemplo, DNIe, FNMT Class2, Verisign Class3, etc.). Se incluye también (en el elemento <TrustInfoSummary>) un diagnóstico resumen en el que se expresa el menor grado de confianza obtenido (NOTA. La fortaleza global de una cadena es igual a la fortaleza del más débil de sus eslabones). De esta forma, las aplicaciones pueden ignorar cualquier indicio de complejidad asociada a la confianza de la firma (Certificados, CRLs, OCSPs, etc.) y fijarse única y exclusivamente en un valor decimal y una cadena de texto.
Ejemplos de de uso de TrustedX
En la sección de probar de esta web se puede encontrar una colección de ejemplos de código que muestran el funcionamiento de TrustedX en los aspectos de validación de certificados. |