El problema aquí no es tanto con CBC, sino con alternativas que son más fáciles de implementar de manera segura, sin perder la seguridad matemática. De hecho, AES-CBC resultó ser muy difícil de implementar correctamente. Recuerdo que las implementaciones anteriores de seguridad de la capa de transporte no tienen vectores de inicialización criptográficamente seguros, que son indispensables para el modo CBC
Muchos de los ataques recientes están rellenando ataques de Oracle, como el ataque de Bleichenbacher . Estos dependen especialmente de los modos antiguos mantenidos para soporte. POODLE es una vulnerabilidad de downgrade. LOGJAM está reduciendo la calificación de TLS a antiguas suites criptográficas de grado de exportación (leer saboteada por la NSA).
Para el modo CBC, existe el ataque Vaudenay.
Estos ataques dependen de que el servidor diga explícitamente "relleno no válido", por lo que pierde 1 bit de información en cada transacción. Se eliminaron los mensajes de error, pero el problema del tiempo se mantuvo. El servidor aún usaba más tiempo antes de responder si el relleno era válido.
En respuesta, se vieron obligados a encontrar la solución peculiar de generar una clave ficticia y usarla para descifrar, por lo que fallaría en otra parte de la implementación. En cada implementación. Así que decidieron no forzar más eso en los desarrolladores al admitirlo en las especificaciones.
La criptografía es un campo muy amplio y una especialidad en sí misma. La historia había aprendido a través de la experiencia incómoda, que hacerlo correctamente es imposible hacerlo perfectamente, incluso para los mejores en el campo. Por ejemplo, el MD5, creado por Ron Rivest, co-inventor (y parte del mismo nombre) de RSA se usó ampliamente y luego se rompió en 2013. Su resistencia a la colisión fue eludida en 2 ^ 18, menos de un segundo en una computadora de escritorio para hashes de 128 bits.