El ataque CRIME consiste en hacer que el cliente objetivo envíe solicitudes GET falsas al servidor, de modo que cada solicitud:
- contiene la ruta elegida por el atacante,
- y también contiene algún valor secreto en el que el atacante está interesado.
Una implementación práctica, cuando el cliente es un navegador web, es un JavaScript malicioso que manipula el DOM para crear etiquetas <img>
ocultas. Cada una de estas etiquetas hace que el cliente haga un GET al servidor.
Si el cliente está configurado para enviar automáticamente la contraseña del usuario, como parte de la autenticación básica, en el encabezado correspondiente a cada solicitud, se puede atacar como una cookie. Se aplica CRIMEN.
Un punto importante, sin embargo, es que CRIME es un Chosen-Plaintext Attack : funciona en contextos donde el atacante puede hacer que la víctima emita solicitudes que contengan tanto el valor secreto, y algunos datos que el atacante puede elegir. Esto ciertamente se aplica a un navegador web, pero no necesariamente a otros contextos, como un cliente XML-RPC personalizado. Realmente depende de lo que contengan las solicitudes.
En general , la compresión de cualquier tipo incrementa de manera inherente las fugas de información, porque el cifrado no oculta el tamaño de los datos, y la compresión hace que el tamaño de los datos dependa del contenido de los datos. El caso específico de CRIME es cuando la compresión se aplica en el nivel SSL, porque luego abarca un área (HTTP encabezados ) llena de valores que son, desde el punto de vista del atacante, muy jugoso. Sin embargo, si hay un valor secreto que el atacante desea obtener, tal que el valor se encuentre en los cuerpos de la solicitud, la compresión a nivel de HTTP podría ser igualmente vulnerable.
Si desea los beneficios de la compresión, también obtendrá las desventajas de la compresión, es decir, este aumento en las fugas. Esto requiere un análisis exhaustivo y específico.
(Tenga en cuenta que las fugas relacionadas con el tamaño no son específicas de la compresión; las representaciones basadas en texto, por ejemplo, un entero decimal en XML, también pueden tener un tamaño variable que depende del contenido exacto de los datos; sin embargo, la compresión exacerba el problema. Es mucho más fácil convertir la fuga en un ataque exitoso.)