stringtranslate.com

libreSSL

LibreSSL es una implementación de código abierto del protocolo Transport Layer Security (TLS). La implementación lleva el nombre de Secure Sockets Layer (SSL), el predecesor obsoleto de TLS, cuyo soporte se eliminó en la versión 2.3.0. El proyecto OpenBSD bifurcó LibreSSL de OpenSSL 1.0.1g en abril de 2014 como respuesta a la vulnerabilidad de seguridad Heartbleed , [5] [6] [7] [8] con el objetivo de modernizar el código base , mejorar la seguridad y aplicar las mejores prácticas de desarrollo. . [9] [10] [11]

Historia

Después de que se descubrió la vulnerabilidad de seguridad Heartbleed en OpenSSL , el equipo de OpenBSD auditó el código base y decidió que era necesario bifurcar OpenSSL para eliminar el código peligroso. [5] El dominio libressl.org fue registrado el 11 de abril de 2014; el proyecto anunció el nombre el 22 de abril de 2014. En la primera semana de desarrollo, se eliminaron más de 90.000 líneas de código C. [10] [12] Se eliminó el código no utilizado y se eliminó la compatibilidad con sistemas operativos obsoletos ( Classic Mac OS , NetWare , OS/2 , Windows de 16 bits ) y algunos sistemas operativos más antiguos ( OpenVMS ). [13]

LibreSSL se desarrolló inicialmente como un reemplazo previsto para OpenSSL en OpenBSD 5.6 y se portó a otras plataformas una vez que una versión simplificada de la biblioteca estuvo estable. [14] En abril de 2014 , el proyecto buscaba un "compromiso estable" de financiación externa. [12] El 17 de mayo de 2014, Bob Beck presentó "LibreSSL: Los primeros 30 días y lo que depara el futuro" durante la conferencia BSDCan de 2014, en la que describió el progreso realizado en el primer mes. [15] El 5 de junio de 2014, varios errores de OpenSSL se hicieron públicos. Si bien varios proyectos fueron notificados con anticipación, [16] LibreSSL no; Theo de Raadt acusó a los desarrolladores de OpenSSL de ocultar intencionalmente esta información a OpenBSD y LibreSSL. [17]

El 20 de junio de 2014, Google creó otra bifurcación de OpenSSL llamada BoringSSL y prometió intercambiar correcciones con LibreSSL. [18] [19] Google ya ha vuelto a otorgar licencias para algunas de sus contribuciones bajo la licencia ISC , tal como lo solicitaron los desarrolladores de LibreSSL. [18] [20] El 21 de junio de 2014, Theo de Raadt dio la bienvenida a BoringSSL y describió los planes para LibreSSL-portátil. [21] A partir del 8 de julio, comenzó la migración de código para macOS y Solaris , [22] mientras que la migración inicial a Linux comenzó el 20 de junio. [23]

A partir de 2021, OpenBSD utiliza LibreSSL como biblioteca SSL principal. Alpine Linux admitió LibreSSL como su biblioteca TLS principal durante tres años, hasta la versión 3.9.0 en enero de 2019. Gentoo admitió LibreSSL hasta febrero de 2021. [24] Python 3.10 eliminó LibreSSL [25] después de ser compatible desde Python 3.4.3 (2015) . [26]

Adopción

LibreSSL es el proveedor predeterminado de TLS para:

LibreSSL es el proveedor predeterminado de TLS para estos sistemas ahora descontinuados:

LibreSSL es un proveedor seleccionable de TLS para:

Cambios

Relacionado con la memoria

Los cambios incluyen el reemplazo de llamadas de memoria personalizadas por aquellas en una biblioteca estándar (por ejemplo, strlcpy, calloc, asprintf, reallocarrayetc.). [39] [ ¿ fuente autoeditada? ] [40] Este proceso puede ayudar más adelante a detectar errores de desbordamiento del búfer con herramientas de análisis de memoria más avanzadas o mediante la observación de fallas del programa (a través de ASLR , uso del bit NX , canarios de pila , etc.).

También se han citado correcciones para posibles escenarios de doble liberación en los registros de confirmación de VCS (incluidas asignaciones explícitas de valores de puntero nulos ). [41] También se han citado comprobaciones de cordura adicionales en los registros de confirmación relacionados con garantizar la longitud de los argumentos, asignaciones de variables sin firmar , valores de puntero y retornos de métodos.

Medidas proactivas

Para mantener buenas prácticas de programación, se han habilitado de forma predeterminada una serie de opciones y indicadores del compilador diseñados para la seguridad para ayudar a detectar problemas potenciales y poder solucionarlos antes (-Wall, -Werror, -Wextra, -Wuninitialized). También ha habido actualizaciones de legibilidad del código que ayudan a los futuros contribuyentes a verificar la corrección del programa ( KNF , espacios en blanco, ajuste de línea, etc.). La modificación o eliminación de macros y envoltorios de métodos innecesarios también ayuda con la legibilidad y la auditoría del código ( referencias de bibliotecas de abstracción de E/S y errores ).

Se realizaron cambios para garantizar que LibreSSL sea compatible con el año 2038 y mantenga la portabilidad para otras plataformas similares. Además, se agregaron explicit_bzerollamadas bn_clearpara evitar que el compilador los optimice y evitar que los atacantes lean la memoria previamente asignada.

Criptográfico

Hubo cambios para ayudar a garantizar la siembra adecuada de métodos basados ​​en generadores de números aleatorios mediante el reemplazo de prácticas de siembra inseguras (aprovechando las características que ofrece el propio kernel de forma nativa). [42] [43] En términos de adiciones notables realizadas, OpenBSD ha agregado soporte para algoritmos más nuevos y de mayor reputación ( cifrado de flujo ChaCha y código de autenticación de mensajes Poly1305 ) junto con un conjunto más seguro de curvas elípticas (curvas de Brainpool desde RFC 5639, hasta 512 bits de fuerza).

Funciones añadidas

La versión inicial de LibreSSL agregó una serie de características: el algoritmo ChaCha y Poly1305 , las curvas elípticas Brainpool y ANSSI, y los modos AES-GCM y ChaCha20-Poly1305 AEAD .

Las versiones posteriores agregaron lo siguiente: [44]

Viejas características inseguras

La versión inicial de LibreSSL deshabilitó varias funciones de forma predeterminada. [13] Algunos de los códigos de estas funciones se eliminaron posteriormente, incluidos Kerberos , cifrados de exportación de EE. UU. , compresión TLS, latidos DTLS , SSL v2 y SSL v3 .

Las versiones posteriores desactivaron más funciones:

Eliminación de código

La versión inicial de LibreSSL eliminó una serie de funciones que se consideraban inseguras, innecesarias o obsoletas como parte de OpenBSD 5.6.

El algoritmo Dual EC DRBG , que se sospecha que tiene una puerta trasera , [57] se eliminó junto con el soporte para el estándar FIPS 140-2 que lo requería [ cita necesaria ] . También se han eliminado los protocolos no utilizados y los algoritmos inseguros, incluido el soporte para FIPS 140-2 , [58] MD4 / MD5 [44] J-PAKE , [13] y SRP . [59]

Acumulación de errores

Una de las quejas de OpenSSL fue la cantidad de errores abiertos informados en el rastreador de errores que no se habían solucionado durante años. Los errores más antiguos ahora se están solucionando en LibreSSL. [60]

Ver también

Referencias

  1. ^ Brent Cook (12 de mayo de 2024). "Lanzamiento de LibreSSL 3.9.2" . Consultado el 12 de mayo de 2024 .
  2. ^ "LibreSSL" . Consultado el 14 de marzo de 2024 .
  3. ^ "Lanzamientos de LibreSSL" . Consultado el 14 de marzo de 2024 .
  4. ^ "Lanzamientos de LibreSSL".
  5. ^ ab Unangst, Ted (22 de abril de 2014). "Orígenes de libressl". fuego antiaéreo . Consultado el 24 de abril de 2014 .
  6. ^ Kerner, Sean Michael (22 de abril de 2014). "Después de Heartbleed, OpenSSL se bifurca en LibreSSL". Semana electrónica . Consultado el 24 de abril de 2014 .
  7. ^ "Ya no es solo una limpieza: se anuncia el proyecto LibreSSL". Punto barra . 22 de abril de 2014 . Consultado el 24 de abril de 2014 .
  8. ^ M, Constantine (17 de mayo de 2014). Habilidad del alma (ed.). "Actualización de estado de 30 días en LibreSSL". Punto barra .
  9. ^ "Libre SSL".
  10. ^ ab Seltzer, Larry (21 de abril de 2014). "OpenBSD bifurca, poda y corrige OpenSSL". Día Cero . ZDNet . Consultado el 21 de abril de 2014 .
  11. ^ Hessler, Peter (15 de abril de 2014). "OpenBSD ha iniciado un desmantelamiento y limpieza masivos de OpenSSL". Revista OpenBSD . Consultado el 24 de abril de 2014 .
  12. ^ ab Brodkin, Jon (22 de abril de 2014). "Código OpenSSL irreparable, afirma el creador de la bifurcación" LibreSSL ". Ars Técnica . Consultado el 24 de abril de 2014 .
  13. ^ abcd Jacoutot, Antoine (1 de noviembre de 2014). "Lanzamiento de OpenBSD 5.6". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  14. ^ McCallion, Jane (22 de abril de 2014). "Heartbleed: LibreSSL borra el código OpenSSL" irresponsable ". PC Pro . Archivado desde el original el 26 de junio de 2014 . Consultado el 23 de abril de 2014 .
  15. ^ Beck, Bob (17 de mayo de 2014). "LibreSSL: Los primeros 30 días y lo que nos depara el futuro" . Consultado el 17 de mayo de 2014 .
  16. ^ "Re: OpenSSL siete correcciones de seguridad". oss-sec (lista de correo). 5 de junio de 2014 . Consultado el 9 de junio de 2014 .
  17. ^ de Raadt, Theo (5 de junio de 2014). "Re: nuevos defectos de OpenSSL". openbsd-misc (lista de correo) . Consultado el 9 de junio de 2014 .
  18. ^ ab Langley, Adam (20 de junio de 2014). "BoringSSL (20 de junio de 2014)". Imperialviolet.org . Consultado el 21 de junio de 2014 .
  19. ^ Goodin, Dan (20 de junio de 2014). "Google presenta una" bifurcación "independiente de OpenSSL llamada" BoringSSL"". Ars Técnica . Consultado el 21 de junio de 2014 .
  20. ^ Canta, Joel (21 de junio de 2014). "OpenBSD - lib/libssl/src/crypto/evp evp_aead.c e_chacha20poly1305.c". Archivado desde el original el 22 de junio de 2014 . Consultado el 21 de junio de 2014 .
  21. ^ de Raadt, Theo (21 de junio de 2014). "Aburrido y cosas así". openbsd-tech (lista de correo) . Consultado el 28 de octubre de 2015 .
  22. ^ Beck, Bob (8 de julio de 2014). "OpenBSD - lib/libcrypto/crypto getentropy_osx.c getentropy_solaris.c". Archivado desde el original el 22 de julio de 2014 . Consultado el 8 de julio de 2014 .
  23. ^ Beck, Bob (20 de junio de 2014). "OpenBSD - lib/libcrypto/crypto getentropy_linux.c". Archivado desde el original el 9 de julio de 2014.
  24. ^ "LibreSSL languidece en Linux [LWN.net]". lwn.net . Consultado el 6 de enero de 2021 .
  25. ^ "PEP 644: requiere OpenSSL 1.1.1 o posterior".
  26. ^ "Registro de cambios: documentación de Python 3.4.10".
  27. ^ Marino, Juan. "[Beta] Cambie de base para utilizar bibliotecas privadas LibreSSL" . Consultado el 9 de noviembre de 2018 .
  28. ^ "Lanzamiento de la Vía Láctea v0.3". Proyecto Hipérbola. 23 de septiembre de 2019 . Consultado el 23 de septiembre de 2019 .
  29. ^ Raue, Stephan. "OpenELEC Mediacenter - [Beta] Lanzamiento de OpenELEC 6.0 Beta 2". Openelec.tv . Archivado desde el original el 26 de noviembre de 2015 . Consultado el 20 de agosto de 2015 .
  30. ^ "PC-BSD evoluciona hacia TrueOS". Archivado desde el original el 16 de septiembre de 2016 . Consultado el 16 de septiembre de 2016 .
  31. ^ VonFange, Mark. "PC-BSD 10.1.2: una entrevista con Kris Moore". Blog oficial de PC-BSD . Consultado el 15 de octubre de 2015 .
  32. ^ "Agregar DEFAULT_VERSIONS=ssl=XXX". Svnweb.freebsd.org .
  33. ^ "Proyecto: LibreSSL - Gentoo". Wiki.gentoo.org .
  34. ^ Górny, Michał (5 de enero de 2021). "Se suspendió el soporte de LibreSSL". www.gentoo.org . Consultado el 30 de marzo de 2021 .
  35. ^ Górny, Michał (31 de diciembre de 2020). "Error 762847 - dev-libs/libressl: eliminación". bugs.gentoo.org . Consultado el 30 de marzo de 2021 .
  36. ^ Górny, Michał (28 de diciembre de 2020). "[gentoo-dev] [RFC] ¿Interrumpir la compatibilidad con LibreSSL?". archivos.gentoo.org . Consultado el 30 de marzo de 2021 .
  37. ^ "Lanzada la versión 15.7 de OPNsense". OPNsense . Consultado el 15 de octubre de 2015 .
  38. ^ "Lanzada la versión 22.7 de OPNsense". OPNsense . Consultado el 5 de agosto de 2022 .
  39. ^ Orr, William (23 de abril de 2014). "Un resumen rápido de la última semana". OpenSSL Valhalla Rampage . Consultado el 30 de abril de 2014 .
  40. ^ "Confirmaciones de OpenBSD LibreSSL CVS Calloc". Secure.freshbsd.org .
  41. ^ "Confirmaciones dobles gratuitas de OpenBSD LibreSSL CVS". Secure.freshbsd.org .
  42. ^ "Siembra insegura OpenBSD LibreSSL CVS". Secure.freshbsd.org .
  43. ^ "Siembra del kernel CVS de OpenBSD LibreSSL". Secure.freshbsd.org . Archivado desde el original el 16 de septiembre de 2014.
  44. ^ abc "Registro de cambios portátil LibreSSL". LibreSSL. 15 de octubre de 2021.
  45. ^ Beck, Bob (12 de octubre de 2014). "Lanzamiento de LibreSSL 2.1.0". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  46. ^ Beck, Bob (9 de diciembre de 2014). "Lanzamiento de LibreSSL 2.1.2". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  47. ^ ab Cook, Brent (22 de enero de 2015). "Lanzamiento de LibreSSL 2.1.3". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  48. ^ Cook, Brent (4 de marzo de 2015). "Lanzamiento de LibreSSL 2.1.4". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  49. ^ Cook, Brent (17 de marzo de 2015). "Lanzamiento de LibreSSL 2.1.5". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  50. ^ Cook, Brent (19 de marzo de 2015). "Lanzamiento de LibreSSL 2.1.6". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  51. ^ Cook, Brent (11 de junio de 2015). "Lanzados LibreSSL 2.1.7 y 2.2.0". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  52. ^ ab Cook, Brent (9 de julio de 2015). "Lanzamiento de LibreSSL 2.2.1". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  53. ^ ab Cook, Brent (6 de agosto de 2015). "Lanzamiento de LibreSSL 2.2.2". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  54. ^ Beck, Bob (16 de octubre de 2014). "Lanzamiento de LibreSSL 2.1.1". openbsd-tech (lista de correo).
  55. ^ "OpenBSD LibreSSL CVS OPENSSL_NO_HEARTBEATS".
  56. ^ Miod Vallat. "Eliminar la compatibilidad con big-endian i386 y amd64". openbsd-cvs (lista de correo).
  57. ^ Perlroth, Nicole (10 de septiembre de 2013). "El gobierno anuncia medidas para restablecer la confianza en los estándares de cifrado". Los New York Times . Consultado el 9 de mayo de 2014 .
  58. ^ "El futuro (o la falta de él) del módulo de objetos FIPS de LibreSSL".
  59. ^ Beck, Bob (3 de agosto de 2014). "Lanzamiento de LibreSSL 2.0.4". openbsd-announce (lista de correo) . Consultado el 28 de octubre de 2015 .
  60. ^ Vallat, Miod (10 de noviembre de 2014). "Re: CVS: cvs.openbsd.org: src". openbsd-cvs (lista de correo) . Consultado el 28 de octubre de 2015 .

Enlaces externos