¿Es posible inyectar información en el caché de sesión TLS de un cliente?

0

Hablando hipotéticamente, ¿podría un atacante ejecutar un ataque dirigido a una red que inyectaría información en el caché de la víctima de las recientes conexiones TLS? Específicamente, la clave maestra y el ID de sesión de su sesión existente se mantendrían con un sitio web específico que la víctima probablemente visitaría más adelante.

Cuando la víctima va a conectarse al sitio web a través de https, se olvidará el apretón de manos completo y el cliente intentará renegociar una sesión usando la clave maestra inyectada (y conocida por el atacante) y el ID de sesión. A su vez, permite que el atacante escuche a escondidas todas las siguientes comunicaciones cifradas.

¿Esto es correcto o mi comprensión de la implementación de TLS es incorrecta? Por supuesto, inyectar la información es una montaña para escalar todo lo que es propio; pero todavía estoy aprendiendo mucho sobre TLS y me hice esta pregunta.

    
pregunta theCowardlyFrench 01.09.2014 - 19:39
fuente

1 respuesta

1

Una sesión en caché y reutilizada con una clave elegida por el atacante solo funcionará para / a través del atacante, ya que el par legítimo que ha sido suplantado no sabrá esta ID y clave. Por lo tanto, esto no permite la escucha pasiva, permite que la suplantación activa (incluida MitM) continúe de manera más eficiente una vez que se haya iniciado, al igual que permite que las conexiones legítimas continuas sean más eficientes.

Obviamente, interceptar y simular la conexión inicial (con un apretón de manos completo) hará que la lógica de caché normal del igual (si la hay, ver más abajo) almacene la sesión perversa. Más allá de esa alteración maliciosa a la memoria caché depende de la implementación; no hay ninguna operación TLS que saque las sesiones en la memoria caché de la forma en que DNS o ARP eliminarán las entradas "envenenadas" del cable.

Usted etiquetó openssl y describió la acción del cliente https solamente, aunque su pregunta no establece dicho límite. Si quiere decir cliente de openssl, eso no se almacena en caché de forma predeterminada. Si la aplicación cliente o tal vez el usuario especifica el contexto necesario para el almacenamiento en caché, por defecto openssl mantendrá la memoria caché solo en la memoria, aunque la aplicación puede proporcionar devoluciones de llamada para hacer otra cosa. En contraste, el servidor openssl almacena en caché en la memoria de manera predeterminada, y al menos algunos servidores reales usan un almacén de sesión externo compartido por múltiples procesos para manejar un gran volumen de clientes.

Si otras implementaciones son de interés, haga una pregunta más específica. (O si puede formularlo como una mejora de esta pregunta, sea claro acerca del cambio; en este foro se considera descortés que "huérfano" ya haya respondido).

    
respondido por el dave_thompson_085 02.09.2014 - 09:10
fuente

Lea otras preguntas en las etiquetas