Certificados (…5): Revocación · RCO · Tema 4

¿Cómo sabe el navegador que un certificado con firma válida de la CA ya no debe aceptarse? Siglas ↓

PUNTO DE PARTIDALa Validation Authority de la T52

En el Ejemplo gráfico la CA envía “Invalid information” a una Validation Authority (VA), y la tienda “enquires about public key certificate validity” antes de fiarse del certificado de User A.

Esa flecha es la revocación. En la web real la VA se materializa de varias formas:

  • un fichero firmado que la CA publica: CRL
  • un servidor al que se pregunta por un certificado concreto: respondedor OCSP
  • una lista que el propio navegador descarga de su fabricante: CRLSets / CRLite

La firma K−CA(HASH(datos)) de la T43 sigue siendo correcta en un certificado revocado. Por eso hace falta una comprobación aparte.

CAemite y revoca VACRL · OCSP User AK+ · K− ABC shopverificador “Invalid information” certificado + firma ¿sigue siendo válido? resultado certificado (T47–51)

¿POR QUÉ?Motivos para revocar

K− comprometida

Han robado la clave privada del servidor. Quien la tenga puede hacerse pasar por él hasta que caduque el certificado.

Emisión indebida

La CA emitió a quien no debía. Puede pasar sin hackear a la CA, como en el caso de octubre de 2026.

Cambios administrativos

El dominio cambia de dueño, se cierra el servicio o el certificado incumple las normas de la CA/Browser Forum.

CASO REALCertificados no autorizados para Google

6 oct 2026 · Google Security Blog / Ars Technica

Los atacantes secuestraron los registros de tres ccTLD: .gh (Ghana), .sl (Sierra Leona) y .as (Samoa Americana). Cambiaron los registros DNS autoritativos y las delegaciones de dominios concretos y así superaron la validación de control de dominio (DV) automática. Obtuvieron certificados para “varios dominios de Google” y para otras marcas grandes.

Ninguna CA fue hackeada. Todas cumplieron las reglas. El eslabón débil está en el modelo de confianza: quien controla el DNS de un dominio puede conseguir un certificado válido para él.

Respuesta: Chrome bloqueó los certificados identificados mediante CRLSets y Google consiguió que las CA revocasen los de sus dominios. Aun así, advierte de que puede haber certificados sin detectar y de que la intervención de Chrome no protege a usuarios de otros navegadores.

Precedente: DigiNotar (2011), una CA comprometida que emitió un certificado falso para google.com, entre más de 200 dominios. Se usó contra al menos 300.000 usuarios vinculados a Irán.

Pinning previeneEl cliente fija el hash SPKI de K+. El certificado falso trae otra clave y se rechaza. Se usa sobre todo en apps y clientes propios.
CT detectaTodo certificado de confianza aparece en logs públicos (SCT dentro del certificado). Monitorizarlos avisa de emisiones inesperadas.
Revocación corrigeRetira la confianza a un certificado ya emitido. Esta página trata de cómo llega ese aviso al navegador y de cuándo no llega.

ANIMACIÓNMecanismos paso a paso

Elige un mecanismo y avanza con Siguiente o pulsa Reproducir. Alice es el navegador y Mallory el atacante, como en las T35–36.

En el modo proyector: → Espacio o el mando avanzan · ← retrocede · 1–5 mecanismo · O opción · F pantalla completa · Esc salir

→ / Espacio: siguiente · ← anterior · 1–5 mecanismo · O opción · F pantalla completa

RESUMENComparativa

CRLOCSPOCSP staplingCRLSets / CRLite
Quién consultaCliente descarga la listaCliente pregunta a la CAServidor pregunta; cliente recibe la grapaFabricante del navegador; cliente consulta en local
PrivacidadBuenaLa CA ve qué sitios visitasBuenaBuena
LatenciaDescarga grande, cacheableUn RTT extra por conexiónNinguna extraNinguna
FrescuraHasta nextUpdate (horas o días)AltaValidez de la grapa (horas o días)Horas (CRLite: cada 12 h)
Si falla la consultaSoft-fail habitualSoft-fail habitualSoft-fail salvo Must-StapleNo hay consulta en red que bloquear
CoberturaCualquier clienteCualquier clienteDepende de la config. del servidorSolo ese navegador (Chrome / Firefox)

TENDENCIASHacia dónde va la revocación

Enlace con la T42: el “¡OJO!” del campo Validity es hoy una herramienta de seguridad. Caducar pronto es una forma de revocar sin depender de que el aviso llegue.

EN EL CURSODónde vuelve a aparecer

LABORATORIOComprobarlo con openssl

1 · ¿Dónde publica la CA su información de revocación?

# Descargar el certificado del servidor openssl s_client -connect www.upv.es:443 -servername www.upv.es </dev/null 2>/dev/null \ | openssl x509 -out srv.pem # Buscar CRL Distribution Points y Authority Information Access (OCSP) openssl x509 -in srv.pem -noout -text | grep -A4 -E "CRL Distribution|Authority Information" openssl x509 -in srv.pem -noout -ocsp_uri

Prueba también con un sitio de Let’s Encrypt, por ejemplo cert.redescorporativas.es (el servidor del Seminario S1): verás la CRL pero ninguna URL OCSP.

2 · ¿Grapa el servidor la respuesta OCSP?

# -status pide stapling (extensión status_request) openssl s_client -connect www.upv.es:443 -servername www.upv.es -status </dev/null 2>/dev/null \ | grep -A12 "OCSP response" # "OCSP response: no response sent" → sin stapling # "Cert Status: good" → grapa válida

3 · Leer una CRL

# URL obtenida en el paso 1 curl -s -o ca.crl "http://URL-DE-LA-CRL" openssl crl -inform DER -in ca.crl -noout -text | head -30 # Last Update / Next Update → ventana de desactualización # Serial Number: ... → certificados revocados

4 · Pinning: hash SPKI de K+

openssl x509 -in srv.pem -pubkey -noout \ | openssl pkey -pubin -outform der \ | openssl dgst -sha256 -binary | base64 curl --pinnedpubkey "sha256//HASH_ANTERIOR=" https://www.upv.es/ -o /dev/null -w "%{http_code}\n" # Cambia una letra del hash: curl rechaza la conexión (error 90)

DEBATEPara clase

TESTComprueba lo aprendido

SIGLASResumen de siglas y términos

Certificados y PKI

PKI
Public Key Infrastructure. Infraestructura de clave pública: CA, RA, VA, certificados y listas de revocación.
CA
Certification Authority. Autoridad de certificación. Firma certificados con su K− y los revoca.
RA
Registration Authority. Autoridad de registro. Verifica la identidad del solicitante (T52).
VA
Validation Authority. Autoridad de validación. Responde si un certificado sigue siendo válido (T52).
X.509
Norma ITU-T X.509. Formato estándar de los certificados de clave pública (T42).
K+ / K−
Clave pública / privada. K−CA(HASH(datos)) es la firma de la CA; se verifica con K+CA.
SAN
Subject Alternative Name. Extensión con los nombres de dominio del certificado. Es la que comprueban los navegadores.
SPKI
Subject Public Key Info. Campo con la clave pública. Su hash es lo que se fija en el pinning.
RSA
Rivest–Shamir–Adleman. Algoritmo de clave pública usado para cifrar y firmar.
PEM / DER
Privacy-Enhanced Mail / Distinguished Encoding Rules. Formatos de fichero: PEM es texto Base64, DER es binario (T46).

Revocación

CRL
Certificate Revocation List. Lista firmada por la CA con los números de serie revocados.
CRL DP
CRL Distribution Points. Extensión del certificado con la URL donde descargar la CRL.
OCSP
Online Certificate Status Protocol. Consulta a la CA por el estado de un certificado: good, revoked o unknown.
AIA
Authority Information Access. Extensión con la URL del respondedor OCSP y la del certificado de la CA.
Stapling
OCSP stapling. El servidor adjunta (“grapa”) en el handshake la respuesta OCSP firmada por la CA.
Must-Staple
TLS Feature: status_request. Extensión que obliga al cliente a rechazar la conexión si no llega la grapa.
CRLSets
Listas de Chrome. Selección de revocaciones que Google distribuye a Chrome con sus actualizaciones.
CRLite
Listas de Firefox. Todas las revocaciones comprimidas en filtros que Firefox descarga cada 12 h.
Soft-fail / hard-fail
Fallo abierto / cerrado. Si la comprobación falla: aceptar el certificado o rechazar la conexión.

Emisión y transparencia

DV
Domain Validation. Validación de dominio: la CA solo comprueba que controlas el dominio.
DCV
Domain Control Validation. La comprobación concreta del control del dominio. Su resultado se puede reutilizar un tiempo.
ACME
Automatic Certificate Management Environment. Protocolo de emisión automática (Let’s Encrypt, certbot). Retos http-01 y dns-01.
LE
Let’s Encrypt. CA gratuita y automatizada. Apagó su OCSP en 2025.
CAA
Certification Authority Authorization. Registro DNS que dice qué CA, cuenta ACME y método pueden emitir para el dominio.
CT
Certificate Transparency. Logs públicos donde se registran todos los certificados emitidos.
SCT
Signed Certificate Timestamp. Prueba firmada de que el certificado está en un log de CT. Va dentro del certificado.
CA/B Forum
CA/Browser Forum. Organismo de CA y navegadores que fija las reglas de emisión (Baseline Requirements).
SC-063 / SC-081
Ballots del CA/B Forum. SC-063: OCSP opcional y CRL obligatoria. SC-081: validez máxima de 200 → 100 → 47 días.
HPKP
HTTP Public Key Pinning. Pinning en cabecera HTTP para navegadores. Abandonado por riesgo de dejar sitios inaccesibles.

Red y protocolos

TLS
Transport Layer Security. Protocolo seguro sobre TCP (HTTPS). El certificado se envía en su handshake.
MITM
Man-in-the-Middle. Atacante en medio de la comunicación (Mallory, T36).
DNS
Domain Name System. Sistema de nombres. Quien lo controla puede superar la validación DV.
ccTLD
country-code Top-Level Domain. Dominio de primer nivel de un país: .es, .gh, .sl, .as.
DNSSEC
DNS Security Extensions. Firma las respuestas DNS para que no se puedan falsificar.
MFA
Multi-Factor Authentication. Autenticación con varios factores. Aquí, en la cuenta del registrador del dominio.
RTT
Round-Trip Time. Tiempo de ida y vuelta. OCSP añade uno por conexión.
HTTP / URL
Hypertext Transfer Protocol / Uniform Resource Locator. CRL y OCSP se consultan por HTTP en claro: la firma de la CA protege la integridad.
VPN / IPsec / IKE
Virtual Private Network / IP Security / Internet Key Exchange. Túnel cifrado; IKE negocia las claves y autentica con certificados (Tema 6).
RFC
Request for Comments. Documentos de estándares de Internet del IETF (p. ej. RFC 8657 para CAA).
NAC / VLAN
Network Access Control / Virtual LAN. Control de acceso a la red y redes locales virtuales (pregunta de debate).