OpenID Connect tiene puntos finales de descubrimiento que contienen un punto final de JKWS para obtener claves públicas para validar Identidad y tokens de acceso.
Entonces, por ejemplo:
- Tengo una aplicación de escritorio que obtiene un token de identidad del STS
- la aplicación obtiene el jwks_uri del documento de descubrimiento
- la aplicación obtiene las claves públicas de este uri y valida el token de identidad
Por lo tanto, un atacante hombre en el medio (como el malware en una PC) puede:
- interceptar un token de identidad del STS, modificarlo y firmarlo con su propia clave privada
- interceptar la solicitud jwks_uri y devolver sus propias claves públicas
¿Ahora el atacante puede enviar lo que quiera sin que la aplicación lo sepa?