关注网络安全
和行业未来

ROCA攻击是如何工作的?

10月17日,一群捷克研究人员宣布他们已经找到了一种方法来分析由英飞凌(Infineon)科技股份公司生产的硬件产生的许多RSA公钥的模数。 技术细节在11月2日由计算机协会主办的2017年计算机与通信安全会议上发表。

该技术仅适用于英飞凌库生成的密钥对,因为它利用了它们用来生成RSA素数的独特方法。 其他方法和库生成的密钥对不受影响。 不过,英飞凌的库非常受欢迎,并且在很多情况下使用,特别是智能卡。 用于公共网站的RSA密钥通常不太可能由这样的硬件产生,尽管已知某些情况存在,并且证书管理机构正在努力通知客户并取代易受攻击的密钥。

该攻击的工作机制很有意思。我们知道,RSA公钥是一对证书(N,e),N很大,e通常是65537。RSA密钥是(p,q),为N的两大素数因子。任何持有私钥的人可执行密钥对所有者可执行的任何操作。但由于N太大不能被分解,想要从公钥中获得私钥,通常是不太可能的。

这两个素数通常被选择为接近N的平方根,并且由于N很大,所以有很多很多合适的选择。 从众多候选人中挑选一个随机素使其无法猜测哪些素数有可能被选中。 然而,关于如何最好地选择RSA素数,以及随机选择数字并测试它们是否为素数的计算成本非常昂贵,尤其在智能卡上存在显著的分歧。

相反,候选素数通常是由一些专有算法来选择的,这些算法从一些较小的子集中选择候选,而这些子集更可能是质数,并具有其他有用的安全属性(特别是对于微妙的数学原因,确保p -1和q-1没有小素因子)。 这群研究人员去年发表了一篇论文,表明RSA密钥生成算法有很大的不同,只需要查看公共模数N的数学性质即可确定它们。而他们在之前的研究中发现,英飞凌生产的公钥拥有相当奇怪的统计特性,暗示他们是从小得多的子集中挑选的数字。

英飞凌的素数都是这样形成的:

p = k * M +(65537 ^ a mod M)

其中M是前几个素数的乘积,直到其大小与p的期望大小相当。

由于M是小素数的乘积,所以它就是所谓的“平滑”数,它所生成的乘法群具有各种有用的数学性质。其次,RSA有一个称为Coppersmith的攻击的攻击,当一些关于它的信息已知时,可以找到私钥的其余部分。这些机智的改进和优化最终就恶意非常高效地从部分这些公钥中直接恢复私钥,甚至都不用访问设备本身。

尽管这一研究让人背脊发凉,但实际上只对英飞凌的素数选择算法有效。这些很少用作网络PKI的一部分的密钥,以及正在使用但会被迅速替换的密钥。在网络PKI之外,其影响要严重得多,许多数字身份证件都很脆弱,笔记本电脑上使用的可信平台模块中有相当一部分受到影响。

 

稿源: CA Security COUNCIL

评论 抢沙发