sábado, 27 de agosto de 2016

Nueva versión de OpenSSL

Se ha publicado una nueva versión de OpenSSL, la 1.1.0, con importantes novedades y solución a múltiples problemas y vulnerabilidades.

OpenSSL es un desarrollo "Open Source" que implementa los protocolos SSL y TLS, y que es utilizada por multitud de programas, tanto para implementar dichos protocolos (por ejemplo, HTTPS) como para emplear sus componentes criptográficos individuales (funciones de cifrado y "hash", generadores de claves, generadores pseudoaleatorios, etc).

La nueva versión 1.1.0 de OpenSSL, se considera una actualización mayor y abre una nueva rama de desarrollo, de ahí su importancia. Como es de esperar incorpora importantes novedades y la solución a diversas vulnerabilidades. Cabe señalar la eliminación de protocolos y algoritmos ya obsoletos e inseguros y el soporte de nuevos algoritmos  criptográficos.

  • Se ha incluido soporte para los nuevos algoritmos ChaCha20 (para cifrado simétrico) y Poly1305 (para autenticación).
         
  • La mayoría de las estructuras públicas de libcrypto y libssl se han hecho opacas incluyendo: BIGNUM y tipos asociados, EC_KEY y EC_KEY_METHOD, DH y DH_METHOD, DSA y DSA_METHOD, RSA y RSA_METHOD, BIO y BIO_METHOD, EVP_MD_CTX, EVP_MD, EVP_CIPHER_CTX, EVP_CIPHER, EVP_PKEY y tipos asociados, HMAC_CTX, X509, X509_CRL, X509_OBJECT, X509_STORE_CTX, X509_STORE, X509_LOOKUP, X509_LOOKUP_METHOD.
         
  • Igualmente las estructuras internas de libssl también se han hecho opacas.
         
  • Se elimina el soporte a SSLv2 y al conjunto de cifrado Kerberos.
         
  • RC4 también se ha eliminado de los conjuntos de cifrado por defecto en libssl.
         
  • Se ha retirado el soporte de cifrado de 40 y 56 bits de libssl.
         
  • Todos los archivos de cabecera públicos se han movido a include/openssl, para evitar los enlaces simbólicos.
         
  • Se ha añadido en libcrypto el soporte para modo OCB (Offset Codebook Mode).
         
  • También se ha añadido a las librerías libcrypto y libssl el sopote para operaciones criptográficas asíncronas.
         
  • Nuevos niveles de seguridad.
         
  • Se ha incluido soporte de los algoritmos scrypt y KDF (implementando TLS PRF como un KDF). Igualmente se soporta X25519, Certificate Transparency, HKDF y la autenticación entre pares RFC6698/RFC7671 DANE TLSA.
        
  • Ahora se pueden desactivar las interfaces obsoletas en tiempo de compilación, ya sea con respecto a la versión más reciente a través del argumento de configuración "no-deprecated", o a través de la opción "--api=1.1.0|1.0.0|0.9.8".

Entre las vulnerabilidades corregidas, cabe señalar que se mitigan los ataques Sweet32 (CVE-2016-2183). Este ataque podría permitir a un atacante remoto que monitorice y capture una gran cantidad de tráfico de una sesión cifrada 3DES en modo CBC del que se conozca algo de texto plano podrá llegar a descifrar algún texto. Este ataque afecta a cifrados en bloque de 64 bits como 3DES o Blowfish. En la nueva versión los conjuntos de cifrado 3DES y RC4 no se incluyen por defecto.

Se soluciona una fuga de memoria por un uso inadecuado en el método SRP_VBASE_get_by_user (CVE-2016-0798). Y un fallo en la comprobación de límites en el tratamiento de la extensión hearbeat TLS puede permitir la revelación de hasta 64k de memoria a un cliente conectado o un servidor (CVE-2014-0160).

La versión OpenSSL 1.1.0 está disponible desde

Más Información:

OpenSSL

OpenSSL 1.1.0 Series Release Notes

Changes between 1.0.2h and 1.1.0  [xx XXX xxxx]

On the Practical (In-)Security of 64-bit Block Ciphers

Sweet32: Birthday attacks on 64-bit block ciphers in TLS and OpenVPN



Antonio Ropero
Twitter: @aropero



No hay comentarios:

Publicar un comentario en la entrada