今日,OpenBSD社区发布了OpenSSH最新版本8.6。OpenSSH是100%完整的SSH协议2.0实现,也是目前运行最广泛的服务器端和客户端,是GNU/Linux默认安装和启用的服务,其组件中也包括了,更加安全的加密的sftp客户端和服务器。

openssh 修改版本号(OpenSSH8.6发布完全禁止SHA1算法)(1)

重要更改

目前情况下,对SHA-1算法的碰撞攻击的成本已经低于5万美元(约合人民币32万五)。

openssh 修改版本号(OpenSSH8.6发布完全禁止SHA1算法)(2)

在SSH协议中,“ssh-RSA”签名方案使用SHA-1哈希算法与RSA公钥算法结合使用。 在OpenSSH 8.6中将会禁用该组合算法的签名方案,使用该组合签名方案的证书和客户端将不能认证通过。在SSH协议中,密钥支持多种算法进行签名。其中“ssh-rsa”密钥可以使用“rsa-sha2-256”(RSA/SHA256)进行签名。更好可选方案包括:

RFC8332 RSA SHA-2签名算法rsa-sha2-256/512。该算法的优点是使用与 “ssh-rsa”完全一致,但使用安全的SHA-2哈希算法。rsa-sha2-256/512算法已经自OpenSSH 7.2开始支持,默认支持。

RFC8709 ssh-ed25519签名算法也已经被支持,自OpenSSH 6.5版本开始在中使用。

RFC5656 ECDSA算法:ecdsa-sha2-nistp256/384/521。自OpenSSH 5.x版本被支持。

可以用一下命令行手动检查服务器是否使用弱ssh-rsa公钥算法:

ssh -oHostKeyAlgorithms=-ssh-rsa user@host

如果主机密钥验证失败,并且没有其他受支持的主机密钥类型可用,则该主机上的服务器软件应为升级。

OpenSSH最新版本中已经默认启用了UpdateHostKeys选项,帮助自动迁移到更好的算法实现用户登陆。

安全改进

OpenSSH 8.5引入了LogVerbose关键字。用于日志记录的一组模式,启用了该选项后将实现在低特权沙盒sshd进程中运行的代码,日志消息可以利用printf格式字符串构造指定为低特权代码。成功利用低特权的攻击进程可以用来逃避OpenSSH的沙箱,提权到高特权进程。

注意:该漏洞利用,在实践中是极不可能,因为LogVerbose选项默认情况不会启动,只在调试过程中使用。

其他功能更新

sftp-server:添加新的limits@openssh-com协议扩展允许客户端发现各种服务器限制,包括最大数据包大小和最大读取/写入长度。

sftp:使用新的limits@openssh-com扩展名在客户端中选择更好的传输长度。

sshd:在sshd_config中添加ModuliFile关键字以指定包含DH-GEX组的moduli文件的位置。

单元测试:添加了TEST_SSH_ELAPSED_TIMES环境变量,可以用于在测试信息中打印每次测试的经过时间(以秒为单位)。

Bug修复

*ssh_config:同步中的CASignatureAlgorithms列表当前默认的手册页。

ssh:确保退出前调用pkcs11_del_provider()。

ssh,sshd:修复了字符串->argv转换中的问题。多反斜杠未正确引用,导致引号中的空格字符串的中间被错误地分割了的问题。

ssh:被信号杀死时返回非零退出状态;

sftp-server:增加变量SSH2_FXP_READ以匹配最大数目数据包大小。还可以处理未明确显示的零长度读取 规格禁止。

可移植性

sshd:读取网络套接字(例如EINTR,EAGAIN)错误时,错误退出的问题。

创建专用的contrib/gnome-ssk-askpass3.c源,不使用与GNOME2相同的文件来构建。使GNOME3 gdk_seat_grab()可以更好地管理键盘/鼠标/服务器抓取与Wayland的兼容性。

修复可移植性其他构建错误(bz3293 bz3292 bz3291 bz3278)。

sshd:软禁止Linux中的fstatat64 syscall seccomp-bpf沙箱。

文件校验哈希

下载安装时候请对下载文件校对官方哈希码以保证下载包的安全性和完整性。

openssh 修改版本号(OpenSSH8.6发布完全禁止SHA1算法)(3)

openssh-8.6.tar.gz(适用于BSD)

SHA1 a3e93347eed6296faaaceb221e8786391530fccb

SHA256 ihmgdEgKfCBRpC0qzdQRwYownrpBf rsihvk4Rmim8M=

openssh-8.6p1.tar.gz(适用于Linxu)

SHA1 8f9f0c94317baeb97747d6258f3997b4542762c0

SHA256 w bk2hYhdiyFDQO0fu0eSN/0zJYI3etUcgKiNN O164=

注意,SHA256签名是base64编码的,而不是默认十六进制(这是大多数校验和工具的默认设置)。

PGP校验:请从官方网站/pub/OpenBSD/OpenSSH/RELEASE_KEY.asc 在线校验。

,