jueves, 6 de septiembre de 2012

Rematando MS-CHAP v2: Microsoft aconseja dejar de usarlo sin encapsular (y III)


Finalmente, Microsoft ha publicado un aviso de seguridad donde pide a sus usuarios que dejen de utilizar MS-CHAPv2 como método de autenticación en conexiones PPTP (al menos sin encapsular). El protocolo sufría varias debilidades que lo hacen inseguro desde 1999, pero desde la revelación de nuevos métodos por Moxie Marlinspike, usarlo es un grave riesgo. Veamos por qué.

Divide y vencerás: La aproximación de Moxie.

En la pasada DefCon 20, MoxieMarlinspike presentó un método con el que, a través de fuerza bruta, permiteaveriguar el NTPasswordHash de una conexión MS-CHAPv2 con un ratio de éxito del 100 %. Había roto por completo el protocolo. El método está en parte basado en el trabajo "Decipher MPPE by breaking MS-CHAPv2", de Sogeti ESEC Pentest.

Para ello, utilizó la técnica "Divide y vencerás". Resumiendo, hasta ahora se tiene una cadena de 21 bytes (elNTPasswordHash, de 16, y los cinco compuestos por ceros) y se sabe que esta es dividida en bloques de 7. Cada uno de estos se pasan como clave a una operación DES sobre un desafío de 8 bytes C, que conocemos. Por tanto, cada una de estas operaciones DES es independiente del resto, y en vez de tratar de averiguar un hash de 21 bytes, podemos calcular cada una de las claves de 7 bytes independientemente.


El coste de iterar por todo el espacio de un hash de 7 bytes es 256. Si lo hacemos para tres claves, tendremos un coste total de 256 + 256 + 256 = 257.59. Parece una complejidad más abarcable que las 2112 operaciones anteriores.

Recordemos, sin embargo, que sigue vigente el hecho de que la tercera clave es trivial (porque está rellena por ceros). Por tanto, tenemos sólo 256 + 256, lo que nos da una complejidad de 257.

Por tanto, tendríamos que iterar por todas las 2^56 combinaciones posibles de la primera clave, y en cada iteración pasar la combinación a DES sobre el desafío de 8 bytes. Esto en dos ocasiones, una para cada clave que resta. Si alguna coincide con el valor correspondiente de la respuesta de 24 bytes, es nuestro hash.

Pero debemos tener en cuenta que las iteraciones se hacen sobre el mismo espacio de claves (las 256 combinaciones posibles) y se cifra el mismo texto valor. Por tanto, ambas iteraciones se pueden unir en una sola, con una complejidad de 256. En resumen, la fortaleza del protocolo MS-CHAP v2 se reduce a la de una sola operación DES.

Moxie Marlinspike  (foto del ferfil de Twitter)
Aunque sigue siendo una complejidad elevada, es abarcable. Para ello, Moxie se apoyó en el servicio de FPGA de Pico Computing para conseguir romper una hash NTPasswordHash en 23 horas en el peor de los casos y unas 12 horas de promedio.

Además, ofrece esta herramienta en su servicio de descifrado de claves en la nube CloudCracking, apoyándose en una aplicación propia, Chapcrack. Esta, a partir de una captura de red con el handshake de MS-CHAPv2 es capaz de generar un fichero con todos los datos necesarios para descifrar de la contraseña. Con esta infraestructura al alcance de cualquiera, se puede considerar MS-CHAPv2 completamente inseguro y roto.

¿Y qué pasa con WPA2 Enterprise?

Otra tecnología a la que salpica esta vulnerabilidad es Wi-Fi sobre WPA2 Enterprise. Con respecto a esto, algunos profesionales se han pronunciado y recuerdan que WPA2 añade encapsulado bajo PEAP, tal y como indica Microsoft, y por tanto está a salvo. Algunos acusan a Moxie de incluir WPA2 Enterprise en su estudio para darle publicidad.

Sin embargo, no está de más recordar que aquí PEAP se autentica contra un servidor RADIUS, cuyo certificado hay que validar. En el caso de que un usuario validase un certificado fraudulento, podría establecer la conexión contra un servidor RADIUS controlado por el atacante en un típico esquema MitM (man in the middle). Si el atacante (entre otros ataques que quizás podría realizar) recoge las trazas de autenticación, sería capaz de descifrarlas fácilmente offline y obtener acceso a la red inalámbrica. Por tanto, la seguridad de WPA2 Enterprise queda de alguna manera también "en alerta", dependiendo solo de la habilidad de los usuarios al reconocer un servidor de autenticación RADIUS seguro mediante su certificado y de la configuración de los equipos a este respecto.

Más información:

Unencapsulated MS-CHAP v2 Authentication Could Allow Information Disclosure

Weaknesses in MS-CHAPv2 authentication

Divide and Conquer: Cracking MS-CHAPv2 with a 100% success rate

Decipher MPPE by breaking MS-CHAP v2




Francisco López

No hay comentarios:

Publicar un comentario en la entrada