Hubo un tiempo en el que el
gobierno de los Estados Unidos consideraba toda tecnología de cifrado propia
restringida para su exportación, en la misma categoría que el equipamiento
militar. El razonamiento que se ofrecía era la posibilidad de que los
algoritmos de cifrado cayesen en manos enemigas y estos dispusieran así de una
herramienta que entorpecería el trabajo de las agencias de inteligencia.
El mundo estaba cambiando. Habíamos rasgado
el telón de acero y el final de la guerra fría cerraba un ciclo que estuvo a
punto de hacernos retroceder varios milenios en la historia. Hablamos de los
primeros años 90, donde las puntocom y el Internet de entonces iban soplando
aire a pleno pulmón en una burbuja que terminaría por reventar años después. El
comercio electrónico despegaba y era necesario ganarse la confianza del cliente
tradicional.
La industria necesitaba el cifrado, los
lobbies no tardaron en echarse encima de los políticos y estos terminaron por
capitular abriendo progresivamente las reglas del juego para que el cifrado
permitiese poner un "candadito
amarillo" en el navegador. Internet "ya era segura" (en efecto, las comillas denotan una gran
ironía).
Decimos progresivamente porque no fue fácil.
Estados Unidos permitía el cifrado, su exportación y uso, pero con serias
limitaciones. En primer lugar, solo se permitía la exportación de algoritmos de
cifrado en una versión "reducida".
Por ejemplo, dentro de Estados Unidos era posible obtener un navegador con una
capacidad de cifrado mayor que su versión internacional, la cual usaría
longitudes de claves muy inferiores, tan reducidas que era posible descifrar
comunicaciones cifradas con dicho navegador de manera relativamente fácil. A
esos conjuntos de cifrado se les marcaron con la pseudoetiqueta EXPORT.
Años después la situación fue cambiando poco
a poco hasta el casi completo levantamiento de restricciones fronterizas. Los
cifrados deliberadamente débiles fueron cayendo en desuso o sustituidos por
mejores algoritmos y longitudes de claves mayores... pero no terminaron por
desaparecer.
Todo esto nos permite ponernos en situación
para entender un nuevo ataque. Consiste en una vulnerabilidad descubierta por
un colectivo de investigadores bajo el nombre de SmackTLS.
El fallo permitiría a un atacante en situación de interceptar las
comunicaciones entre cliente y servidor renegociar la conexión segura y hacer
que ambos usen uno de los cifrados de la categoría EXPORT, capturar dicho
tráfico y descifrarlo con una capacidad computacional al alcance de cualquiera.
El ataque ha sido denominado por sus autores
como FREAK (Factoring RSA Export Keys), tiene su propio dominio y web con capacidad para hacer
pruebas. Tan solo le ha faltado un requisito (un icono representativo) para
cumplir con todos los requisitos de esta tendencia mediática.
Como informan en la comentada web, tanto
cliente como servidor han de soportar el conjunto de cifrados EXPORT.
Concretamente servidor y cliente han de aceptar y ofrecer respectivamente un
conjunto RSA_EXPORT o usar el cliente una versión vulnerable de la
librería OpenSSL; algo que, entre otros productos, usan Android e iOS.
¿Qué hacemos?
Como se ha comentado, todo aquello que use
una versión de OpenSSL anterior a las siguientes versiones es virtualmente
vulnerable: 0.9.8zd, 1.0.0p, 1.0.1k. Especial mención a los servidores, como
medida preventiva se ha de asegurar que no se esté ofreciendo soporte a
cifrados EXPORT.
Desde la línea de comandos:
openssl
s_client –connect servidor:puerto –cipher EXPORT
Un servidor vulnerable devolverá la salida
del tipo (resumida):
New,
TLSv1/SSLv3, Cipher is EXP-RC4-MD5
...
Cipher : EXP-RC4-MD5
Ese "EXP"
es, por supuesto, una suite de cifrado que pertenece a EXPORT y es de un
servidor vulnerable.
Otro ataque más a
OpenSSL y una nueva técnica que pone en riesgo la privacidad de las
comunicaciones.
Más información:
SmackTLS
FREAK
OpenSSL Security Advisory [08 Jan 2015]
DTLS segmentation fault in dtls1_get_record
(CVE-2014-3571)
David García
Cortar y pegar la línea de openssl me generó este problema http://serverfault.com/questions/300842/openssl-keeps-giving-me-unknown-option-errors
ResponderEliminar