DROWN: Atacando SSL/TLS (V+1)

1, DRWN-VI
CapturaDROWN: Atacando SSL/TLS (V)

Teniendo en cuenta la <captura anterior“> (de forma #estructural# es esta), los paquetes #premastersecret# (SSLv3/TLS) y #masterkey# (SSLv2) quedan tal que así:

2, DRWN-VI

El objetivo del <atacante> en este caso en cuestión esconseguirun #valor# <s> que convierta el mensajesuperior en el inferior-, para que seaaceptadopor el <servidor> en un “algoritmo de cifrado” #EXPORT# de40 bits” (de ahí que en el caso de #SSLv2 M# sólo tenga5 bytesfrente a los48del caso #SSLv3/TLS#).

Para con este caso podéis ver que intente lo que intente hacer el <atacante>, el resultado tras lamultiplicaciónpor  <s> ha de comenzar por <0x00, 0x02>. Debido a que esaritmética modular“, es posible hallar #valores# muy diferentes entre sí que den como resultado unnúmeroque comience por <0x00, 0x02>. Aún así, está claro que muchos #valores# válidos serán muy cercanos a <1>.

3, DRWN-VI

Aunque no seaposiblerealizar <aritmética> con #valores# enpunto flotante– (es decir, no se puede tomar <s=0.9>), lo que sí se puede llevar a cabo esdividirel mensaje por unnúmero dado– <t>, y luegomultiplicar el resultadopor otro denominado <u>. Por lo cuál, sería equivalente a considerar que; <s = u/t>.

Esta manera deactuarpermite obtenermuchos y mejores resultados que tan sólo dar #valores# a <s> de forma aleatoria y probar (recordad que cada #valor# de <s> probado implica hasta240 operaciones de descifradopara comprobar si es correcto). En concreto si se toman los #valores# <u=7> y <t=8>, laprobabilidadde que <m1> sea un #masterkey# válido es superior a <1> entre <8000>. No cabe duda, una mejora bastante #importante# en el caso de escoger <s> de manera aleatoria.

A pesar de ello, comocontrapartidano todos los mensajes #SSLv3/TLS# sirven para todas las <fracciones>, debido a que cuando se hace la división, el resultado ha ser exacto, no debe tener resto (en caso contrario y debido a que nos encontramos en <aritmética modular>, losdos primeros” <bytes> ya no serían <0x00, 0x02>). Dicho esto y por lo cuál, la manera que nossugierenlosautores del ataquese fundamenta en tomar unnúmero concretode #valores# de <s>, o más bienpares” <u/t> (en el artículo aconsejan entre <1> y <10>) y tomar una cantidad #importante# de negociaciones <SSLv3/TLS> (de nuevo nos sugieren entre <900> y <12000>), de tal modo que alguno de losmensajes“, con alguna de lasfraccionesdevolverá unmensajemodificado válido como #masterkey# de la negociación #SSLv2#.

4, DRWN-VI

Recordad que tan sólo el sencillo hecho dehaber encontradoun #valor# válido ha implicadoejecutar” <fuerza bruta> y descubrir el #masterkey# de la conexión #SSLv2#.

Por lo cuál, ya conocemos todos los #valores# en azul delmensaje modificado” #SSLv2#.

Veamos un <ejemplo> (valores en rojo para indicar que ya son valores conocidos):

5, DRWN-VI

En este punto se dispone de un mensaje #SSLv2# del que se conoce <mayor cantidad> de #información# que sobre el mensaje #SSLv3/TLS# original y a partir del que (como habéis visto antes) en caso deconocer todos sus <bytes> podemos recuperar el mensaje #SSLv3/TLS#.

Elproblema” (llegados a este punto) son los <bytes> de relleno, ya que si se quiere “recuperarelmensaje originales necesario conocer exactamente todos los #valores# del mensaje modificado.

Efectuamos una <paradita> hasta el próximo #artículo#.

Salu2

tumblr_nsmnjpwMvL1trzi9wo1_500

Anuncios

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s