OpenBSD 6.8发布(OpenBSD成立25周年)

2020-10-19 00:33:14

安全性改进:在boothowto中添加了从引导加载程序传递到内核的RB_GOODRANDOM,表示有信心加载了一个伟大的种子。使用.openbsd.bootdata将boothowto从SPARC64引导加载程序传递到内核。引入了/etc/随机种子重用的检测。重写熵入队环以异步收集损坏,并调整出队以混合选择的";最佳";环条目,指数地后退出队超时,以快速补偿无法识别条件下的弱种子,并确保在引导早期对arc4Random()调用的质量。在支持PAN的arm64 CPU上启用PAN(从不特权访问)。已跳过扫描SUID、SGID和具有安全性的设备文件的nodev和nosuid文件系统(8)。

路由守护进程和其他用户区域网络改进:在bgpctl(8)中,";reload";命令现在使用一个';原因&39;参数作为与其邻居的管理关机通信。在";show rib";命令的family选项中添加了对VPNv6的bgpctl(8)支持。在各种";show";命令中添加了对JSON格式输出的bgpctl(8)支持。通过使用ROUTE_FLAGFILTER setsockopt筛选出L2和广播路由的路由套接字消息,提高ospfd(8)、ospf6d(8)的性能。修改了ldapd(8)使用";ldaps";和";tls&34;关键字,以便仅启用协议和密码的libtls默认值。在ldapd.conf(5)中,可以在这些关键字之前使用新的";遗留";关键字来启用所有这些关键字。将bsd.schema添加到ldapd(8),其中包括shadowPassword和sshPublicKey属性,该属性可用于通过附加的bsdAccount对象类扩展现有LDAP用户。删除了snmpd.conf(5)中对套接字关键字的支持。允许snmpd(8)定义我们侦听的端口。允许SNMP(1)mibtree接受一个或多个要转换为选定输出格式的参数。更换了relayd(8)&39;的agentx后端,并重新处理了对象结构,使其与MIB中定义的一致。为httpd(8)中的目录列表和错误页面引入了";暗模式";。允许在slowcgi(8)中多次指定-d。在接力(8)的主要过程中增加了揭幕(2)。向httpd.conf(5)添加了对非本地主机fast cgi套接字的支持。通过正确等待退出openrsync(1)进程,修复了RPKI-Client(8)中的挂起。已删除RPKI-Client(8)中的-f(强制)选项。RPKI-客户端(8)不再使用openrsync(1)--delete";来清理过时的文件,而是依赖于经过加密签名的RPKI清单列表。修复了PUBKEY验证期间使用的OpenSSL API的RPKI-客户端(8)返回值检查。发布了RPKI-Client(8)6.7p1,包括OpenBSD 6.7勘误表015。已更改RPKI-client(8)-n行为以自动验证回购。向RPKI-Client(8)添加了";-s超时";功能,默认为一小时,如果RPKI-Client卡住,允许使用cron(8)重新尝试。添加了一个可选的";域名";acme-client.conf(5)选项,允许使用具有相同名称的多个域节,并为同一域名创建RSA和ECDSA密钥。添加了可选的";联系人";帐户部分的acme-client.conf(5)选项,允许从需要联系电子邮件地址的机构颁发证书。添加了netstat(1)-R以显示具有关联接口和表的rdomain的摘要。默认显示由route(8)show和netstat(1)-r显示的路由表中的完整IPv6地址条目。DLT_LOOP链路上的固定PCAP滤波器(5),例如LO(4)、GRE(4)、WG(4),固定dhclient(8)域搜索选项处理。更正了dhclient(8)拒绝消息生成以始终包含优惠';D地址。已为dhclient.conf(5)中的域搜索选项启用追加/预置。删除了对dhclient(8)搜索域和静态路由的128字节限制。更正了路由(8)处理::/0和";route add-inet 0.0.0.0-prefix len 0(网关)";。修复了tcpdump(8)中由于微小对齐线导致虚假六进制转储而导致的整数下溢。添加了处理Geneve数据包的初始tcpdump(8)支持。添加了顶部(1)";t";切换路由表的显示。已将按路由表筛选添加到顶部(%1)。如果由于连接问题暂时未收到回复,则将ntpd(8)移至非同步模式。使laacd(8)在单个守护程序中处理所有r域中的IPv6地址配置,而不是为每个rdomain运行一个守护程序。

IPSec(4)(和相关用户程序)改进和错误修复:添加了IKEv2的AES-GCM模式密码,可在iked.conf(5)中使用新的";ikesa enc";选项AES-128-GCM、AES-256-GCM、AES-128-GCM-12和AES-256-GCM-12进行配置。默认情况下,为IKE和Child SA启用AES-GCM加密,从而通过硬件加速支持大幅提高性能。默认情况下启用SHA2_384和SHA2_512

便携式改进Bug修复了CBC衬垫移除中的Off-by-Off。根据RFC 8446第4.1.2节,在TLSv1.3服务器中强制要求HelloRetryRequest之后ClientHello消息与原始ClientHello匹配,如果服务器发送格式错误的全零明文,则避免调用大小为负的FreeZero。在openssl(1)s_client中正确使用sockaddr_storage而不是sockaddr,这可能导致在DTLS模式中使用14字节的堆栈垃圾而不是IPv6地址。修复PEM_X509_INFO_READ_BIO(3)中的一个长期错误,该错误可能导致调用程序中的释放后使用和双重释放问题。将堆栈上的变量置零,以避免在短会话ID的尾部留下垃圾。确保针对各种错误情况发送适当的警报。将状态初始化从ssl_clear(3)移到ssl3_clear(),以确保它可以跨ssl_set_ssl_method(3)正确重新初始化。)呼叫。为AES密钥包装添加自定义复制处理程序以修复释放后使用。避免BN_RAND(3)中的越界写入。修复UI_DUP_*(3)函数中的大量泄漏。简化并整理ui_lib.c中的代码。当alpn_selected为NULL时,正确跟踪选定的ALPN长度以避免ssl_get0_alpn_selected(3)的潜在分段错误。包括MACHINE/endian.h gost2814789.c,以便选择定义的__STRIGN_ALIGNLY。正确处理ssl_set_ssl_ctx(3)中的ssl_cert_dup()故障。在X509_ATTRIBUTE_CREATE(3)中接收无效NID失败,而不是构造可能导致空指针访问的损坏对象。修整。TLSv1.3中匹配传统堆栈的SSL_SHUTDOWN(3)行为。之前的行为可能会导致挂起。修改";openssl x509";,将无效证书时间显示为无效,并正确处理X509_CMP_TIME(3)返回失败的案例,使NotAfter无效的证书看起来无效。

OpenSSH 8.4可能不兼容的更改。为了支持FIDO/U2F,OpenSSH建议使用libfido21.5.0或更高版本。较旧的库以禁用特定功能为代价提供有限的支持。其中包括驻留密钥、需要PIN的密钥和多个附加令牌。SSH-KEYGEN(1):在生成FIDO密钥时可选记录的证明信息的格式已经改变。它现在包括验证证明签名所需的验证器数据。OpenSSH和FIDO令牌中间件之间的API已更改,因此SSH_SK_VERSION_MAJOR版本已增加。第三方中间件库必须支持当前的API版本(7)才能与OpenSSH 8.4一起使用。可移植的OpenSSH发行版现在需要Automake来重建配置脚本和支持文件。当简单地从发布的tarfile构建可移植的OpenSSH时,这不是必需的。

新特性ssh(1),ssh-keygen(1):支持每次使用都需要PIN的FIDO密钥。这些密钥可以使用ssh-keygen使用新的";Verify-Required&34;选项生成。当使用PIN必需的密钥时,系统将提示用户输入PINT以完成签名操作。Sshd(8):AUTHORIZED_KEYS现在支持一个新的";Verify-Required&34;选项来要求FIDO签名断言令牌在进行签名之前验证了用户是否存在。FIDO协议支持多种用户验证方式,但目前OpenSSH只支持PIN验证。