SSH Terrapin 攻击(CVE-2023-48795) 最近引起了人们的关注,该攻击通过截断加密信息来攻击 SSH 协议安全。SSH 协议本身的固有缺陷影响了广泛的 SSH 客户端和服务器实现。在我们最初的研究交流之后,这篇文章将详细介绍其基本原理和影响。
受影响的实现
许多 SSH 客户端和服务器实现都受到影响,例如 OpenSSH、paramiko、PuTTY、KiTTY、WinSCP、libssh、libssh2、AsyncSSH、FileZilla 等等。以下是已知受影响实现的完整列表。
Terrapin 攻击利用影响
-
签名降级攻击,它通过多种方式危害 SSH 连接的安全性。
-
在 OpenSSH 实现中,特别是 9.5 以上的版本,攻击绕过了按键时间混淆功能,这可能允许 MitM 攻击者通过检查 SSH 网络数据包来暴力破解 SSH 密码。
CVE-2023-48795 概述
Terrapin 攻击是针对 SSH 协议本身的一种新型攻击,通过中间人 (MitM) 攻击,使受感染的客户端错误地认为服务器缺乏对用户身份验证中使用的最新签名算法的支持。
该漏洞影响所有 SSH 连接。本研究将重点关注 OpenSSH 实现。
有两种易受攻击的 OpenSSH 配置:
-
ChaCha20-Poly1305
-
任何
aes(128|192|256)-cbc
使用默认 MAC 的密码(或任何使用 Encrypt-then-MAC、EtM 的 MAC,例如 -hmac-sha2-256-etm@openssh.com
)。
默认的 OpenSSH 客户端和服务器容易受到此攻击,因为它们配置为允许易受攻击的ChaCha20-Poly1305 cipher
。
注意:仅更新服务器或客户端是不够的!两者都必须打上补丁。 易受攻击的客户端连接到已修复的服务器仍会导致易受攻击的连接。
CVE-2023-48795 分析
利用 CVE-2023-48795,中间人攻击者可以截断 SSH 握手的重要部分,而无需关闭 SSH 连接,这会对 SSH 客户端/服务器造成安全影响。为了检查攻击的影响,让我们深入了解 SSH 握手的具体细节。
SSH 握手
客户端发起 TCP 连接,然后执行协议版本交换(RFC 4253) 。