Usando Encrypt-then-MAC en SSL

2

SSL normalmente utiliza la técnica MAC-then-Encrypt en lugar de Encrypt-then-MAC (que generalmente se considera ideal para la mayoría de los escenarios). Yo mismo no tengo un conocimiento completo sobre los méritos y desventajas de ambas técnicas, pero en base a lo que he leído y entendido hasta ahora, creo que usar Encrypt-then-MAC en el caso de SSL hubiera tenido más sentido .

También creo que esto habría protegido SSL contra muchos ataques en el pasado. Por ejemplo, al hablar sobre la prevención de ataques de Padding Oracle en SLL, @Tomas Pornin citó en una de sus respuestas :

  

Uno debe tener en cuenta que si SSL ha utilizado cifrar y luego MAC, tales problemas   habría sido evitado (los registros defectuosos habrían sido rechazados   en el nivel MAC, antes incluso de considerar el descifrado).

¡Y, incluso después de todos estos ataques en el pasado, SSL aún NO está utilizando Encrypt-then-MAC! Entonces, mi pregunta es, ¿por qué seguimos usando MAC-then-Encrypt en SSL? ¿Por qué no simplemente usar Encrypt-then-MAC para solucionar los problemas, en lugar de aplicar pequeñas ayudas de parcheo cada vez? ¿Qué es lo que nos impide usarlo en caso de que de SSL?

    
pregunta Rahil Arora 21.03.2014 - 18:25
fuente

1 respuesta

5

Los diversos "parches" que se han aplicado en SSL / TLS tienen la característica agradable de no cambiar el protocolo en línea: son trucos de implementación que solucionan los problemas implícitos en MAC-then-cifypt. Una forma de decirlo es que es posible implementar y usar MAC-luego-cifrar de forma segura, pero no es fácil.

Esta compatibilidad con versiones anteriores con el protocolo existente permitió que los parches se implementaran, distribuyeran y usaran de inmediato, mientras que un nuevo protocolo habría tardado años en ser adoptado ampliamente. Por ejemplo, los problemas con el modo CBC en TLS 1.0 (lo que aprovecha el "ataque BEAST") se han corregido con una nueva versión del protocolo (TLS 1.1) desde 2006, pero los navegadores han empezado a admitirlo solo hace aproximadamente 2 años, y una gran La proporción de servidores web todavía no lo admite. Un nuevo protocolo que solucione problemas no sirve de nada si no puede usarlo, porque no se admite en el otro lado de la conexión ...

Además de esperar por un TLS 1.3 aún por definir, que podría tardar un tiempo en ser especificado, y mucho menos implementado y soportado, podría tener algo de suerte con TLS 1.2, que admite GCM . GCM es un modo de cifrado que combina el cifrado simétrico y un MAC, y lo hace correctamente (es decir, MAC-luego cifrado, en términos generales). Por supuesto, no hay muchos navegadores y servidores que lo admitan todavía, pero al menos la parte de especificación / aprobación se realiza para estos conjuntos de cifrado.

    
respondido por el Thomas Pornin 23.03.2014 - 04:09
fuente

Lea otras preguntas en las etiquetas