miércoles, abril 01, 2015

Cómo saber si una conexión HTTPS es Insegura (vulnerable a FREAK o Bar Mitvzah)

Tras los últimos ataques al protocolo SSL/TLS, quise saber cómo poder ver, en cada conexión, si la suite de cifrado que se estaba utilizando era o no vulnerable tanto a FREAK como al ataque Bar Mitzvah averiguando qué suite de cifrado se estaba utilizando en cada conexión. Como sabéis, cuando se negocia una conexión SSL/TLS entre un cliente y un servidor, se negocia en el proceso de handshake la suite de cifrado a utilizar durante toda la sesión.

Figura 1: Cómo saber si una conexión HTTPS es Insegura (vulnerable a FREAK o Bar Mitvzah)

Lo habitual es que entre el servidor y el cliente se seleccione, de todas las suite de cifrado que soportan ambos, la más segura de todas, pero un enemigo, haciendo un ataque de man in the middle, podría hacer un ataque de downgrade - o de degradación - para forzar una negociación con una suite de cifrado insegura.

Cómo consultar la suite de cifrado SSL/TLS en Google Chrome

Para ver el suite de cifrado de una conexión - recordad que se negocia conexión a conexión - depende del navegador que estés utilizando. En Google Chrome es bastante sencillo, basta con hacer clic en el protocolo Https y después seleccionar la opción de conexión. En la parte alta del desplegable aparecerán los mensajes de alertas de la conexión Https y en el medio la suite de cifrado que se está utilizando en esta conexión. Dependiendo de la versión del navegador que utilices y contra qué servidor tires la conexión Https, la suite de cifrado puede variar.

Figura 2: Revisión de la Suite de Cifrado SSL/TLS en Google Chrome

Las suites de cifrado vulnerables a FREAK y Bar Mitzvah

Si en la suite de cifrado aparece la cadena EXP es que estás en medio de una conexión que utiliza uno de los algoritmos "válidos" para exportación aprobados por el gobierno de USA porque eran "suficientemente seguros". A día de hoy son totalmente vulnerables y todo servidor y/o cliente que ofrezca la posibilidad de negociar una conexión Https se consideran vulnerables. Estás ante un posible ataque de FREAK.

Figura 3: Demo de FREAK con la web de la NSA

Si en la suite de cifrado aparece la cadena RC4, entonces estás ante una conexión insegura, que puede ser atacada por los problemas de las Invariance Weakness, y por tanto podrían robarte los datos de la sesión. Estás en una sesión vulnerable al ataque de Bar Mitzvah que se presentó hace poco.

Figura 4: Con un ataque de Bar Mitzvah se pueden descifrar los 65 bytes
después del handshake. Si van cookies o passwords [o partes] se descifran

Normalmente, si aparecen esas suite de cifrado en tus conexiones es que estás bajo un ataque de man in the middle que está haciendo downgrade, porque si no normalmente no se negocian esas suites de cifrado, pero está bien que lo compruebes en conexiones muy importantes.

Cómo consultar la suite de cifrado SSL/TLS en Mozilla Firefox

Para saber que suite de cifrado se está utilizando en una conexión Https desde Mozilla Firefox, puedes hacer clic sobre el icono del candado y luego en la opción de More Information - > Security. En la parte final del panel que aparece podrás ver los detalles de la suite de cifrado negociada.

Figura 5: Detalles de la suite de cifrado en una conexión Https desde Mozilla Firefox
También - como han citado en los comentarios de este artículo - se puede usar en Mozilla Firefox el plugin Calomel SSL Validation que muestra un escudo arriba a la izquierda y permite acceder rápidamente a la información de la conexión SSL.

Figura 6: Calomel SSL Validation en https://www.google.es

En otros navegadores como Apple Safari no es tan sencillo, y tendrás que monitorizar con un analizador de tráfico como Wireshark las conexiones Https para ver qué suite de cifrado se ha negociado.

Saludos Malignos!

4 comentarios:

  1. Olé,como mola, pero jo que pique, no?
    Aparte de comprobar las urls, ya me veo dándole al candadito cada dos por tres seis como un p*** paranoico jejeje

    Muchas gracias¡

    Saludos!

    ResponderEliminar
  2. Hola gente!!

    Mi pregunta es ¿Existe alguna manera de obligar al navegador a utilizar los algoritmos mas robustos, e impedir que se negocien y acaben siendo utilizados los menos robustos?

    ResponderEliminar
  3. O usar un plugin como "Calomel SSL Validation" en Firefox que funciona muy bien ;)

    ResponderEliminar
  4. @Anonimo, si, puedes configurar tu navegador para deshabilitar ciertos algoritmos de cifrado.
    X ej. en Firefox, accediendo a su configuración interna (about:config), filtras por "ssl" y pones a 0 aquellos que no quieres que se utilicen, si bien corres el riesgo de no poder conectarte a ciertas páginas web.

    ResponderEliminar