LibreSSL 4.0.0 liberado!

in blurthispano •  2 months ago 


image.png

Imagen tomada del sitio: https://www.libressl.org/images/libressl.jpg

Buenos días/tardes/noches estimados blurtters que les gusta el Opensource!

En esta ocasión vamos a hablar del sistema de seguridad conocido como LibreSSL.

Historia


LibreSSL es una versión de la pila TLS/crypto derivado desde OpenSSL en 2014, con el objetivo de modernizar el código base, mejorando la seguridad, y aplicando un proceso de las mejores prácticas de desarrollo.

El desarrollo primario ocurre dentro del árbol de código fuente de OpenBSD con el cuidado usual por el que se le conoce al proyecto.

De forma regular el código es re-empacado para uso portable por otros sistemas operativos (Linux, FreeBSD, Windows, etc).

La última versión liberada el 14 de Octubre es 4.0.0

Las liberaciones de LibreSSL contienen varias partes:

libcrypto: una biblioteca de fundamentos de criptografía
libssl: una biblioteca TLS
libtls: una nuva bibliteca TLS, diseñada para hacer más fácil el escribir aplicaciones a prueba de tontos
Varias herramientas tales como openssl(1), nc(1), y ocspcheck(8).
LibreSSL es apoyado financieramente por la Fundación OpenBSD y el Proyecto OpenBSD. Porfavor consedera apoyar este esfuerzo.

Anuncio oficial


Hemos liberado a LibreSSL 4.0.0, que llegará pronto al directorio LibreSSL de su espejo local de OpenBSD pronto. Esta es la primera liberacón estable de la rama 4.0.x branch, que también se encuentra disponible con OpenBSD 7.6

Este incluye los siguientes cambios con respecto a LibreSSL 3.9.2:

  • Cambios portables
    • Se agregó soporte inicial de Emscripten en compilaciones con CMake.
    • Se eliminó la capa de compatibilidad timegm() dado que todos los usos fueron reemplazados
      con OPENSSL_timegm(). Se limpiaron los arneses correspondientes de pruebas.
    • La plataforma mips32 ya no está soportada activamente.
    • Se corrigió el soporte de Windows para fechas más allá de 2038.
  • Mejoras Internas
    • Se limpiaron partes del directorio "conf". Simplificando algo de la lógica, se
      corrigieron fugas de memoria.
    • Se simplificaron los aspectos internos de X509_check_trust() para que sean algo legibles.
    • Se eliminaron los últimos usos internos de gmtime() y timegm() y se reemplazaron
      con la API de conversión de tiempo posix BoringSSL.
    • Se eliminaron llamadas de estatus innecesarias en by_dir.
    • Se dividió el parseo y el procesamiento de la extensión TLS para asegurar que
      las llamadas de retorno de extensión sean invocadas en un orden predefinido.
    • Se limpiaron las implementaciones MD4 y MD5.
    • Funciones de ensamblado ya no están expuestas en la API publica, ahora todas están empacadas por funciones C.
    • Se eliminó la implementación en ensamblador de cifradores heredados en arquitecturas heredadas.
    • Se fusionaron la mayoría de las implementaciones multi-archivo de cifradores en uno o dos archivos C.
    • Se eliminó el cache de validez de certificado. Este fue agregado por razones de
      desempeño los cuales ya no aplican dado que la API de conversión de tiempo BoringSSL no es lenta.
      Adicionalmente, una verificación de error agregada recientemente llevaba
      a fallas de validación oscuras e indeseables.
    • Se dejó de llamar OPENSSL_cpuid_setup() desde la sección .init en amd64 y en i386.
    • Se reescribieron varias funciones de conversión BN.
    • Se mejoró los aspectos internos de la petición de certificación.
    • Se eliminaron métodos no utilizados DSA.
    • Se mejoró aspectos internos de la extensión X.509v3. se corrigieron bugs y fugas
      en X509V3_add1_i2d() y X509V3_get_d2i(). Sus implementaciones vagamente se asemejan a código ahora.
    • Se reescribió BN_bn2mpi() usando CBB.
    • Se hizo constantes la mayoría de los errores de tablas de cadena.
    • Se eliminó el manejo para el cliente SSLv2 de los mensajes "hello".
    • Mejoras en la velocidad del manejador de señales de la app openssl(1).
    • Se limpiaron varias extensiones de API X509v3_*.
    • Se unificaron los métodos de extension X.509v3.
    • Se limpió el manejo del cifrador en SSL_SESSION.
    • Se eliminó get_cipher del SSL_METHOD.
    • Se reescribió CRYPTO_EX_DATA desde cero. El único cambio intencional de comportamiento
      es que ahora hay un límite duro en el número de índices que se pueden acomodar.
    • Se eliminó la llamada defectuosa connect() de netcat.
    • Usos de atoi() y strtol() en libcrypto fueron reemplazadas con strtonum().
    • Se introdujo crypto_arch.h el cual contendrá el código dependiente de las arquitecturas
      y definiciones en lugar del opensslconf.h público.
    • OPENSSL_cpu_caps() ahora es independiente de la arquitectura.
    • Se reorganizó la implementación DES para que use menos archivos y se eliminó
      optimizaciones de procesadores y compiladores antiguos.
  • Nuevas características
    • Se agregó la opción CRLfile al comando cms de openssl(1) para especificar
      CRLs adicionales que se usarán durante la verificación.
  • Mejoras en la Documentación
    • Se eliminó documentación de API no existente.
    • Se unificó la descripción del parámetro obsoleto ENGINE que necesita
      permanecer en muchas funciones y que siempre debería ser NULL.
  • Pruebas y seguridad proactiva
    • Se cambiaron las pruebas restantes a nuevos certs.
  • Cambios de compatibilidad
    • El parse de protocolo en libtls fue cambiado. Los protocolos no soportados TLSv1.1 y TLSv1.0 son ignorados y no se pueden activar o desactivar TLSv1.2 de maneras sorpresivas.
    • La peligrosa familia de funciones EVP_PKEY*_check(3) fue removida.
      Los comandos de openssl(1) pkey y pkeyparam ya no soportan las banderas
      -check y -pubcheck.
    • Las funciones hash de un sólo paso, MD4(), MD5(), RIPEMD160(), SHA1(),
      todas las SHA-2, y HMAC() ya no soportan retorno a un buffer estático.
      Los invocadores deben pasar un buffer de tamaño correcto.
    • Soporte para torbellino fue eliminada. Las aplicaciones que aún lo usan deben honrar OPENSSL_NO_WHIRLPOOL.
    • Se eliminó solución alterna para cajas medianas F5.
    • Se eliminó el encabezado público inútil pem2.h, que fue agregado desde la epoca
      en que era demasiado dificil agregar un solo prototipo a un archivo.
    • Se elimina de ahora en adelante conf_api.h y la API pública.
    • Se eliminaron los encabezados ssl2.h, ssl23.h y ui_compat.h.
    • Numerosas funciones de atributo y conf fueron eliminadas. Algunos tipos no utilizados
      fueron eliminados, otras se volvieron opacas.
    • Se eliminaron las funciones obsoletas HMAC_Init().
    • Se eliminó OPENSSL_load_builtin_modules().
    • Se eliminó X509_REQ_{get,set}_extension_nids().
    • X509_check_trust() fue eliminada, X509_VAL se hizo opaca.
    • Solo versiones especificadas pueden ser asignadas en certs, CRLs y CSRs.
    • Se eliminaron los tipos no usados PEM_USER and PEM_CTX de pem.h.
    • Se eliminaron los typdefs de COMP_CTX, COMP_METHOD, X509_CRL_METHOD, STORE,
      STORE_METHOD, y SSL_AEAD_CTX.
    • i2d_ASN1_OBJECT() ahora devuelve -1 en error como la mayoría de las otras i2d_*.
    • Soporte SPKAC fue eliminado de openssl(1).
    • Se agregó soporte TLS1-PRF para la interfase EVP.
    • Soporte para atributos en EVP_PKEYs fue eliminado.
    • La API X509at_* ya no es pública.
    • SSL_CTX_set1_cert_store() y SSL_CIPHER_get_handshake_digest()
      fueron agregados a libssl.
    • La API de password UI_UTIL completamente rota, fue eliminada.
    • El comando de OpenSSL pkcs12 y PKCS12_create() ya no soporta las configuraciones de los atributos
      de proveedor criptográfico específico Local Key Set de Microsoft.
  • Corrección de Bugs
    • Se hace que ASN1_TIME_set_string() y ASN1_TIME_set_string_X509() coincidan con
      su documentación. Ellas siempre asignan un tiempo que se conforma con la RFC 5280.
    • Se mejora el cumplimiento de estándares para grupos soportados y extensiones de compartición de llaves
      extensiones:
      • Las llaves compartidas duplicadas no están permitidas.
      • Grupos soportados duplicados no están permitidos.
      • La compartición de llaves debe ser enviadas en el orden de los grupos soportados.
      • La compartición de llaves solo será seleccionada si éstas coinciden con el grupo soportado más preferido por orden de preferencia del cliente.
    • Se corrigió desbordamiento de pila en enteros con signo en bnrand().
    • Se previno cero negativo de ser creado por medio de BN_clear_bit() y
      BN_mask_bits(). Se evita una sobrelectura de un byte en BN_bn2mpi().
    • Se agregó guardia para evitar contraer el número lineal de cubos hash
      y que llegue a cero, lo cual puede llevar a una caida del sistema debido a accesar una ubicación con un tamaño de localización de cero.
    • Se corrigió i2d_ASN1_OBJECT() con buffer de salida que apunta a NULL.
    • Se implementó intercambio de clave RSA en tiempo constante. Esto se realiza por medio de desencriptar con RSA_NO_PADDING y verificando que el "relleno" en libssl esté en tiempo constante. Esto es posible debido a que el secreto pre-master es de una longitud conocida basado en el tamaño de la clave RSA.
    • Se reescribió SSL_select_next_proto() usando CBS, y corrigiendo una sobre-lectura de un buffer que no era alcanzable
      cuando se usó como se deseaba desde una invocación ALPN.
    • Se evita empujar un error espurio dentro de la pila de error en ssl_sigalg_select().
    • Se hace que las alertas fatales sean realmente fatales en QUIC.

El proyecto LibreSSL continúa mejorando el código base para reflejar prácticas de programación modernas y seguras. La retroalimentación y comentarios son bienvenidos así como las mejoras desde la comunidad. Gracias por todos los que contribuyeron que ayudaron a hacer esta liberación posible.

Bueno, les deseo éxito en todo lo que hagan en relación al software opensource.

Estamos a la espera de sus comentarios, hasta la próxima publicación donde continuaremos con más sobre software libre.

@cosmicboy123 fuera!


image.png

Si lo deseas puedes votar por mi como witness para poder aumentar las capacidades de un servidor.

https://blurtwallet.com/~witnesses?highlight=cosmicboy123

Integrate al grupo de Telegram de @team-mexico 😀 donde yo y otros usuarios de México y de otros países de habla hispana compartimos experiencias y opiniones así como nuestros propios posts. Una gran iniciativa de @cristo

image.png

| 👉Entra a https://t.me/TeamMexico 👈|

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE BLURT!
Sort Order:  
  ·  2 months ago  ·  


¡En @team-mexico estamos agradecidos que formes parte de nosotros!

Contenido votado con cariño. ❤️


Recuerda que puedes publicar en nuestra comunidad



Vota al witness @cosmicboy123

  ·  2 months ago  ·  


** Your post has been upvoted (1.80 %) **