JWT, JWS, JWE y JOSE en Profundidad
Volver a Learn
FAACCapítulo 18

Fundamentos y Arquitectura de APIs Corporativas

JWT, JWS, JWE y JOSE en Profundidad

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

Token en capas protegido por firmas, cifrado y gobernanza de claves en una arquitectura de APIs

Criptografía, contexto y gobernanza para seguros

Ciclo criptográfico de un token entre issuer, JWS o JWT, API Gateway y backend
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.
Familia JOSE separa JWT, JWS, JWE, JWK, JWKS y JWA por responsabilidad
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.
EstructuraProtección o funciónEjemplo de uso
JWTConjunto de claims con semántica definida por un perfil.ID token, access token, aserción de cliente o token de cierre de sesión.
JWSIntegridad y autenticación por firma o MAC.Token firmado y webhook firmado.
JWEConfidencialidad e integridad a través de cifrado autenticado.Token con claims confidenciales destinados a un cliente específico.
JWK/JWKSRepresentación y publicación de claves.Claves públicas del issuer para su validación.
JWAIdentificadores 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.
ClaimSemántica generalValidación típica
issIdentificador del issuer.Comparación precisa con el issuer habilitado.
subIdentificador del asunto en el remitente.Interpretar junto con este y el perfil.
audDestinatario o conjunto de destinatarios.Contiene la audience de la API o del cliente.
expInstante tras el cual el token no debería ser aceptado.Reloj sincronizado y pequeña tolerancia.
nbfInstante antes del cual no se debe aceptar el token.Rechazar el uso temprano fuera de tolerancia.
iatTiempo de emisión.Verifique las políticas de plausibilidad y edad.
jtiIdentificador 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 .

Serialización compacta JWS con encabezado protegido, carga útil, firma y entrada de firma
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.

Pseudocódigo - construção conceitual de um JWS
protected = BASE64URL(UTF8({"alg":"ES256","kid":"ec-1"}))
payload   = BASE64URL(payload_bytes)
signing_input = protected + "." + payload
signature = ECDSA_sign(private_key, signing_input)
jws_compact = protected + "." + payload + "." + BASE64URL(signature)

18.6 Firma digital y MAC

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.
ModeloDistribuciónImplicación operativa
Firma asimétricaPrivado en el issuer; público en validadores.Los validadores no pueden emitir tokens. Facilita JWKS y la rotación.
MAC simétricaMismo secreto en issuer y validadores.Cualquier validador comprometido puede crear tokens.
Firma con HSM/KMSOperació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.
AlgoritmoFamiliaAtención
RS256RSA PKCS#1 v1.5 con SHA-256Amplio apoyo; Utilice suficiente llave y rotación gobernada.
PS256RSA-PSS con SHA-256Relleno probabilístico; Confirme el soporte de todos los componentes.
ES256ECDSA P-256 con SHA-256Firma compacta; requiere la implementación correcta de ECDSA.
HS256HMAC con SHA-256El secreto compartido convierte a los validadores en issuers potenciales.
ningunoSin protección criptográficaNo acepte tokens de seguridad.
EdDSA / nombres actualizadoscurvas de edwardConsulte 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.
EncabezadoFunciónValidación
typTipo de objeto para la aplicación.Compare con el perfil esperado y reglas separadas.
ctyTipo de contenido protegido.Uso en contenido anidado y no obvio.
kidSeleccione la clave del candidato.Resolver sólo dentro del issuer de confianza.
critExtensiones que deben entenderse.Rechazar si algún artículo no es compatible.
jku/x5uURL 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.

Exemplo - JWK pública RSA
{
  "kty": "RSA",
  "kid": "signing-2026-07",
  "use": "sig",
  "alg": "RS256",
  "n": "sXch...base64url-modulus...",
  "e": "AQAB"
}

material privado

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.
ComponenteResponsabilidadFallo típico
Configuración del issuerEstablezca un dominio y un perfil de confianza.Token de otro tenant o entorno aceptado.
jwks_uriPublicar 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 kidElija un candidato del conjunto de confianza.Colisión global o kid inexistente.
ActualizarConjunto 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.

Pseudocódigo - JWK Thumbprint
thumbprint_input = canonical_json({
  "e": "AQAB",
  "kty": "RSA",
  "n": "sXch..."
})
jwk_thumbprint = BASE64URL(SHA256(UTF8(thumbprint_input)))
Rotación de claves con publicación anticipada, superposición y retiro seguro
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.

Serialización compacta JWE con encabezado protegido, clave cifrada, IV, texto cifrado y etiqueta
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ámetroEjemploResponsabilidad
algRSA-OAEP-256Proteger o establecer la CEK para el destinatario.
encA256GCMCifre el contenido y produzca una etiqueta de autenticación.
cremalleraDEFComprimir antes del cifrado; utilizar sólo con análisis de riesgos.
kidclave-destinataria-2Seleccione la clave de descifrado dentro del dominio confiable.
ctyJWTIndique 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.
EstrategiaPropiedadUso
Sólo JWSIntegridad y origen; carga útil legible.Acceda a tokens comunes a través de canales TLS.
Sólo JWEConfidencialidad e integridad bajo la clave de cifrado.Contenido destinado a un destinatario específico.
JWS dentro de JWEAutoría interna y confidencialidad externa.JWT anidado con claims confidenciales.
Referencia opacaEstado de las consultas al servidor por identificador.Revocación y minimización cuando no sean necesarias autocontenidas.
Canalización de validación JWT segura en un resource server
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.
PasoPreguntaResultado 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.

Exemplo conceitual - header e claims de access token
{
  "typ": "at+jwt",
  "alg": "RS256",
  "kid": "as-signing-4"
}.
{
  "iss": "https://auth.example",
  "sub": "user-481",
  "aud": "https://api.example/payments",
  "client_id": "mobile-app",
  "scope": "payments.read payments.create",
  "iat": 1784126100,
  "exp": 1784126700,
  "jti": "8b28b730-..."
}

El no es un

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.
PerfilDestinatarioControl distintivo
ID token OIDCParte que confíaclient_id en reglas aud, nonce y OIDC.
JWT access tokenResource serverescriba at+jwt, audience API y claims RFC 9068.
afirmación del clienteAuthorization serveraud desde el endpoint, iss/sub desde el cliente y reproducción por jti.
Token de cierre de sesiónParte que confíaeventos, sid/sub, jti y ausencia de nonce.
Solicitar objetoAuthorization serverParámetros de solicitud de autorización protegidos.
SD-JWTVerificador de credencialesDivulgaciones 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.

Exemplos conceituais - confirmação da chave
"cnf": {
  "jkt": "0ZcOCORZNYzC-7hV..."
}
# ou, para certificado mTLS
"cnf": {
  "x5t#S256": "qP3Q...thumbprint..."
}

18.20 Aplicación en , Axway y Azure

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.
AmenazaEjemploControlar
Confusión de algoritmosHS256 aceptado con material destinado a RSA.Lista de permitidos, compatibilidad con kty/alg y bibliotecas maduras.
Confusión entre JWTID token aceptado como access token.tipo, audience, perfil y validadores separados.
Inyección de clave / SSRFjku apunta al host controlado o a la red interna.Endpoints preconfigurados y salida controlada.
ReproducirToken copiado dentro de su validez.Vida corta, jti cuando corresponda y sender constraint.
Compromiso claveClave privada expuesta.HSM/KMS, rotación de emergencia y retirada coordinada.
DoS criptográficoTokens 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íntomaHipótesis inicialesEvidencia
JWT mal formadoSegmentos, Base64url, JSON o tamaño.Error de recuento de piezas y analizador.
Firma no válidaClave, alg, token o entorno incorrectos.Issuer, kid, JWK y bytes recibidos.
kid desconocidoRotación, caché o issuer incorrectos.JWKS actual, antigüedad de la caché y cronograma de rotación.
Caducado/aún no válidoReloj, exp, nbf o tolerancia.UTC de todas las instancias y claims temporales.
Audiencia no válidaToken emitido a otro recurso.aud, recurso solicitado y configuración de API.
Falló el descifradoClave 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érminoDefinición
AADDatos autenticados adicionales; datos autenticados sin estar cifrados.
algAlgoritmo de firma, MAC o gestión de claves.
Base64urlCodificación de bytes segura para URL, sin confidencialidad.
CEKClave de cifrado de contenido utilizada para cifrar contenido en JWE.
conjunto de claimsObjeto JSON que contiene claims realizadas por JWT.
critLista de parámetros críticos que el consumidor debe entender.
ctyTipo de contenido protegido, útil en objetos anidados.
encAlgoritmo de cifrado autenticado de contenido JWE.
JWAAlgoritmos web JSON; identificadores y parámetros criptográficos.
JWECifrado web JSON; marco de criptografía autenticado.
JWKClave web JSON; Representación JSON de una clave.
JWKSConjunto de claves web JSON; conjunto de JWK.
JWSFirma web JSON; firma digital o MAC sobre bytes.
JWTToken web JSON; conjunto de claims protegidas por JWS o JWE.
kidID de clave; sugerencia de selección de clave dentro de un contexto.
Nested JWTJWT protegido en múltiples capas, como JWS dentro de JWE.
huella digitalCompendio derivado de clave o certificado de identificación.
typTipo 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.
NecesidadEstrategia inicialControles esenciales
API valida localmenteJWS y JWKS asimétricos.Issuer, audience, tipo, lista de permitidos, caché y rotación.
Revocación inmediataToken opaco o introspección.Disponibilidad de AS, caché corta y autenticación RS.
Reclamaciones confidencialesJWE o referencia opaca.Minimización, alg/enc, clave de destinatario y registro.
Múltiples validadoresFirma asimétrica.Privado sólo en el issuer y público distribuido.
Prueba de posesiónToken vinculado a DPoP o mTLS.cnf, prueba por solicitud, nonce y proxies confiables.
Múltiples tipos de JWTValidadores separados y tipo explícito.Reglas mutuamente excluyentes y pruebas negativas.
Rotación frecuenteJWKS con superposición planificada.Publicar antes, controlar el caché y eliminar más tarde.
credencial selectivaSD-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 .