FavoriteLoading
0

RSA 因式分解攻击漏洞 CVE-2017-15361

 

由Infineon Technologies AG制造的密码智能卡,安全令牌和其他安全硬件芯片中使用的软件库使用的RSA密钥的新发现漏洞允许实际的因式分解攻击,攻击者计算RSA密钥的私有部分。这种攻击对于常用的密钥长度是可行的,包括1024和2048位,并且影响到早在2012年制造的芯片,现在已经很普遍了。现在使用提供的离线和在线检测工具评估您的密钥,   如果受影响,请与您的供应商联系。

包括微软,Google,惠普,联想,富士通在内的主要厂商已经发布了软件更新和缓解指南。全面的细节,包括分解方法将在ACM CCS大会上的两周内发布,   作为“Coppersmith的攻击回归:广泛使用的RSA模量的实际因式分解”(ROCA)研究论文。

在由Infineon Technologies AG生产​​的各种加密芯片中使用的加密库中实施RSA关键字生成时发现了一个安全漏洞。该产品还集成在用于操作系统的可信引导的其他供应商和芯片的身份验证,签名和加密令牌中。自从至少在2012年以来,该漏洞存在于NIST FIPS 140-2和CC EAL 5+认证设备中。

算法脆弱性的特征在于生成的RSA素数的特定结构,这使得常用密钥长度的因式分解包括1024和2048比特的实际可能性。只有公钥知识是必要的,不需要物理访问易受攻击的设备。该漏洞不依赖于弱或有缺陷的随机数发生器 – 所有由脆弱芯片产生的RSA密钥都受到影响。对几个随机选择的1024位RSA密钥和几个选定的2048位密钥进行了实际验证。

所涉及的素数的具体结构允许快速检测易受攻击的密钥,即使在非常大的数据集中。此属性可用于缓解(用户可以评估自己的漏洞密钥),但对于潜在的攻击者(可能会预先选择易受因素分解的密钥,而不经历耗时的因式分解尝试)。对于1024和2048位密钥进行分解的最坏情况分别在最近的一个CPU的单个核心上分别小于3个CPU月和100个CPU年,而预期时间是最坏情况的一半。可以在多个CPU上轻松并行分解因子。当  k个  CPU可用时,攻击所需的墙壁时间将减少  k次 – 允许按照几小时或几天的顺序进行实际的分解。亚马逊AWS c4计算实例的分解率最差的价格为1024位密钥为76美元,2048位密钥约为40,000美元。

因子分解攻击的难度对于所有关键长度来说是不一样的,并不是严格增加(一些较长的密钥可能需要较少的时间来比较其他较短的密钥)。以下密钥长度范围现在被认为是实际可分解的(时间复杂度在最小为1000个CPU年之间):512到704位,992到1216位和1984到2144位。请注意,4096位的RSA密钥现在不是几乎可以分解的,但是如果攻击得到改善,则可能会变得如此。

所选密钥长度的时间复杂度和成本(英特尔E5-2650 v3 @ 3GHz Q2 / 2014):

 

 

512位RSA密钥 -  2个CPU小时(成本为0.06美元);
1024位RSA密钥 -  97 CPU天(成本为40- $ 80);
2048位RSA密钥 -  140.8 CPU年($ 20,000  -  $ 40,000)。

通过对科萨实验室,马萨里克大学,谜桥和Ca’Foscari大学的研究人员仔细检查大量制造商智能卡产生和出口的RSA密钥。全面的结果将在10月30日开始的ACM计算机和通信安全会议(ACM CCS ’17)上发表。

根据负责任的披露原则,英飞凌科技股份有限公司在二月份的第一个星期内向英飞凌科技公司披露了这一漏洞,并在公开披露前8个月内达成协议。我们与制造商和其他受影响的各方合作,在此期间帮助评估和减轻此漏洞。包括微软,Google,惠普,联想,富士通在内的主要厂商已经发布了软件更新和缓解指南。我们现在正在通知公众,并发布个人密钥评估工具。
碰撞

远程攻击者可以从公钥的值计算RSA私钥。私钥可能被误用为冒充合法所有者,解密敏感信息,伪造签名(如软件版本)以及其他相关攻击。

该漏洞的实际影响取决于使用场景,公用密钥的可用性和使用的密钥长度。我们发现并分析了各种领域的弱势密钥,包括电子公民文件,认证令牌,可信引导设备,软件包签名,TLS / HTTPS密钥和PGP。目前确认的易受攻击的密钥数量约为76万,但更可能达到二至三个数量级。细节将在两周内在ACM CCS大会上公布。

弱点芯片是普及的,不一定由英飞凌科技股份公司直接销售,因为芯片可以嵌入其他厂商的设备。
检测工具,缓解和解决方法

第一步是检测您是否在易受攻击的库中使用芯片。由于漏洞存在于片上软件库中,而不仅限于特定批次的硬件,唯一可靠的方法是在设备上生成RSA密钥对,并通过提供的工具测试公钥(见下文)。建议同时测试已经使用的密钥。我们相信这些工具非常准确 – 安全密钥极不可能被标记,并且漏洞密钥将被漏掉。

我们提供以下工具:

 

离线测试人员:Python / Java / C ++应用程序和教程(https://github.com/crocs-muni/roca)。我们根据麻省理工学院许可证发布所有离线工具,以便嵌入到其他测试应用程序和服务中。
在线测试人员:将公钥上传到https://keychest.net/roca或https://keytester.cryptosense.com以测试您的密钥。
电子邮件S-MIME / PGP测试人员:通过分析签名密钥漏洞,将签名的电子邮件发送至roca@keychest.net 以获取自动电子邮件响应。

如果找到易受攻击的密钥,那么您应该联系您的设备供应商以获得进一步的建议。

以下一般建议可能适用:

应用软件更新(如果可用)。
将设备替换为没有易受攻击的库的设备。
在设备外部(例如,通过OpenSSL库)生成安全的RSA密钥对,并将其导入设备。我们不知道与密钥的实际使用有关的任何漏洞,只有生成阶段有确认的漏洞。
在受影响的设备上使用其他加密算法(例如,ECC)而不是RSA。
在您的环境中应用额外的风险管理,如果使用的RSA密钥被检测为易受攻击。
使用我们的因式分解方法来使用当前不受影响的密钥长度(例如,3936位)。请注意:只能将此特定缓解作为最后的手段,因为攻击可能会得到改善。

 

2017年11月2日 - 在ACM CCS大会上介绍所有细节(即将到来)
2017年10月16日 - 公开披露的初始版本
2017年5月至10月 - 与制造商和其他受影响的各方合作,帮助评估和减轻脆弱性
2月1日 - 向英飞凌科技公司披露的漏洞
1月底 - 发现漏洞

提问:

问: RSA算法在披露此漏洞后是否一般不安全?
A: 否。如果RSA素数作为真正的随机数生成,我们的方法不能应用。例如,由OpenSSL库生成的密钥不受影响。

问: 我如何确定我的钥匙不受影响?
A: 运行 提供的检测工具之一。我们认为这个工具实际上没有任何误报(如果一个关键被标记为易受攻击,那么它是脆弱的),并且没有任何错误的否定(如果一个关键字被检测不到是脆弱的,那么这个攻击是安全的)。

问: 如何减轻漏洞?
答:请 联系您的供应商并寻求帮助,如果可用,应用补丁。

问: 微软,Google和其他供应商最近(10月10日)有关可信平台模块(TPM)的安全建议。这是否与本披露中宣布的漏洞相关?
答:是的,这是由于受影响的设备在易受攻击的库中使用TPM而发现的漏洞的直接结果。

问: 在受影响的芯片上产生的ECC密钥是否易受攻击?
答: 不,我们发现在脆弱性库的ECC密钥生成中没有漏洞。

问: Coppershmith的攻击已经被用来分解加密智能卡的密钥。这是同一个漏洞的一个实例吗?
A: 不,这个是不一样的。丹尼尔·伯恩斯坦,云安昌,陈成梅,李平平,Nadia Heninger,Tanja Lange和Nicko van Someren在2013年设计了一种利用台湾公民卡片上的有缺陷随机数发生器的方法,由于制造某些卡中的缺陷 https://smartfacts.cr.yp.to/smartfacts-20130916.pdf。这个新漏洞适用于配备有易受攻击的库的所有芯片。

问: 这个漏洞是怎么发现的?
答: 我们分析了在以前在USENIX Security 2016会议(https://www.usenix.org/conference/usenixsecurity16/technical-sessions/)上发表的研究工作中,从各种智能卡生成和提取的大量RSA密钥的统计特性。演示/ svenda)。不进行芯片或库的逆向工程。

问: FIDO U2F身份验证令牌是否受到影响?
答: 不可以。U2F规格仅允许基于ECC的身份验证。

漏洞演讲:

论文题目:Coppersmith攻击的回归:广泛使用的RSA模块的实际因式分析[ACM CCS 2017]
作者:Matus Nemec,Marek Sys,Petr Svenda,Dusan Klinec和Vashek Matyas
主要联系人: Petr Svenda svenda@fi.muni.cz

会议页面: ACM CCS 2017
下载作者预印本:(将于11月2日发布)