De la estructura de claims a la firma, el cifrado, la distribución de claves, la rotación y la validación segura en API Gateways
Edición en profundidad - material de estudio y consulta profesional
Por João Ricardo Dutra••Material íntegro
Criptografía, contexto y gobernanza para seguros
Figura de apertura: los seguros dependen del cifrado, el contexto, el destinatario y la gobernanza de claves.
Principio central
La firma protege la integridad y el origen; el cifrado protege la lectura. Ninguno de ellos reemplaza la validación de issuer, audience y propósito.
Edición en profundidad: material de estudio y consulta profesional.
Presentación del capítulo
El capítulo anterior presentó OpenID Connect y mostró que los de identificación, , de cierre de sesión y otros artefactos pueden usar Web como formato. Sin embargo, reconocer tres segmentos separados por puntos no es suficiente para intercambiar de forma segura. Es necesario comprender la familia , la diferencia entre y protección criptográfica, la selección de algoritmos, la distribución de claves y las validaciones específicas para cada perfil.
es un marco para el transporte de . protege el contenido con una firma digital o un código de autenticación de mensajes. protege la confidencialidad mediante cifrado autenticado. representa una clave en ; un publica conjuntos de claves; registra algoritmos e identificadores. Estos componentes se combinan, pero no son sinónimos. Un puede ser un , un o una estructura anidada.
En las empresariales, los errores más graves rara vez se producen en la decodificación de . Surgen cuando el consumidor acepta algoritmos imprevistos, elige claves utilizando datos que no son de confianza, ignora al issuer o la audience, mezcla y , reutiliza la misma regla para diferentes tipos de o mantiene la rotación de claves incompatible con las cachés y la vida útil del .
Este capítulo profundiza en serializaciones compactas y , protegidos, , , , thumbprints, rotación, , anidados y perfiles de . También incorpora las mejores prácticas de 8725 y la actualización de 9864 sobre identificadores de algoritmos completamente especificados, además de relacionar los conceptos con Axway , Azure Management y bibliotecas de validación.
Cómo estudiar este capítulo
Para cada ejemplo, responda en orden: cuál es el tipo de objeto, quién lo emitió, quién es el destinatario, qué algoritmo está permitido, de dónde proviene la clave, qué bytes se protegieron y qué deben validarse. Esta secuencia reduce la posibilidad de aceptar un solo porque su firma parece válida.
Objetivos de aprendizaje
Distinguir , , , , , y .
Explique , , y el impacto de la representación exacta de bytes.
Interpretar registradas, públicas y privadas sin confundir presencia con confianza.
Describir la serialización compacta y la serialización .
Diferenciar firma digital y MAC, incluidas las implicaciones de no repudio y distribución de claves.
Restrinja los algoritmos por lista de permitidos y evite la confusión de algoritmos.
Utilice , , y de forma segura y contextual.
Interprete los , EC, OKP y oct y separe el material público del privado.
Planifique , , rotación, transferencia y eliminación de claves.
Explique los parámetros y en y la estructura de cinco partes.
Diseñe anidados y decida cuándo firmar, cifrar o utilizar ambos.
Valide los de forma criptográfica, temporal y semántica.
Aplique el perfil para acceder a y distinguir otros tipos de .
Diagnostique fallas de firma, audience, issuer, , caché, reloj y cifrado.
Estructura del capítulo
18.1 La familia y sus responsabilidades
18.2 , y canónico
18.3 : y sobre de seguridad
18.4 registradas, públicas y privadas
18.5 : signing input y serializaciones
18.6 Firma digital y MAC
18.7 Algoritmos, allowlists y 9864
18.8 , , y
18.9 : anatomía y tipos clave
18.10 y distribución de claves
18.11 , thumbprints y certificados
18.12 Rotación, y retirada de claves
18.13 : , y Content Encryption Key
18.14 Serializaciones de y destinatarios múltiples
18.15 anidado y orden de protecciones
18.16 de validación segura
18.17 Perfil para 2.0
18.18 Otros perfiles
18.19 Proof-of-possession y cnf
18.20 Aplicación en , Axway y Azure
18.21 Amenazas y hardening
18.22 Privacidad, y minimización
18.23
18.24 Estudios de casos y laboratorios
Resumen, lista de verificación, ejercicios, glosario y referencias.
Figura 1 - es una familia de estructuras; es sólo una parte del modelo.
18.1 La familia y sus responsabilidades
Object Signing and Encryption es el conjunto de especificaciones que definen estructuras para firma, autenticación, cifrado y representación de claves. El objetivo es transportar objetos de seguridad de forma que sea compatible con , y aplicaciones que ya utilizan . La familia se dividió en documentos para separar la estructura, los algoritmos, las claves y la semántica de las .
define un y reglas de procesamiento. define cómo proteger una secuencia de bytes con una firma digital o MAC. define cifrado autenticado y gestión de claves de contenido. define cómo representar claves criptográficas en , mientras que asocia identificadores como RS256, ES256 o A256GCM con operaciones concretas.
Un comercialmente llamado suele ser un en serialización compacta, pero esta es una convención frecuente, no una equivalencia formal. También hay cifrados como , cuya carga útil no es un y objetos con múltiples firmas o destinatarios que utilizan la serialización .
Tabla 1 - Cada componente de JOSE resuelve una responsabilidad diferente.
Estructura
Protección o función
Ejemplo de uso
JWT
Conjunto de claims con semántica definida por un perfil.
ID token, access token, aserción de cliente o token de cierre de sesión.
JWS
Integridad y autenticación por firma o MAC.
Token firmado y webhook firmado.
JWE
Confidencialidad e integridad a través de cifrado autenticado.
Token con claims confidenciales destinados a un cliente específico.
JWK/JWKS
Representación y publicación de claves.
Claves públicas del issuer para su validación.
JWA
Identificadores de algoritmos y parámetros.
RS256, ES256, A256GCM y RSA-OAEP-256.
18.2 Representación , y
transforma bytes en caracteres seguros para reemplazando los caracteres + y / y normalmente eliminando el relleno =. La operación no cifra, no comprime y no proporciona integridad. Cualquiera que reciba un compacto puede decodificar el encabezado y la carga útil, incluso si no tiene la clave de firma.
Antes de codificar, los objetos se convierten a bytes . Los espacios, el orden de los miembros, los escapes y las formas numéricas pueden producir diferentes secuencias de bytes incluso cuando dos representaciones parecen semánticamente equivalentes. En , la firma cubre la representación exacta utilizada en la entrada de firma; una biblioteca no debe decodificar la carga útil y volver a serializarla para verificar la firma.
permite una flexibilidad que requiere validación defensiva. Los nombres de miembros duplicados, los números fuera del rango esperado, las cadenas con normalización diferente y las representaciones múltiples pueden provocar interpretaciones diferentes entre bibliotecas. El perfil que utiliza debe definir , tipos y límites aceptados, rechazando objetos ambiguos.
Exemplo conceitual - transformação do header
header JSON: {"alg":"RS256","typ":"JWT","kid":"key-2026-07"}
BASE64URL(UTF8(header))
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImtleS0yMDI2LTA3In0
Base64url e apenas codificacao. O conteudo permanece legivel.
Error recurrente
Ocultar un en el navegador, en un encabezado o en un registro no equivale a proteger la confidencialidad. Un firmado sigue siendo legible. Para evitar que se lea el contenido, se requiere u otro canal adecuado y protección de almacenamiento.
18.3 : y sobre de seguridad
Una es una afirmación representada por un par nombre-valor. El es un objeto que reúne estas . El formato no determina automáticamente quién puede emitir la , cuánto tiempo es válida o cómo debe interpretarse. Estas reglas pertenecen al perfil y a la relación de confianza entre issuer y destinatario.
puede estar protegido por o . En un , las son legibles, pero los cambios se pueden detectar cuando la firma se verifica correctamente. En un , el contenido está cifrado y autenticado. En ambos casos, el destinatario aún necesita validar las reglas específicas del issuer, la audience, la hora, el tipo y la aplicación.
Las no deben llevar un estado arbitrario solo porque el admite . Los grandes aumentan el uso del ancho de banda, el tamaño del encabezado, la presión sobre los y el riesgo de exposición. La emisión debe priorizar datos estables necesarios para la decisión, utilizando identificadores de información que deba ser consultada en tiempo real.
Tabla 2 - Los claims registrados tienen una semántica general, pero el perfil define la obligación concreta.
Claim
Semántica general
Validación típica
iss
Identificador del issuer.
Comparación precisa con el issuer habilitado.
sub
Identificador del asunto en el remitente.
Interpretar junto con este y el perfil.
aud
Destinatario o conjunto de destinatarios.
Contiene la audience de la API o del cliente.
exp
Instante tras el cual el token no debería ser aceptado.
Reloj sincronizado y pequeña tolerancia.
nbf
Instante antes del cual no se debe aceptar el token.
Rechazar el uso temprano fuera de tolerancia.
iat
Tiempo de emisión.
Verifique las políticas de plausibilidad y edad.
jti
Identificador de token único.
Reproducir detección o auditoría cuando el perfil lo requiera.
18.4 registradas, públicas y privadas
Los registrados tienen nombres y semántica documentados en el registro de la , como iss, sub, aud, exp y jti. No son obligatorios en todos los , pero perfiles como y 9068 especifican cuáles deben aparecer. El uso correcto depende de respetar el tipo previsto y el propósito del perfil.
Los públicos utilizan nombres resistentes a colisiones, generalmente registrados o basados en un controlado por la organización. Los privados son acuerdos locales entre el issuer y el consumidor, como roles, teniente_id o límite_transacción. Son útiles, pero pueden chocar entre ecosistemas y cambiar de significado cuando un cruza los límites organizacionales.
Una de autorización no debe aceptarse simplemente porque existe. El resource server necesita conocer el issuer, el perfil, el espacio de nombres, el tipo y la política que la produce. Por ejemplo, los roles emitidos por un directorio pueden representar grupos administrativos en lugar de permisos de dominio. La aplicación debe transformar confiables en decisiones locales explícitas.
Diseño de
Prefiere nombres estables, tipos simples y significado documentado. Evite incluir secretos, datos personales innecesarios, listas enormes de grupos u objetos comerciales que cambien durante la validez del .
Figura 2: la firma cubre el encabezado protegido y la carga útil codificada, unidos por un punto.
18.5 : signing input y serializaciones
Compact Serialization tiene tres partes: encabezado protegido, carga útil y firma. Los dos primeros están codificados en y unidos por un punto para formar la entrada de firma. El algoritmo utiliza este valor y la clave adecuada para producir la tercera parte. La verificación reconstruye los mismos bytes y valida la operación criptográfica.
La serialización representa el objeto como y permite múltiples firmas en la misma carga útil. La forma aplanada contiene una firma; la forma general contiene una colección. Este modelo es útil cuando diferentes organizaciones o claves necesitan firmar el mismo contenido, aunque aumenta la complejidad de las políticas y el procesamiento.
7797 permite cargas útiles no codificadas en a través del parámetro b64 en el encabezado protegido y el uso de . Esta opción es especializada y puede mejorar la integración con contenido resaltado, pero requiere soporte explícito y cuidado de los caracteres que interfieren con la serialización compacta. Las comunes deberían preferir el comportamiento predeterminado que ofrecen las bibliotecas maduras.
Los algoritmos asimétricos utilizan una clave privada para firmar y una clave pública para verificar. El issuer mantiene bajo control la clave privada y distribuye únicamente material público. Este modelo facilita la validación por múltiples y reduce la capacidad de los validadores para emitir , ya que tener la clave pública no permite crear nuevas firmas.
Los algoritmos MAC como utilizan el mismo secreto para producir y verificar código. Cada componente capaz de validar también puede generar un indistinguible. En arquitecturas con muchos servidores de recursos, el intercambio de secretos aumenta el impacto del compromiso y dificulta la asignación de qué componente produjo un .
La firma digital no crea automáticamente un no repudio legal. Se requieren registros, control de claves, certificación, políticas, auditorías y contexto. Asimismo, verificar la firma sólo prueba que los bytes corresponden a una clave aceptada; no prueba que el esté vigente, destinado a esa o autorizado para la operación.
Tabla 3: La elección del modelo cambia los límites de confianza y respuesta a incidentes.
Modelo
Distribución
Implicación operativa
Firma asimétrica
Privado en el issuer; público en validadores.
Los validadores no pueden emitir tokens. Facilita JWKS y la rotación.
MAC simétrica
Mismo secreto en issuer y validadores.
Cualquier validador comprometido puede crear tokens.
Firma con HSM/KMS
Operación privada en módulo controlado.
Reduce la exposición clave y mejora la auditoría, con costo y dependencia.
18.7 Algoritmos, allowlists y 9864
El encabezado declara el algoritmo utilizado, pero no debe controlar por sí solo la decisión. El consumidor debe tener una lista de permitidos configurada por perfil, issuer y type. Si la aplicación acepta cualquier algoritmo anunciado, puede producirse confusión, degradación del algoritmo o uso de una clave operativa incompatible.
Es necesario evaluar los algoritmos para determinar el conjunto completo de parámetros, tamaño de clave, biblioteca, requisitos reglamentarios e interoperabilidad. RS256 sigue siendo ampliamente compatible; PS256 utiliza -PSS; ES256 utiliza con P-256 y . Los algoritmos modernos basados en EdDSA deben considerar actualizaciones de identificadores completamente especificados y soporte real del ecosistema.
9864, publicado en 2025, diferencia los algoritmos completamente especificados de aquellos que dependen de parámetros externos para determinar el funcionamiento. Actualiza los registros y desaprueba los identificadores polimórficos en situaciones cubiertas por la especificación. Las nuevas arquitecturas deben consultar el registro actual de la y evitar negociar nombres ambiguos sólo por compatibilidad histórica.
Tabla 4: El algoritmo debe elegirse según la política, no según el contenido no confiable del token.
Algoritmo
Familia
Atención
RS256
RSA PKCS#1 v1.5 con SHA-256
Amplio apoyo; Utilice suficiente llave y rotación gobernada.
PS256
RSA-PSS con SHA-256
Relleno probabilístico; Confirme el soporte de todos los componentes.
ES256
ECDSA P-256 con SHA-256
Firma compacta; requiere la implementación correcta de ECDSA.
HS256
HMAC con SHA-256
El secreto compartido convierte a los validadores en issuers potenciales.
ninguno
Sin protección criptográfica
No acepte tokens de seguridad.
EdDSA / nombres actualizados
curvas de edward
Consulte RFC 9864 y el registro de IANA para obtener identificador y soporte actual.
regla de seguridad
Configure el algoritmo esperado junto al issuer y el type. No derive la lista de permitidos del propio encabezado y no reutilice la misma clave en familias de algoritmos incompatibles.
18.8 , , y
El parámetro de tipo declara el tipo de objeto para la aplicación. No cambia el cifrado, pero ayuda a evitar confusión entre con diferentes propósitos. 8725 recomienda tipificación explícita y reglas mutuamente excluyentes. El perfil del 9068 utiliza at+ , mientras que los de identificación suelen utilizar o dependen del contexto .
describe el tipo de carga útil, siendo especialmente útil en objetos anidados. Un que contiene un firmado puede usar igual a . es un consejo para seleccionar una clave entre varias; no es un identificador global, no prueba la propiedad y puede repetirse entre issuers.
enumera los parámetros del que deben entenderse para procesar el objeto. Si se desconoce un parámetro crítico, el consumidor debe rechazar el . Ignorar destruye la capacidad de las extensiones para modificar la semántica de seguridad. Los que influyen en la operación criptográfica deben estar en el protected , no solo en campos desprotegidos de la serialización .
Tabla 5: Los headers guían el procesamiento, pero requieren una política local.
Encabezado
Función
Validación
typ
Tipo de objeto para la aplicación.
Compare con el perfil esperado y reglas separadas.
cty
Tipo de contenido protegido.
Uso en contenido anidado y no obvio.
kid
Seleccione la clave del candidato.
Resolver sólo dentro del issuer de confianza.
crit
Extensiones que deben entenderse.
Rechazar si algún artículo no es compatible.
jku/x5u
URL de claves o certificados.
No busque libremente tokens que no sean de confianza.
18.9 : anatomía y tipos clave
La clave web representa material criptográfico con parámetros definidos por kty. Una clave pública incluye n y e; una clave EC incluye crv, xey; una clave OKP incluye curva y coordenada pública; una clave simétrica oct incluye k. Los parámetros privados como d, p, q o k no deberían aparecer en públicos.
uso indica un propósito amplio, como sig o . key_ops enumera operaciones específicas, como verificar, firmar, cifrar o descifrar. puede restringir la asociación con un algoritmo. Estos campos deben ser coherentes entre sí y con la política de aplicación; no deberían ampliar automáticamente lo que la clave puede hacer.
Las claves deben tener origen, titular, fecha de activación, fecha de retiro, finalidad y procedimiento de revocación. Representar una clave en no elimina los controles secretos. Las claves privadas deben permanecer en , , bóveda o almacenamiento seguro y cargarse únicamente mediante procesos autorizados.
Un público debe contener únicamente parámetros públicos. La presencia de d, p, q, dp, dq, qi o k puede exponer una clave privada o un secreto simétrico y requiere una respuesta inmediata al incidente.
18.10 y distribución de claves
Un conjunto de claves web contiene la propiedad de claves con una lista de . Los proveedores de identidades publican para que los clientes y servidores de recursos verifiquen las firmas. El debe obtenerse mediante una configuración confiable o metadata vinculados al issuer, nunca mediante una arbitraria proporcionada por el .
El consumidor mantiene el caché para evitar la dependencia de la red en cada solicitud. La caché debe respetar las políticas , tener un límite de tamaño, tiempo de espera, actualización controlada y respaldo seguro. En caso de una falla temporal del terminal, las claves conocidas pueden seguir siendo válidas según la política, pero los sin clave no deben aceptarse solo para preservar la disponibilidad.
La validación primero debe corregir el issuer permitido, encontrar el conjunto correspondiente y luego usar , kty, y key_ops para filtrar candidatos. Un caché global indexado solo por permite colisiones entre tenants y issuers. El índice seguro incluye al menos el issuer y el identificador de clave.
Tabla 6: La distribución de claves es parte de la disponibilidad y seguridad del token.
Componente
Responsabilidad
Fallo típico
Configuración del issuer
Establezca un dominio y un perfil de confianza.
Token de otro tenant o entorno aceptado.
jwks_uri
Publicar las claves públicas actuales.
La URL cambió o no está disponible.
caché
Reduzca la latencia y la dependencia por solicitud.
Nueva clave no sembrada o antigua clave eterna.
Selección por kid
Elija un candidato del conjunto de confianza.
Colisión global o kid inexistente.
Actualizar
Conjunto de búsqueda cuando sea necesario.
Tormenta de actualización inducida por tokens maliciosos.
18.11 , thumbprints y certificados
es un identificador elegido por el issuer y puede ser una cadena opaca. Facilita la rotación, pero no tiene unicidad global. Thumbprint, definido por 7638, calcula un resumen sobre una representación canónica de los miembros requeridos de la clave y produce un identificador derivado del propio material público.
x5c puede transportar una cadena de certificados ; x5t y x5t#S256 llevan thumbprints de certificados. Cuando se utilizan certificados, el consumidor debe validar la cadena, el uso de claves, la validez y la confianza según el perfil. Comparar solo un thumbprint recibido en el no crea un ancla confiable.
jku y x5u apuntan a recursos remotos. Seguir estas sin lista de permitidos crea , acceso a redes internas y transferencia de claves. En las plataformas empresariales, los de metadata y deben estar preconfigurados y resueltos a través de canales controlados y monitoreados.
Figura 3: La rotación segura publica la nueva clave antes de usarla y conserva la anterior durante la transferencia.
18.12 Rotación, y retirada de claves
La rotación planificada comienza con la publicación anticipada de la nueva clave. Una vez que los cachés han tenido la oportunidad de actualizarlo, el issuer comienza a firmar nuevos con el nuevo . La clave anterior permanece publicada hasta que todos los firmados por ella hayan caducado, además de las tolerancias de reloj, las colas, los reintentos y el retraso de propagación.
Quitar la clave inmediatamente después de cambiar el firmante hace que fallen los que aún son válidos. Mantener las claves indefinidamente reduce la capacidad de revocación y amplía la superficie. La ventana debe calcularse en función de la vida útil máxima del , la actualización, el -Control, los tiempos de actualización y el comportamiento de los componentes desconectados.
Cuando aparece un desconocido, el validador puede actualizar el una vez dentro de los límites y utilizar la fusión para evitar múltiples búsquedas simultáneas. Los aleatorios no deberían generar una solicitud por intento. La limitación de velocidad, la caché negativa corta y el disyuntor protegen el de metadata y la propia .
En caso de compromiso clave, la prioridad puede requerir el retiro inmediato y la invalidación de los , aceptando una indisponibilidad controlada. El plan debe definir la detección, rotación de emergencia, comunicación a los consumidores, revocación, análisis de emisión indebida y restablecimiento de la confianza.
Ecuación operativa
El tiempo mínimo de superposición debe considerar: vida máxima del + tolerancia del reloj + retraso de la caché + colas y reintentos. Utilice métricas reales, no solo el valor de experiencia nominal.
Figura 4: separa la administración de claves y el cifrado de contenido autenticado.
18.13 : , y Content Encryption Key
utiliza una Content Encryption Key, o , para cifrar plaintext con el algoritmo de cifrado autenticado indicado por . El parámetro define cómo se protege, transporta, deriva o comparte esta con el destinatario. Por lo tanto, y tienen responsabilidades diferentes y ambas deben estar permitidas por la política.
En -OAEP-256, la se cifra con la clave pública del destinatario. En dir, la clave simétrica compartida se utiliza directamente como . En ECDH-ES, una operación de acuerdo de claves deriva material de claves elípticas. La elección cambia la distribución de claves, el secreto directo, la interoperabilidad y el riesgo de compromiso.
Algoritmos como el A256GCM brindan confidencialidad e integridad en una única operación autenticada. IV o deben cumplir con los requisitos del algoritmo y no pueden reutilizarse bajo la misma clave cuando esto comprometa la seguridad. La etiqueta de autenticación debe validarse antes de publicar cualquier texto sin formato en la aplicación.
El cifrado no elimina la necesidad de una firma cuando el destinatario necesita verificar la autoría por separado. Un demuestra que la etiqueta es válida según la clave de cifrado, pero la identidad del productor depende del mecanismo de gestión de claves y del perfil. Los anidados pueden combinar firma y cifrado.
Tabla 7: JWE combina administración de claves, cifrado de contenido y metadata protegidos.
Parámetro
Ejemplo
Responsabilidad
alg
RSA-OAEP-256
Proteger o establecer la CEK para el destinatario.
enc
A256GCM
Cifre el contenido y produzca una etiqueta de autenticación.
cremallera
DEF
Comprimir antes del cifrado; utilizar sólo con análisis de riesgos.
kid
clave-destinataria-2
Seleccione la clave de descifrado dentro del dominio confiable.
cty
JWT
Indique que el texto sin formato es un JWT anidado.
18.14 Serializaciones de y destinatarios múltiples
La serialización compacta tiene cinco partes: encabezado protegido, clave cifrada, IV, texto cifrado y etiqueta de autenticación. Es adecuado para un destinatario y transporte en parámetros o . La serialización permite campos protegidos y desprotegidos, datos autenticados adicionales y múltiples destinatarios, cada uno con su propia clave cifrada.
Entre varios destinatarios, se puede compartir el mismo texto cifrado mientras que la está protegida por separado para cada clave. Esto reduce la duplicación, pero crea una política más compleja: todos los destinatarios reciben el mismo contenido y deben ser gobernados como un todo. Para eliminar un destinatario es necesario volver a cifrarlo para mensajes futuros.
Los desprotegidos se pueden cambiar sin invalidar la etiqueta cuando no participan en . La información que determina el algoritmo, clave, tipo o interpretación debe estar en el encabezado protegido. El consumidor necesita saber qué campos están autenticados y rechazar combinaciones inconsistentes.
Mapa da JWE Compact Serialization
protected.encrypted_key.iv.ciphertext.tag
1. protected: alg, enc, kid, cty
2. encrypted_key: CEK protegida para el destinatario
3. iv: valor único exigido por el algoritmo
4. ciphertext: plaintext cifrado
5. tag: autenticidad del ciphertext y de los datos asociados
18.15 anidado y orden de protecciones
Un anidado aplica y en secuencia. El patrón común es firmar primero y cifrar después. El issuer crea un que preserva la integridad y la autoría, luego utiliza ese como texto sin formato de un destinado al consumidor. El externo usa igual que para indicar contenido anidado.
Después del descifrado, el destinatario aún necesita validar el interno. La validez de la etiqueta externa no reemplaza la firma, el issuer, la audience o la hora del interno. Asimismo, la firma interna no prueba que el objeto externo estuviera destinado al componente que lo recibió.
Cifrar y luego firmar expone los metadata y la firma externa, y produce una semántica diferente. Los perfiles deben definir el orden, los algoritmos, los tipos y el manejo de errores. No invente su propia composición cuando un perfil estandarizado o un canal firmado por cumpla con el requisito.
Tabla 8 - La elección depende de la confidencialidad, la autonomía, la revocación y la complejidad.
Estrategia
Propiedad
Uso
Sólo JWS
Integridad y origen; carga útil legible.
Acceda a tokens comunes a través de canales TLS.
Sólo JWE
Confidencialidad e integridad bajo la clave de cifrado.
Contenido destinado a un destinatario específico.
JWS dentro de JWE
Autoría interna y confidencialidad externa.
JWT anidado con claims confidenciales.
Referencia opaca
Estado de las consultas al servidor por identificador.
Revocación y minimización cuando no sean necesarias autocontenidas.
Figura 5: La validación segura es una cadena; saltarse un paso cambia el modelo de confianza.
18.16 de validación segura
El validador comienza con el contexto externo: , issuer esperado, type y perfil. Luego realiza un análisis defensivo con límites de tamaño, número de segmentos, profundidad de y tipos. El encabezado que no es de confianza solo se lee para seleccionar una operación permitida dentro de la configuración.
La selección de claves se produce en el conjunto asociado al issuer. debe estar en la lista de permitidos y ser compatible con kty, use y key_ops. La firma, MAC o etiqueta está completamente verificada. Las fallas criptográficas finalizan el procesamiento sin probar algoritmos alternativos no autorizados.
Después del cifrado vienen las validaciones semánticas: iss, aud, exp, nbf, iat, , , , jti, , tenants y de perfil. Las reglas para el , el , la aserción del cliente y el de cierre de sesión deben ser mutuamente excluyentes. Aceptar un en múltiples contextos favorece la confusión entre .
Finalmente, la autorización aplica las reglas locales. Un válido no implica permiso para ningún objeto. El debe verificar la operación, los recursos, la propiedad, el contexto empresarial y las políticas actuales. Los registros deben registrar resultados e identificadores mínimos, nunca el completo.
Tabla 9: El análisis, la autenticación de tokens y la autorización son pasos diferentes.
Paso
Pregunta
Resultado del fracaso
Contexto
¿Qué token type y issuer acepta este endpoint?
Rechazar antes de confiar en los headers.
Analizando
¿Son aceptables la estructura, el tamaño y JSON?
Error genérico sin procesamiento profundo.
Algoritmo y clave
¿Algoritmo permitido y clave de issuer correcta?
Rechazar; actualice JWKS solo de forma controlada.
Criptografía
¿Son válidas la firma, MAC o etiqueta?
Rechazar sin utilizar claims.
Reclamaciones
¿Son válidas las reglas de audience, horario, tipo y perfil?
401 o error de protocolo correspondiente.
Autorización
¿Puede la identidad realizar la acción sobre el recurso?
403 o respuesta de dominio apropiada.
18.17 Perfil para 2.0
9068 define un perfil interoperable para . No obliga a a utilizar ; Los aún pueden ser opacos. Cuando se adopta el perfil, el debe estar firmado, no puede usar none y debe declarar un tipo igual a at+ , además de y reglas específicas para issuer, asunto, audience, hora, client_id y autorización.
El resource server valida el para su propia audience. Los pueden aparecer en el y se puede incluir información de autorización adicional según el perfil y los acuerdos. Las de otra audience no deben aceptar el simplemente porque fue emitido por el mismo authorization server.
Los reducen las llamadas de introspección y permiten la validación local, pero dificultan la revocación inmediata. La corta vida útil, la rotación, las restricciones del remitente, las listas de emergencia y las políticas de sesión pueden reducir la exposición. Para datos que necesitan reflejar un estado instantáneo, la introspección o la consulta de autorización pueden ser más apropiadas.
El está destinado al resource server y describe la autoridad. El está destinado al cliente y describe la autenticación. Aunque ambos son firmados por el mismo issuer, sus reglas no se pueden intercambiar.
18.18 Otros perfiles
se utiliza en varios perfiles. Los de identificación siguen las reglas de OpenID Connect. Las aserciones de cliente 7523 le permiten autenticar a un cliente en el o presentar una concesión. 9101 Los objetos de solicitud protegen los parámetros de autorización. Los de cierre de sesión llevan eventos específicos de la sesión. Las respuestas de introspección se pueden proteger como según 9701.
Cada perfil define tipo, audience, obligatorios, tiempo, y destinatario. Una biblioteca genérica que sólo comprueba firmas no conoce estas reglas. La aplicación debe seleccionar un validador o una configuración específicos para cada tipo y mantener separados cuando sea posible.
Siguen surgiendo nuevos formatos. 9901, publicado en 2025, estandariza la divulgación selectiva para permitir la presentación selectiva de en escenarios de credenciales. Este mecanismo cuenta con su propio modelo de emisión, presentación, divulgación y vinculación de claves; no debe tratarse como un tradicional sólo porque reutiliza componentes .
Tabla 10: Los diferentes tipos requieren reglas de validación mutuamente excluyentes.
Perfil
Destinatario
Control distintivo
ID token OIDC
Parte que confía
client_id en reglas aud, nonce y OIDC.
JWT access token
Resource server
escriba at+jwt, audience API y claims RFC 9068.
afirmación del cliente
Authorization server
aud desde el endpoint, iss/sub desde el cliente y reproducción por jti.
Token de cierre de sesión
Parte que confía
eventos, sid/sub, jti y ausencia de nonce.
Solicitar objeto
Authorization server
Parámetros de solicitud de autorización protegidos.
SD-JWT
Verificador de credenciales
Divulgaciones seleccionadas y reglas vinculantes clave.
18.19 Proof-of-possession y cnf
Los pueden ser utilizados por cualquier parte que obtenga el valor. Los sender-constrained vinculan el uso a una clave o certificado. La cnf confirma qué clave debe demostrarse. El binding puede utilizar el thumbprint de la clave , el thumbprint del certificado o parámetros definidos por el perfil.
En DPoP, el cliente presenta una prueba por solicitud y el puede contener jkt, la de la clave pública. En los vinculados a , cnf puede contener x5t#S256 del certificado utilizado en el canal. El resource server verifica tanto el como la prueba o certificado correspondiente.
La proof-of-possession reduce la de robados, pero agrega administración de claves, sincronización, , y diagnósticos. La debe preservar o verificar la evidencia en el punto correcto. Terminar en un componente y reenviar solo un encabezado que no es de confianza al destruye el enlace si ese encabezado se puede inyectar externamente.
actúa como un punto de aplicación de políticas y necesita separar la validación del de autorización de la ruta. Una política sólida corrige el issuer, la audience, los algoritmos, la ubicación de los metadata, las obligatorias y el comportamiento de la caché. Los derivados de deben reemplazar los valores externos y enviarse al solo a través de un canal confiable.
En Axway , los filtros de validación y las bibliotecas de identidad pueden verificar firmas, y certificados. La configuración debe limitar algoritmos, elegir tienda o por entorno y correlacionar fallas con seguimientos seguros. Las políticas compartidas evitan la divergencia, pero deben permitir diferencias de audience y perfil entre las .
En Azure Management, validate- y validate-azure-ad- integran la validación con la configuración, las audiences y las notificaciones requeridas de OpenID. La política debe verificar el destinado a la y no simplemente aceptar cualquier del tenant. Es necesario considerar la rotación y las cachés de metadata para cambios e incidentes.
Cuando la vuelve a emitir un interno, se produce una nueva relación de confianza. Primero se debe validar el externo; el interno debe tener su propio issuer, audience, vida y mínimos. El confía en el issuer interno, no en el original, y la correlación debe preservar los identificadores para la auditoría.
Exemplo conceitual - política de validação no gateway
<validate-jwt header-name="Authorization"
require-scheme="Bearer"
failed-validation-httpcode="401">
<openid-config url="https://auth.example/.well-known/openid-configuration" />
<audiences>
<audience>https://api.example/payments</audience>
</audiences>
<required-claims>
<claim name="scope" match="all">
<value>payments.read</value>
</claim>
</required-claims>
</validate-jwt>
Propagación de identidad
Elimine los de identidad recibidos de Internet antes de crear internos. El debe aceptar estos valores solo desde la autenticada y, para decisiones críticas, continuar aplicando la autorización de dominio.
18.21 Amenazas y hardening
La confusión de algoritmos ocurre cuando el consumidor permite que alguien seleccione una operación imprevista, como usar una clave pública como secreto . La defensa es una lista de permitidos fija, claves separadas por uso y una biblioteca actualizada. none debe rechazarse en de seguridad, a menos que sea un perfil excepcional y explícitamente aislado.
La sustitución y la cross- confusion ocurren cuando se acepta un válido en el contexto incorrecto. Un usado como , un de otra audience, un de staging en producción y una client assertion aceptada por la son ejemplos. explícito, reglas mutuamente excluyentes, issuer y audience reducen el riesgo.
Los campos jku , x5u y controlados por el pueden inducir o sustitución de claves. puede provocar un recorrido de ruta o una consulta de base de datos insegura cuando se concatena sin validación. El validador debe tratar los como entradas hostiles, utilizar preconfigurados y limitar el tamaño y los caracteres.
El oráculo de compresión es un riesgo cuando los datos secretos y controlados por el atacante se comprimen antes del cifrado y se puede observar el tamaño. 8725 recomienda evitar la compresión de entradas criptográficas en escenarios sensibles. Los también necesitan límites para evitar un consumo excesivo de CPU y memoria.
Tabla 11: El refuerzo combina cifrado, análisis, redes y gobernanza.
Amenaza
Ejemplo
Controlar
Confusión de algoritmos
HS256 aceptado con material destinado a RSA.
Lista de permitidos, compatibilidad con kty/alg y bibliotecas maduras.
Confusión entre JWT
ID token aceptado como access token.
tipo, audience, perfil y validadores separados.
Inyección de clave / SSRF
jku apunta al host controlado o a la red interna.
Endpoints preconfigurados y salida controlada.
Reproducir
Token copiado dentro de su validez.
Vida corta, jti cuando corresponda y sender constraint.
Compromiso clave
Clave privada expuesta.
HSM/KMS, rotación de emergencia y retirada coordinada.
DoS criptográfico
Tokens enormes o actualización forzada aleatoria para kids.
Límites, caché negativo, límite de velocidad y disyuntor.
18.22 Privacidad, y minimización
Un puede contener nombre, correo electrónico, grupos, tenants, identificadores y datos comerciales en texto legible por humanos. El registro del completo en registros de acceso, seguimientos, APM, herramientas de soporte o mensajes de error replica datos y credenciales en múltiples sistemas. Incluso los caducados pueden revelar información personal o arquitectura interna.
Los registros deben registrar solo los campos necesarios: issuer normalizado, audience esperada, , resultado de la validación, código de error, no reversible del jti o asunto cuando esté permitido e ID de correlación. El valor sin procesar del Authorization debe enmascararse antes de llegar a los registros genéricos.
El cifrado reduce la lectura durante el transporte y el almacenamiento, pero el destinatario necesita descifrado y puede filtrar el texto sin formato en los registros. La minimización sigue siendo el control más eficiente. Las declaraciones de autorización también pueden revelar la estructura organizacional; evaluar la necesidad, la retención y el acceso.
Regla de observabilidad
Recopile evidencia suficiente para diagnosticar sin copiar credenciales. Nunca publique reales en tickets, chats, documentación o herramientas de descifrado en línea.
18.23 basada en evidencia
El diagnóstico comienza con la clasificación de la avería. El error de análisis indica estructura, o . La firma no válida apunta a clave, algoritmo, bytes, entorno o corrupción. Un desconocido sugiere una rotación, un caché o un issuer incorrectos. La audience no válida y el issuer no válido son fallas semánticas, no criptográficas.
Compare el con los metadata del issuer sin exponer el valor completo. Registre , , , iss, aud, exp y hora local. Consulte el confiable y confirme kty, uso, key_ops y . Compruebe si la nueva clave ya está publicada y si la anterior aún debería permanecer. En clústeres, compare cachés y relojes entre instancias.
Para , separe el error de la gestión de claves, el descifrado y la etiqueta. Una clave privada incorrecta, un algoritmo incompatible, un IV no válido y un texto cifrado modificado producen diferentes síntomas en la biblioteca, pero la respuesta externa debe ser genérica para no crear Oracle. Conserve los detalles solo en registros restringidos.
En las , correlacione el registro de acceso, el seguimiento de políticas, las métricas de metadata, el caché y el . La , la u otro pueden generar una respuesta 401. Identifique el componente exacto y el paso que falló antes de cambiar la configuración.
Tabla 12: Los síntomas del token apuntan a diferentes pasos del proceso.
Síntoma
Hipótesis iniciales
Evidencia
JWT mal formado
Segmentos, Base64url, JSON o tamaño.
Error de recuento de piezas y analizador.
Firma no válida
Clave, alg, token o entorno incorrectos.
Issuer, kid, JWK y bytes recibidos.
kid desconocido
Rotación, caché o issuer incorrectos.
JWKS actual, antigüedad de la caché y cronograma de rotación.
Caducado/aún no válido
Reloj, exp, nbf o tolerancia.
UTC de todas las instancias y claims temporales.
Audiencia no válida
Token emitido a otro recurso.
aud, recurso solicitado y configuración de API.
Falló el descifrado
Clave privada, alg, enc, IV o etiqueta.
Configuración JWE y error interno restringido.
18.24 Estudios de casos y laboratorios
Caso 1: Rotación intermitente: algunas instancias aceptan el nuevo chico y otras devuelven 401. La investigación muestra cachés locales con diferentes tiempos y se actualizan sin fusionarse. La solución publica la clave con anticipación, estandariza el , agrega actualización controlada y mantiene la clave anterior para su máxima validez.
Caso 2: válido para una audience incorrecta: la verifica la firma de un emitido al portal y reenvía la llamada a la . La solución requiere tipo de y audience, separa los validadores de y de y agrega pruebas negativas a la canalización.
Caso 3: clave por : una biblioteca sigue a jku y permite al atacante proporcionar su propia clave. La solución elimina la resolución dinámica, corrige los metadata por issuer, bloquea las salidas innecesarias y revisa los ya aceptados.
Caso 4: confidenciales en registros: un incidente revela que APM almacenó la autorización completa. La solución enmascara el encabezado en el primer punto de entrada, reduce las emitidas, aplica retención y revoca potencialmente expuestos.
Laboratorio 1: validar un con la biblioteca local
Generar un par de claves de laboratorio en un entorno aislado y autorizado.
Emita un de corta duración con iss, aud, exp, y .
Valide con la lista de permitidos de algoritmos y la clave pública preconfigurada.
Cambie un byte de la carga útil y observe la falla criptográfica.
Cambie aud sin volver a firmar para comparar el error de firma y el error semántico.
Laboratorio 2: simular la rotación de
Publica K1 y emite con el K1.
Agregue K2 al conjunto antes de usarlo para firmar.
Actualice el firmante a K2 y mantenga K1 disponible.
Observe el comportamiento de la caché en diferentes instancias.
Elimine K1 solo después de que expiren los y el margen operativo.
Laboratorio 3 - pruebas negativas obligatorias
Rechazar none y algoritmo fuera de la lista de permitidos.
Rechazar issuer, audience y tipo incorrectos.
Rechazar vencido, futuro o excesivamente grande.
Rechace a un desconocido sin activar una actualización ilimitada.
Rechaza críticos desconocidos y remotos no autorizados.
Rechazar el de ID presentado a la como un .
Seguridad del laboratorio
Utilice únicamente claves y ficticios. Nunca copie credenciales de producción en herramientas de prueba, sitios de descifrado o documentos de capacitación.
Resumen del capítulo
separa , firma, cifrado, algoritmos y representación de claves. no significa automáticamente firmado, o credencial segura. La confianza surge de la combinación de estructura válida, funcionamiento criptográfico correcto, clave vinculada a un issuer permitido y validación semántica del perfil.
protege la integridad y el origen, pero mantiene la carga útil legible. protege la confidencialidad mediante cifrado autenticado y separa , responsable de , de , responsable del contenido. Los anidados pueden combinar propiedades, pero aumentan la complejidad y necesitan un perfil claro.
y la rotación son parte del runtime. La publicación temprana, el controlado, la superposición y el retiro planificado evitan el tiempo de inactividad. es sólo una pista dentro del issuer; Las y claves proporcionadas por el propio no deberían generar confianza.
8725 orienta allowlists, validaciones mutuamente excluyentes, tipado explícito y protección contra mix-up. 9864 actualiza el tratamiento de algoritmos completamente especificados y el registro de sigue siendo la referencia operativa para nombres y estados.
Lista de verificación de diseño y operación.
¿Existe un perfil documentado para cada tipo de admitido?
¿El issuer, la audience, el tipo y los algoritmos están definidos por la configuración de confianza?
¿La validación utiliza la clave de issuer correcta y no un caché global por ?
¿ tiene caché, límites, actualización combinada y rotación probada?
¿Las claves privadas se almacenan en un , o una bóveda auditada?
¿Los algoritmos son compatibles con kty, use y key_ops?
¿Las temporales utilizan UTC, sincronización de reloj y tolerancia limitada?
¿Los de identificación, , aserciones de clientes y de cierre de sesión utilizan validadores separados?
¿Los jku, x5u, y reciben un tratamiento seguro?
¿Los registros enmascaran la autorización y no almacenan completos?
¿Las pruebas negativas cubren la confusión de tipo, audience, algoritmo y rotación?
¿Existe un procedimiento para comprometer y retirar la llave de emergencia?
Ejercicios de repaso
Explique por qué un descodificado con éxito sigue siendo poco fiable.
Describe la diferencia entre , y usando un ejemplo de .
Calcule qué componentes pueden emitir cuando HS256 se comparte entre cinco .
Proponer una secuencia de rotación para con vencimiento de 20 minutos y caché de 10 minutos.
Explique por qué el no puede identificar una clave globalmente.
Diferenciar y en un con -OAEP-256 y A256GCM.
Describa cómo ayuda a evitar el uso de como .
Explique el riesgo de seguir a jku informado por el .
Compare el validado localmente y el opaco con introspección.
Defina qué información se puede registrar en los registros sin copiar la credencial.
Glosario
Tabla 13 - Vocabulario esencial del capítulo.
Término
Definición
AAD
Datos autenticados adicionales; datos autenticados sin estar cifrados.
alg
Algoritmo de firma, MAC o gestión de claves.
Base64url
Codificación de bytes segura para URL, sin confidencialidad.
CEK
Clave de cifrado de contenido utilizada para cifrar contenido en JWE.
conjunto de claims
Objeto JSON que contiene claims realizadas por JWT.
crit
Lista de parámetros críticos que el consumidor debe entender.
cty
Tipo de contenido protegido, útil en objetos anidados.
enc
Algoritmo de cifrado autenticado de contenido JWE.
JWA
Algoritmos web JSON; identificadores y parámetros criptográficos.
JWE
Cifrado web JSON; marco de criptografía autenticado.
JWK
Clave web JSON; Representación JSON de una clave.
JWKS
Conjunto de claves web JSON; conjunto de JWK.
JWS
Firma web JSON; firma digital o MAC sobre bytes.
JWT
Token web JSON; conjunto de claims protegidas por JWS o JWE.
kid
ID de clave; sugerencia de selección de clave dentro de un contexto.
Nested JWT
JWT protegido en múltiples capas, como JWS dentro de JWE.
huella digital
Compendio derivado de clave o certificado de identificación.
typ
Tipo de objeto declarado para la tramitación de la solicitud.
Anexo A - Matriz de decisión
Tabla 14: La arquitectura depende del requisito, no solo de la preferencia de JWT.
Necesidad
Estrategia inicial
Controles esenciales
API valida localmente
JWS y JWKS asimétricos.
Issuer, audience, tipo, lista de permitidos, caché y rotación.
Revocación inmediata
Token opaco o introspección.
Disponibilidad de AS, caché corta y autenticación RS.
Reclamaciones confidenciales
JWE o referencia opaca.
Minimización, alg/enc, clave de destinatario y registro.
Múltiples validadores
Firma asimétrica.
Privado sólo en el issuer y público distribuido.
Prueba de posesión
Token vinculado a DPoP o mTLS.
cnf, prueba por solicitud, nonce y proxies confiables.
Múltiples tipos de JWT
Validadores separados y tipo explícito.
Reglas mutuamente excluyentes y pruebas negativas.
Rotación frecuente
JWKS con superposición planificada.
Publicar antes, controlar el caché y eliminar más tarde.
credencial selectiva
SD-JWT según RFC 9901.
Divulgaciones, enlace de claves, privacidad y perfil específico.
Referencias técnicas
. 7515: Firma web ( ). 2015.
. 7516: cifrado web ( ). 2015.
. 7517: clave web ( ). 2015.
. 7518 - Algoritmos web ( ). 2015.
. 7519: web ( ). 2015.
. 7638: de clave web ( ). 2015.
. 7797: opción de carga útil sin codificar . 2016.
. 7800: Semántica clave de proof-of-possession para . 2016.
. 8037 - CFRG Curva Elíptica Diffie-Hellman y Firmas en . 2017.
. 8725 / BCP 225: Mejores prácticas actuales de web . 2020.
. 9068: perfil para 2.0. 2021.
. 9101: Solicitud de autorización protegida por 2.0 . 2021.
. 9278: de de . 2022.
. 9701: Respuesta de para la introspección de de . 2025.
. 9864: Algoritmos completamente especificados para y COSE. 2025.
. 9901: Divulgación selectiva para web . 2025.
. Registros de firma y cifrado de objetos ( ).
. Registro de de web .
Microsoft aprende. Políticas de validación- y validación-azure-ad- de Azure Management.
Documentación Axway. Filtros de validación, firma y cifrado .
. Hoja de referencia de web para Java y hoja de referencia de seguridad 2.0.
Nota de actualización
Los algoritmos, registros y perfiles de continúan evolucionando. Antes de implementar una combinación, confirme el estado actual en el registro de la , los que actualizan la especificación y el soporte exacto de la biblioteca, , proveedor de identidad y .