Diffie-Hellman Key Agreement Protocol是一种密钥协商协议。
它最初在 Diffie 和 Hellman 关于公钥密码学的开创性论文中有所描述。
该密钥协商协议允许 Alice 和 Bob 交换公钥值,并根据这些值和他们自己对应的私钥的知识,安全地计算共享密钥K,从而实现进一步的安全通信。
仅知道交换的公钥值,窃.听.者无法计算共享密钥。
Diffie-Hellman Key Agreement Protocol 存在安全漏洞,远程攻.击者可以发送实际上不是公钥的任意数字,并触发服务器端DHE模幂计算
D(HE)ater是攻.击(CVE-2002-20001)的D(HE)ater概念实现的证明,可以通过执行Diffie-Hellman钥匙交换来执行拒绝服务。
由于低版本的OpenSSH使用了过时不安全的加密算法协议,通常OpenSSH在版本迭代更新时会弃用这些不安全的加密算法。
如果我们仍要继续使用旧版本的OpenSSH,可以根据实际情况,考虑屏蔽掉不安全的加密算法,以降低安全风险。
查看客户端支持的kexalgorithms
ssh -Q kex
查看服务端支持的kexalgorithms
sshd -T | grep -w kexalgorithms
修复方法
修改sshd_config配置文件,屏蔽掉不安全的KexAlgorithms。
CVE-2002-20001是 affect SSH的一个安全漏洞,允许未经鉴权的用户绕过某些SSH服务端的访问控制。这个漏洞影响使用以下Diffie-Hellman组密钥交换算法的SSH连接:
kexalgorithms curve25519-sha256,[email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
为了防范这个漏洞,您应该在SSH服务端(sshd)中屏蔽上述算法。
编辑sshd配置文件/etc/ssh/sshd_config,添加如下配置:
KexAlgorithms ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256
这将只保留ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256 算法,并屏蔽基于Diffie-Hellman的密钥交换算法,进而防范CVE-2002-20001漏洞。
重启sshd服务
systemctl restart sshd
验证漏洞是否存在
- 客户端远程时强制指定ssh使用的密钥交换算法
ssh -v -oKexAlgorithms=diffie-hellman-group1-sha1 [email protected]
- 不指定 KexAlgorithms 连接测试
ssh -v [email protected]
标签:sha2,Hellman,Protocol,ecdh,20001,Diffie,diffie,hellman
From: https://blog.51cto.com/chengdumeiyouni/9017560