Ataque de Bleichenbacher
¿Qué es Ataque de Bleichenbacher?
Ataque de BleichenbacherAtaque adaptativo de texto cifrado elegido (Bleichenbacher, 1998) que recupera texto plano RSA cuando el servidor revela si el padding PKCS#1 v1.5 es valido.
Daniel Bleichenbacher presento este ataque en CRYPTO 1998 contra el handshake SSL que usa cifrado RSA-PKCS#1 v1.5. El servidor actua sin querer como oraculo de padding: cualquier respuesta distinguible (codigo de alerta TLS, reinicio de conexion o temporizacion) le indica al atacante si un texto cifrado manipulado se descifra en un valor que comienza con los bytes 0x00 0x02. Como RSA es multiplicativamente homomorfico, el atacante multiplica el texto cifrado capturado por valores elegidos s, envia el resultado y usa cada respuesta de "padding valido" para reducir el conjunto de textos planos posibles. Tras alrededor de un millon de consultas, el intervalo se colapsa en un unico valor y se recupera el premaster cifrado con RSA, sin tocar jamas la clave privada, lo que permite al atacante descifrar la sesion o falsificar una firma RSA.
El fallo es dificil de erradicar porque el desempaquetado de PKCS#1 v1.5 se resiste a una implementacion en tiempo constante. Resurgio como DROWN (CVE-2016-0800), que uso un oraculo SSLv2 para romper sesiones TLS modernas, y como ROBOT (Return Of Bleichenbacher's Oracle Threat, 2017): los investigadores Böck, Somorovsky y Young descubrieron que F5 (CVE-2017-6168), Citrix, Cisco y otros seguian siendo vulnerables, y lo demostraron contra Facebook y PayPal. Defensas: gestion identica de errores para padding correcto e incorrecto, preferir RSA-OAEP, deshabilitar las suites de cifrado con intercambio de claves RSA y adoptar TLS 1.3, que elimina por completo el cifrado RSA del handshake.
flowchart TD
A[Attacker captures RSA ciphertext c] --> B["Pick multiplier s, send c·s^e mod n"]
B --> C{Server padding check}
C -->|"Starts 0x00 0x02 → valid"| D[Narrow plaintext interval]
C -->|"Invalid → distinct response"| E[Discard this s]
D --> F{Interval = 1 value?}
E --> B
F -->|No| B
F -->|Yes| G[Premaster secret recovered]● Ejemplos
- 01
Recuperar el premaster SSL en un servidor de los 90 que devolvia alertas distintas para padding incorrecto.
- 02
DROWN y ROBOT reutilizan este oraculo contra pilas TLS modernas.
● Preguntas frecuentes
¿Qué es Ataque de Bleichenbacher?
Ataque adaptativo de texto cifrado elegido (Bleichenbacher, 1998) que recupera texto plano RSA cuando el servidor revela si el padding PKCS#1 v1.5 es valido. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Ataque de Bleichenbacher?
Ataque adaptativo de texto cifrado elegido (Bleichenbacher, 1998) que recupera texto plano RSA cuando el servidor revela si el padding PKCS#1 v1.5 es valido.
¿Cómo defenderse de Ataque de Bleichenbacher?
Las defensas contra Ataque de Bleichenbacher combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Ataque de Bleichenbacher?
Nombres alternativos comunes: Million Message Attack.