Fuente de imagen https://www.openbsd.org/images/puffy74.gif.
Este es el cuarto posts donde se informa sobre el anuncio la nueva liberación del sistema operativo super seguro llamado OpenBSD, espero que lo disfruten.
Mejoras y corrección de bugs en tmux(1):
- Para el franqueo, no escribe a clientes conectados a sesiones diferentes.
- Se agregó un formato para mostrar si hay cambios no vistos mientras esta en un modo.
- Se descartan secuencias de mouse que tienen la forma correcta pero que son inválidos actualmente.
- Se invalida estados tty en caché después de cambiar las características dado que esas características pueden cambiar lo que la terminal puede hacer y necesita secuencias de mouse o similares que sean enviadas nuevamente.
- Se agregaron opciones para cambiar la clave de confirmación y el comportamiento por defecto de confirmar-antes.
- Se agregó una opción de "menu-selected-style" (estilo seleccionado de menu) para configurar el item de menú seleccionado actualmente.
- Se agregó -c al run-shell para asignar el directorio de trabajo.
- Se agregó "detach-on-destroy" (desconecta al destruir) antes y después.
- Se asigna la bandera de "visitado" en la última ventana cuando se enlaza la sesión.
LibreSSL versión 3.8.2
- Correcciones de Segurdad
- Se desactivó TLSv1.0 y TLSv1.1 en libssl de tal forma que ya no pueden ser seleccionados para su uso.
- BN_is_prime_ex(3) y BN_is_prime_fasttest_ex(3) se niegan a verificar números mas grandes que 32 kbits por primalidad. Esto mitiga varios vectores de ataque DoS.
- Se restringió el código del RFC 3779 a IPv4 e IPv6. No fue escrito para ser capaz de lidiar con nada mas.
- Cambios Portables
- Se extendió el encabezado de compatibilidad endian.h con macros hto* y *toh.
- Se adaptaron más pruebas para el marco portable.
- Herramientas internas ahora son enlazadas estáticamente.
- Las aplicaciones empaquetadas como parte de los paquetes LibreSSL ,nc(1) y openssl(1), ahora estan enlazados de forma estática si las bibliotecas estáticas están compiladas.
- Los símbolos de compatibilidad de función ya no son exportados desde libcrypto. En vez de ello, la biblioteca libcompat esta enlazada a libcrypto, libssl, y libtls de forma separada. Esto incrementa el tamaño un poco, pero asegura que las biblitecas no estén exportando simbolos de programas de forma no intencionada.
- Eliminación selectiva de implementaciones CET en plataformas donde no esten soportadas (macOS).
- Se integraron cuatro pruebas adicionales.
- Se agregaron ventanas de arquitectura ARM64 para plataformas probadas.
- Se eliminó soporte para Solaris 10, se corrigió Solaris 11.
- libtls ya no enlaza estáticamente a libcrypto / libssl a menos que
--enable-libtls-only
sea especificado al momento de configurar. - Biblioteca de compatibilidad de Windows mejorada, a saber el manejo de archivos contra sockets, corrigiendo una excepción cuando se opera en un socket cerrado.
- Las compilaciones de CMake ya no tienen codificado la bandera
-O2
dentro de las banderas del compilador, en su lugar se usan banderas desde el tipo de compilador de CMake. - Se ajusta el tipo de compilación por defecto de CMake como
Release
(Liberación). Esto puede ser cambiado durante la configuración. - Se corrigión soporte ASM roto con compilaciones MinGW.
- Nuevas características
- Se agregó soporte para truncated SHA-2 y para SHA-3.
- La prueba de primalidad BPSW realiza rondas adicionales Miller-Rabin con bases aleatorias y reduce la probabilidad de pase compuesto.
- Se permite prueba de velocidad de cifradores y digestores usando buffers mal alineados en openssl usando -unalign.
- Certificados Ed25519 ahora son soportados en openssl(1) ca y req. Se preparó soporte Ed25519 en libssl.
- Se agregó soporte de Información de Rama Objetivo (Branch Target Information-BTI) al ensamblado en amd64 y arm64.
- Cambios de Compatibilidad
- Se agregó una solución alterna para un cambio pobremente pensado en OpenSSL 3 que rompe el soporte de separación de privilegio en libtls.
- Se movió libtls desde el ECDSA_METHOD al EC_KEY_METHOD.
- Se eliminó soporte GF2m: BIGNUM ya no soporta extensión binaria, aritmética de campo y todas las curvas elipticas interconstruidas binarias fueron eliminadas.
- Se eliminaron las peligrosas implementaciones, "fast" (rápidas) de curvas NIST prime y elipticas. En particular, el método EC_GFp_nist_method() ya no está disponible.
- Se eliminaron la mayoría de los simbolos públicos que fueron convertidos en obsoletos en OpenSSL 0.9.8.
- Se eliminó la API pública X9.31 API (RSA_X931_PADDING aún está disponible).
- Se eliminó el modo de Robo de Texto Cifrado.
- Se eliminpo el soporte ENGINE, incluyendo ECDH_METHOD y ECDSA_METHOD.
- Se eliminó COMP, DSO, carga dinámica de módulos de configuración para las pilas de ex_data configurable y de error.
- Se eliminó el soporte de certificado proxy (RFC 3820).
- Se eliminó el soporte SXNET y NETSCAPE_CERT_SEQUENCE incluyendo el comando nseq de openssl(1).
- El soporte ENGINE fue eliminado y OPENSSL_NO_ENGINE esta configurado. Como consecuencia de esto, algunas funciones stub son proporcionadas para evitar parchar algunas aplicaciones que no honran al OPENSSL_NO_ENGINE.
- El POLICY_TREE y sus estructuras relacionadas y API fueron eliminados.
- En X509_VERIFY_PARAM_inherit(3), se copian las banderas de anfitrión "hostflags" independientemente de la lista de anfitrión.
- Se hace que CRYPTO_get_ex_new_index(3) no devuelva 0 para permitir que aplicaciones usen *_{get,set}app_data() y *{get,set}_ex_data() uno junto al otro.
- X509_NAME_get_text_by_NID(3) y X509_NAME_get_text_by_OBJ(3) solo tienen éxito si ellos contienen código UTF-8 sin ningún NUL embebido.
- La notificación de usuario "explicitText" usa UTF8String en lugar de VisibleString para reducir el riesgo de emitir certificados con codificación DER inválida.
- Correcciones iniciales para soporte RSA-PSS para hacer la pila TLSv1.3 cumpla más con RFC 8446.
- Se corrigió EVP_CIPHER_CTX_iv_length(3) para devolver lo que se asignó con EVP_CTRL_AEAD_SET_IVLEN o con uno de sus alias.
- Mejoras internas
- Se mejoró el script del tamiz de Eratósenes usado para generar una tabla números primos pequeños.
- Se eliminó código incompleto y peligroso BN_RECURSION.
- Se importó código de verificación de política RFC 5280 desde BoringSSL y se usó para reemplazar el antiguo código de tiempo exponencial.
- Se convirtió más de libcrypto para que use CBB/CBS.
- Se comenzó la limpieza y la reescritura de los componentes internos SHA.
- Se redujo la dependencia de implementaciones hash en muchas capas de macros. Esto resulta en una aceleración significativa dado que compiladores modernos ahora están menos confundidos.
- Se mejoró aspectos internos de BIGNUM y el rendimiento también.
- Se simplificaron significativamente los aspectos internos de BN_BLINDING usados en RSA.
- Se hizo que BN_num_bits(3) sea independiente de bn->top.
- Se reescribió y simplificó bn_sqr().
- Se mejoró significativamente el rendimiento de la multiplicación Montgomery.
- Se reescribió y mejoró BN_exp(3) y BN_copy(3).
- Se cambiaron ASN1_item_sign_ctx(3) y ASN1_item_verify(3) para que funcionen con Ed25519 y se corrigieron unos cuantos bugs en ambos.
- Grandes cantidades de limpieza para los aspectos internos de DH, DSA, EC, RSA. Se taponearon numerosas fugas de memoria, se corrigió la lógica de errores e inconsistencias.
- Se limpió y simplificó varios aspectos internos de ECDH y ECDSA.
- Se eliminó la maquinaria precomp en EC_GROUP.
- Se corrigieron varios problemas con EVP_PKEY_CTX_new(3) y EVP_PKEY_CTX_dup(3).
- Se reescribieron OBJ_find_sigid_algs(3) y OBJ_find_sigid_by_algs(3).
- Se mejoraron las verificaciones de versión de certificado X.509.
- Se aseguró que no aparezcan extensiones X.509v3 más de una vez en los certificados.
- Se reemplazó ASN1_bn_print con una implementación interna más limpia.
- Se corrigió invocaciones OPENSSL_cpuid_setup() en arquitecturas arm/aarch64.
- Se mejoraron verificaciones de commonName en libtls.
- Se corrigió error de verificación para X509_get_ext_d2i(3) falla en libtls.
- Se eliminó código guardado (guarded) para #ifdef de ZLIB.
- Se taponeo una fuga de memoria potencial en ASN1_TIME_normalize(3).
- Se corrigió un uso de no inicializado (uninitialized) en i2r_IPAddrBlocks().
- Se reescribieron CMS_SignerInfo_sign(3) y CMS_SignerInfo_verify(3).
- Correcciones de bugs
- Se manejo correctamente entrada negativa en varias funciones BIGNUM.
- Se asegura que ERR_load_ERR_strings() no asigne errno de forma inesperada.
- Se corrigió error al verificación de i2d_ECDSA_SIG(3) en ossl_ecdsa_sign().
- Se corrigió problema de alias en BN_mod_inverse(3). Desactivando el alias de resultados en módulo en varias funciones BN_mod_*.
- Se corrigió detección de operaciones extendidas (XOP) en hardware AMD.
- Se aseguró que la exponenciación Montgomery sea usada para cegar el RSA de forma inicial.
- La política siempre es verificada en validación X509. Extensiones críticas de política ya no son ignoradas silenciosamente.
- Se corrigió el error de manejo en tls_check_common_name().
- Se agregó invalidación de puntero en SSL_free(3).
- Se corrigieron X509err() y X509V3err() y sus versiones internas.
- Se aseguró que OBJ_obj2txt(3) siempre retorne una cadena C nuevamente.
- Se hizo que EVP_PKEY_CTX_set1_hkdf_key(3) falle en una clave NULL.
- En errores de socket en el bucle de encuesta, netcat puede emitir llamadas de sistema en descriptores de archivo invalidados.
- Permite direcciones IP que sean especificados en una URI.
- Se corrigió un error de copiar y pegar en ASN1_TIME_compare(3) que podría llevar a dos UTCTimes o dos GeneralizedTimes incorrectamente, siendo comparados como iguales.
- Mejoras en la documentación
- Se mejoró la documentación de BIO_ctrl(3), BIO_set_info_callback(3), BIO_get_info_callback(3), BIO_method_type(3), y BIO_method_name(3).
- Se marcaron BIO_CB_return(), BIO_cb_pre(), y BIO_cb_post() como no documentados intencionalmente.
- Se hizo muy explicito que la llamada de regreso de verificación no debería ser usada.
- Se hizo el llamado de que CRL lastUpdate esta estandarizada como thisUpdate.
- Se documentó el RFC 3779 API y sus defectos.
- Pruebas y Seguridad Proactiva
- Se mejoró significativamente la prueba de cobertura de BN_mod_sqrt(3) y GCD.
- Como siempre, nueva prueba de cobertura se agregó conforme se corrigen los bugs y los subsistemas son limpiados.
- Correcciones de Segurdad
OpenSSH 9.5 y OpenSSH 9.4
- Cambios potencialmente incompatibles
- ssh-keygen(1): genera llaves Ed25519 por defecto. Las llaves públicas Ed25519 son muy convenientes debido a su pequeño tamaño. Las llaves Ed25519 son especificadas en el RFC 8709 y OpenSSH las ha soportado desde la versión 6.5 (Enero 2014).
- sshd(8): La directiva del subsistema ahora preserva con exactitud cuotas de comandos y argumentos de subsistema. Esto puede cambiar el comportamiento para configuraciones exóticas, pero la configuración del subsitema más común (sftp-server) es muy poco probable que sea afectado.
- ssh-agent(1): los módulos PKCS#11 deben ser especificados ahora por sus rutas completas. Previamente dlopen(3) podía buscarlos en directorios de bibliotecas del sistemas.
- Nuevas características
- ssh(1): se agregó ofuscación de ritmo de golpe de tecla al cliente. Esto intenta esconder ritmo de golpe de tecla interno por medio de enviar tráfico interactivo a intervalos fijos (por defecto cada 20ms) cuando solo hay una pequeña cantidad de datos que estan siendo enviados. Esto también envía golpes de tecla "paja" espurios para un intervalo aleatorio después del último golpe de teclar real. Estos son controlados por medio de una nueva palabra clave de ObscureKeystrokeTiming en ssh_config .
- ssh(1),sshd(8): Introduce una utilería ping a nivel de capa de transporte. Estos agrega un par de mensajes de protocolo SSH SSH2_MSG_PING/PONG para implementar una capacidad de ping. estos mensajes usan números en el espacio de número en las "extensiones locales" y son publicados mediante el uso de un mensaje ext-info "[email protected]" con una versión de número de string de "0".
- sshd(8): permite anular las directivas del subsistema en la combinación de bloques en sshd.
- ssh(1): se permite el reenvío de sockets de Dominio Unix vía via ssh -W.
- ssh(1): se agregó soporte para etiquetas de configuración a ssh(1). Esto agrega una directiva "Tag"-"Etiqueta" en ssh_config(5) y corresponder al predicado "Coincide Etiqueta"-"Match tag" que puede ser usado para seleccionar bloques de configuración similar a las palabras clave pf.conf(5) del mismo nombre.
- ssh(1): se agregó un predicado "match localnetwork" (coincidir red local). Esto permite coincidir en las direcciones de interfases de red disponibles y pueden ser usadas para variar la configuración efectiva del cliente basada en ubicación de la red.
- ssh(1),sshd(8),ssh-keygen(1): soporte de infraestructura para extensiones KRL. Esto define formatos de cableado para extensiones KRL e implementa un parseo de el nuevo submensaje. Actualmente no hay extensiones soportadas hasta este punto.
- sshd(8): AuthorizedPrincipalsCommand y AuthorizedKeysCommand ahora aceptan dos secuencias adicionales de expansión %: %D la cual expande al dominio de ruteo de la sesión conectada y %C la cual expande a las direcciones y números de puerto para la fuente y el destino de la conexión.
- ssh-keygen(1): incrementa el factor de trabajo por defecto (rondas-rounds) para el bcrypt KDF usado para derivar llaves de encripción simétrica para archivos protegidos por una frase de seguridad (passphrase) en un 50%.
- Correcciones de bug
- scp(1): se corrigió scp en modo de subida y descarga recursiva SFTP de directorios que contienen ligas simbólicas a otros directorios. En modo scp, las ligas deberían ser seguidas, pero en modo SFTP no lo eran.
- ssh-keygen(1): Se manejan cr+lf (en lugar de solo cr) finales de línea en archivos de firmas sshing.
- ssh(1): modo interactivo para sesión ControlPersist si es que solicitó originalmente una tty.
- sshd(8): se hace que PerSourceMaxStartups first-match-wins (gane la primera coincidencia)
- sshd(8): Se limita el retraso artificial de inicio de sesión a un máximo razonable (5 segundos) y no lo retrasa en absoluto para el macanismo de autenticación "none" (ninguno).
- sshd(8): Se registran errores en kex_exchange_identification() con nivel detallado en lugar de error genérico para reducir el spam de registro preauth. Todos ellos son registrados con un error de mensaje más genérico por parte de sshpkt_fatal().
- sshd(8): se corrige aritmétca para ClientAliveInterval que causaba que las sondas de prueba fueran enviadas con menor frecuencia de la configurada.
- ssh-agent(1): se mejora el aislamiento entre módulos cargados PKCS#11 por medio de correr ssh-pkcs11-helpers separados para cada proveedor cargado.
- ssh(1): se hace que -f (derivar después de la autenticación-(fork after authentication)) trabaje correctamente con conexiones multiplexadas, incluyendo a ControlPersist.
- ssh(1): se hace que ConnectTimeout aplique a sockets multiplexados y no solo a conexiones de red.
- ssh-agent(1),ssh(1): se mejoró las defensas contra módulos PKCS#11 inválidos, módulos que sean cargados por medio de verificar que el módulo solicitado contenga el símbolo requerido antes de cargarlo.
- sshd(8): Se corrigió AuthorizedPrincipalsCommand cuando AuthorizedKeysCommand aparezca antes de él en sshd_config. Desde OpenSSH 8.7 la directiva AuthorizedPrincipalsCommand fué ignorada incorrectamente en esta situación.
- sshd(8),ssh(1),ssh-keygen(1): Elimina soporte vestigial para firmas KRL Cuando el formato KRL fué definido originalmente, éste incluía soporte para el firmado de objetos KRL. De todas formas, el código para firmar KRLs y verificar firmas KRL núnca se completó en OpenSSH. Esta liberación elimina el código implementado parcialmente para verificar KRLs. Ahora todas las herramientas OpenSSH ignoran secciones KRL_SECTION_SIGNATURE en archivos KRL.
- En general: se corrigió un número de fugas de memoria y desbordamientos de enteros no alcanzables/inofensivos.
- ssh-agent(1),ssh(1): no trunca cadenas registradas desde módulos PKCS#11.
- sshd(8),ssh(1): valída mejor CASignatureAlgorithms en ssh_config y en sshd_config. Previamente esta directiva podía aceptar nombres de algoritmo certificado, pero estos eran inutilizables en la práctica dado que OpenSSH no soporta cadenas CA.
- ssh(1): se hace que
ssh -Q CASignatureAlgorithms
solo liste algoritmos de firma que sean válidos para firmas CA. El comportamiento previo era listar todos los algoritmos de firmado, incluyendo algoritmos de certificado. - ssh-keyscan(1): maneja graciosamente sistemas donde rlimits o el número máximo de archivos abiertos es mayor que INT_MAX
- ssh-keygen(1): se corrigió "no comment" no mostrandose cuando se corre
ssh-keygen -l
en múltiples llaves donde una tiene un comentario y otras llaves siguientes no tienen comentario. - scp(1),sftp(1): se ajustó la lógica ftruncate() para manejar servidores que reordenan peticiones. Previamente, si el servidor reordenaba peticiones entonces el archivo resultante sería truncado erroneamente.
- ssh(1): No desactiva incorrectamente la canonización de hostname cuando CanonicalizeHostname=yes y ProxyJump era asignado explicitamente a "none" (ninguno).
- scp(1): cuando se copian archivos de local a remoto, se verifica que el archivo fuente exista antes de abrir una conexión SFTP al servidor.
- Cambios potencialmente incompatibles
En el siguiente post continuarémos con el aspecto de las mejoras del sistema y correciones de bugs diversas.
Este post es una traducción del anuncio original que se encuentra en la siguente liga:
https://www.openbsd.org/74.html
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
| 👉Entra a https://t.me/TeamMexico1 👈 |
** Your post has been upvoted (1.66 %) **
Curation Trail is Open!
Join Trail Here
Delegate more BP for bigger Upvote + Daily BLURT 😉
Delegate BP Here
Upvote
https://blurtblock.herokuapp.com/blurt/upvote
Thank you 🙂 @tomoyan