A través de los años he encontrado este escenario más de una vez. Tiene una gran cantidad de datos relacionados con el usuario que desea enviar de una aplicación a otra. Se espera que la segunda aplicación "confíe" en este "token" y use los datos que contiene. Se incluye una marca de tiempo en el token para evitar un ataque de robo/reutilización. Por la razón que sea (no nos preocupemos aquí), se ha elegido una solución personalizada en lugar de un estándar industrial como SAML.está encriptado pero no firmado, ¿debilidad?
Para mí, parece que la firma digital de los datos es lo que desea aquí. Si los datos deben ser secretos, también puede encriptarlos.
Pero lo que veo mucho es que los desarrolladores usarán encriptación simétrica, p. AES. Están asumiendo que, además de hacer que los datos sean "secretos", el cifrado también proporciona 1) integridad del mensaje y 2) confianza (autenticación de la fuente).
¿Tengo razón en sospechar que hay una debilidad inherente aquí? En su valor nominal, parece funcionar, si la clave simétrica se gestiona correctamente. Al carecer de esa clave, ciertamente no sabría cómo modificar un token encriptado, o lanzar algún tipo de ataque criptográfico después de interceptar varios tokens. ¿Pero un atacante más sofisticado podría explotar algo aquí?
¡Bien puesto! Además, el punto de usar un MAC en lugar de una firma digital (protección de la integridad a través de cifrado simétrico en lugar de la clave pública de cifrado) es excelente, no tiene sentido en todos los gastos generales para RSA/DSA y similares, ya que su sistema es el único uno que necesita verificarlo. – AviD
Artículo a pie de página definitivamente vale la pena leer. –