聚焦源代码安全,网罗国内外最新资讯!
作者:Catalin Cimpanu
翻译:360代码卫士团队
继上周爆发KRACK和ROCA加密攻击后,这周又现类似攻击——DUHK(Don’t Use Hard-codedKeys,中文:不要使用硬编码密钥)。
造成DUHK攻击的原因主要有两个。
第一个因素是使用ANSIX9.31随机数发生器(RNG)。这种算法会通过随机数生成加密密钥,保护VPN连接、浏览会话和其它加密流量/数据的安全。第二个因素是,硬件供应商在ANSI X9.31 RNG算法中使用了硬编码的“种子密钥”。在正常情况下,供应商应当在设备启动或者在推出ANSIX9.31算法前生成一个随机种子密钥。
也就是说,如果你的硬件/软件产品结合使用ANSI X9.31并且部署了一个硬编码的种子密钥,那么攻击者就能解密通过该设备执行的加密通信。这些通信包括通过VPN连接或者执行登录凭证、付款信息、内联网信息、企业机密信息等的加密网络会话。
DUHK攻击是由一名宾夕法尼亚大学的研究人员和另外一名约翰霍普斯金大学的研究人员发现的。
研究人员在论文《针对遗留RNG实现的实际状态恢复攻击》中指出,他们能够从FortinetFortiGate设备中恢复加密流量。该设备的客户遍布全球,或用作防火墙或用于创建私有VPN网络。
研究人员表示,他们逆向工程FortiGate固件图像后发现了硬编码的种子密钥,随后观测到来自受影响设备的流量,之后他们通过这个种子密钥暴力破解了加密数据来猜测剩下的加密参数。他们据此判断除了主要的加密密钥。
运行FortiOS4.3.0至FortiOS4.3.18版本的FortinetFortiGate设备均易受DUHK攻击 (CVE-2016-8492)。FortiOS 5.x并未受影响。同时,经研究人员联系后,Fortinet删除了FortiOS 4.3.19之后版本中的硬编码种子密钥。
研究人员在论文中表示,发现超过2.3万老旧Fortinet 4.x设备被暴露到网上。实际情况可能比这个数字更多,因为某些设备可能位于设置有防火墙的网络中,但它们仍然易受攻击。
DUHK攻击不可小觑,研究人员表示在实际情况下,使用现代计算机的研究人员能够以4分钟/连接的速度恢复加密密钥。
实施DUHK攻击无需用户交互,攻击者所需的就是获得能观测到来自易受攻击设备的流量。由于这是一种被动式的网络攻击,因此攻击发生时受害者无法检测到。
研究人员还警告称,其它硬件和软件产品可能也受DUHK攻击影响。他们还公布了存在硬编码的ANSI X9.31种子密钥的产品清单。

ANSI X9.31 RNG算法之所以流行是因为ANSI X9.31使用广泛。截止2016年1月,该算法已被列入美国政府(FIPS) 信任的RNG算法名单中。
ANSI X9.31在2016年前仍然还列在上述名单上,即使US NIST在2011年将其降级;而早在1998年,研究人员就警告称如果种子密钥遭泄露,那么该算法会崩溃。
研究人员在论文中表示,“如果你的产品是在2016年1月之后认证的,那么就不受影响。如果是认证了X9.31RNG,无论是在何时认证的,FIPS认证都未阻止整个实现漏洞。”原因是厂商可能已经执行了受FIPS批准的ANSI X9.31,但如果他们在固件中留下了硬编码的种子密钥,那么他们会自动在自己设备的加密中留下后门。
更多详情可见专门主页以及其中一名研究人员Matthew Green撰写的博客。
黑客破解IOS的Secure Enclave固件解密密钥只为苹果提个醒?
本文由360代码卫士编译,不代表360观点,转载请注明 “转自360代码卫士www.codesafe.cn”。
原文链接:
https://www.bleepingcomputer.com/news/security/duhk-crypto-attack-recovers-encryption-keys-exposes-vpn-connections-more/

