Resumen

  • RFC 9345 permite que el dueño de un certificado firme una credencial limitada. Quien posea su clave privada puede completar handshakes TLS/DTLS 1.3 compatibles, mientras el cliente sigue validando el certificado original y la identidad esperada.
  • Siete días son el máximo predeterminado, no una revocación individual inmediata. Si se copia la clave delegada, puede servir hasta el vencimiento; retirarla antes exige la medida más amplia de revocar el certificado firmante o controles externos al mecanismo.
  • La trazabilidad debe separar permiso del certificado, bytes y firma de la credencial, origen y distribución de la clave, alcance de edges, negociación del cliente, CertificateVerify, fallback, reanudación y rechazo posterior al vencimiento.

Un poder menor que el certificado y mayor que una configuración

La operación parece sencilla. La clave privada del certificado permanece en un firmante protegido. Este autoriza una nueva clave pública durante un plazo corto. El edge guarda la privada correspondiente y firma CertificateVerify sin consultar al backend en cada conexión.

El cambio reduce latencia y evita instalar la clave de larga duración en todos los frontales. También crea un poder real: durante su ventana, el edge puede presentarse ante clientes compatibles como el peer autorizado por el certificado. Pero ese poder no incluye renovar, cambiar nombres, tratar con la CA, emitir otra credencial ni gobernar a clientes antiguos.

Por eso Delegated Credential no es un certificado X.509 de vida corta. Su estructura se limita a una fecha derivada, un algoritmo esperado y un SubjectPublicKeyInfo. La firma incluye el certificado completo, el objeto, el algoritmo y un contexto diferente para rol servidor o cliente. La restricción no es retórica; impide convertir la delegación de una función en una sub-CA flexible.

La cadena de aceptación tiene varias puertas

Primero, el certificado terminal debe contener DelegationUsage y KeyUsage digitalSignature. Sin esa autorización explícita, el endpoint rechaza. Así se evita que un acceso temporal a una clave ordinaria o un oracle de protocolos viejos se convierta silenciosamente en capacidad de firmar credenciales futuras.

Después interviene la negociación. En autenticación de servidor, el cliente anuncia extensión 34 y sus algoritmos aceptables en ClientHello. Solo entonces puede llegar una credencial en el CertificateEntry del certificado terminal. En autenticación de cliente, el servidor debe anunciarla en CertificateRequest. Si el receptor no la pidió, la respuesta correcta es abortar, no interpretar intención.

El cliente conserva la validación PKI normal: construye la cadena y compara el certificado con la identidad que esperaba. Luego comprueba tiempo, máximo de vida, fecha del certificado, algoritmos, opt-in y firma del objeto. Finalmente usa la clave pública delegada para verificar CertificateVerify.

Así, una conexión aceptada contiene cuatro ámbitos. La CA respalda el certificado. El titular firma una delegación estrecha. El edge demuestra posesión de la clave corta. La aplicación decide qué puede hacer la conexión. La última decisión nunca aparece dentro de la credencial TLS.

La expiración no persigue copias

El límite normal es siete días desde el momento de validación y nunca más allá del certificado. Un perfil puede cambiarlo y un proveedor puede elegir menos. Cloudflare documenta que sus credenciales Keyless quedan inválidas dentro de 24 horas tras desactivar el servicio. Es un objetivo operativo más corto, no una regla universal.

Tampoco es instantáneo. RFC 9345 no añade revocación anticipada para una credencial concreta. Parar emisiones y borrar el objeto del inventario legítimo no desactiva una copia robada. Se espera al vencimiento o se revoca el certificado de origen, afectando un espacio mayor.

La hora amplía el control surface. valid_time se interpreta desde el notBefore del certificado y cada cliente aplica su reloj. Un edge puede creer que dispone de margen mientras clientes adelantados empiezan a fallar. Las renovaciones requieren solape, margen de reloj y telemetría de rechazo.

La reanudación añade otra persistencia. Si un peer almacena y vuelve a validar la cadena durante resumption, debería retener y revisar también la credencial. De lo contrario, una base delegada expirada puede sobrevivir dentro de una decisión anterior.

La custodia define cuántos nodos caen juntos

RFC 9677 contempla que el CDN downstream genere la pareja y entregue solo la pública para autorización. La privada no viaja, pero el enrollment de la pública debe vincularla al destinatario correcto. La alternativa es que el upstream entregue una clave privada cifrada junto a la credencial. Centraliza el proceso, a cambio de un ciphertext almacenable y una clave de transporte sensible.

El RFC desaconseja mandar privadas por la interfaz de metadatos. Si se hace, exige cifrado suficiente, aunque ese envelope no protege archivos históricos si la clave de descifrado se pierde en el futuro. Una credencial expirada ya no autentica conexiones nuevas; el archivo sigue existiendo.

Una misma privada puede cubrir muchos edges. Eso reduce renovaciones y multiplica el daño y la ambigüedad cuando una copia se filtra. Una credencial por nodo reduce alcance y mejora atribución, pero aumenta firma, distribución, inventario y riesgo de vencer sin sucesora. La granularidad correcta es la menor que pueda rotarse durante una avería parcial.

El cliente antiguo conserva otro camino de autoridad

El mecanismo requiere TLS/DTLS 1.3 y anuncio previo. Que IANA marque la extensión como recomendada prueba una asignación estable, no una adopción completa. Cloudflare cita soporte en Firefox 77 y posteriores, pero también advierte que hay pocos clientes y pocas CA capaces de emitir la extensión necesaria.

Por tanto, el fallback es arquitectura principal. Un cliente no compatible necesita firma remota o acceso al camino normal del certificado. La firma remota recupera dependencia y latencia por handshake; copiar la clave larga al edge recupera exposición; otro certificado recupera inventario y revocación.

BoringSSL prueba rechazo en TLS 1.2, separación de los dos algoritmos y selección de certificado normal cuando no encaja una credencial. NSS selecciona la privada delegada para firmar y la pública delegada para verificar. El hecho de que una opción esté configurada no demuestra que ese branch se ejecutó en producción.

El expediente de una sola credencial

Registrar fingerprint, número, nombres, vigencia, KeyUsage y DelegationUsage del certificado; hash de bytes y SPKI de la credencial; rol, algoritmos, vencimiento; autorizador y evento de firma con la clave larga.

Registrar si la privada nació en el delegate o fue entregada, canal de enrollment o cifrado, edges permitidos, acknowledgements y fan-out. En handshake, guardar soporte anunciado, selección, validaciones, CertificateVerify, versión y fallback.

El retiro necesita su propio rastro: fin de nuevas emisiones, borrado por nodo, último instante válido, decisión de revocar o no el certificado, tratamiento de reanudaciones y prueba negativa posterior. Un panel sin la credencial solo prueba ese panel. No recupera copias.

Fuentes