可以预测 RSA SecurID 令牌上的数字吗?

信息安全 随机的 密码学
2021-08-21 07:12:55

在此处输入图像描述

我的工作场所使用这些为您提供临时密码的 SecurID 令牌,该代码将在短时间内过期。我一直对这些东西很着迷,因为似乎计算下一个数字的所有逻辑都必须在物理上位于设备内部。

给定对令牌的物理访问权限,是否可以预测数字?如何?如果没有物理访问,理论上是否可以从先前的数字预测未来的数字,无论是否了解种子?

*我不是试图破解它,只是出于对数学的好奇!

3个回答

SecurID令牌所做的不是完全公开的;RSA(该公司)非常不愿意发布细节。可以推断如下:

  • 每个设备都嵌入一个种子每个种子都特定于一个设备。
  • 可以根据主种子和设备序列号确定性地计算设备的种子。序列号印在设备上。此计算使用加密单向函数,因此您无法从设备种子中猜测主种子。
  • 根据设备种子和内部时钟,计算数字,再次使用加密单向函数。
  • 推导算法已经泄露,如果仅仅是因为验证服务器也必须运行相同的算法,那么这些算法作为具体的软件存在于各个地方;在这些情况下,泄漏和逆向工程几乎是不可避免的。

在这些假设下,那么:

  • 如果您知道设备种子,那么您可以随意计算未来的数字。
  • 如果您知道主种子和设备序列号,则可以计算设备种子。
  • 知道来自其他设备的种子应该不会让您猜测给定设备的种子,除非将主种子变成设备种子的加密单向函数以某种方式被搞砸了。
  • 从令牌中知道过去的数字应该不会让您从同一个设备猜测未来的数字,除非将设备种子转换为数字的加密单向函数以某种方式被搞砸了。
  • 从物理设备本身中提取设备种子在理论上是可行的,但成本高昂,因为该设备是防篡改的:它是装甲的并且充满了传感器,如果它检测到任何违规行为,它就会以电子方式自杀。如果我们以智能卡为例,提取设备种子可能要花费数千美元,并且会对设备造成破坏(因此您不能谨慎地进行操作)。

2011 年 3 月,一些系统在 RSA 中受到攻击,攻击者似乎很可能设法窃取了一个或几个主种子(这些设备是建立在“家庭”中的,因此有几个主种子是合理的)。RSA 已声明必须更换 4000 万个 SecurID 令牌。如果您知道代币的序列号(可能印在代币的外面),您可以使用Cain & Abel@dls 指向的工具;据推测,该工具实现了泄露的算法和主种子,因此可以产生未来的令牌输出(我没有尝试过)。这仅适用于仍接受要替换的 4000 万批令牌的服务器。我不知道 RSA 及其客户在这个过程中走了多远,所以这种攻击可能不再起作用了。这实际上取决于管理您攻击的服务器的人员的反应。

(如果这些系统管理员在九个月后还没有更换受感染的设备,那么他们很可能在安全问题上相当松懈,服务器可能还有很多其他可远程利用的安全漏洞。)

如果你有它的秘密信息,你可以像它一样生成数字。如果你不这样做,理论上可以根据你所看到的做出预测,因为这些数字在数学上是相关的。然而,它们的关系非常复杂,以至于人们认为这样做在计算上是不可行的。也就是说,进行该预测所需的计算量将比令牌的生命周期花费更多的时间。例如,如果一个平均令牌每 10 年更换一次,那么在所有已知计算机并行运行时,计算其秘密信息或其一系列值的算法在实践中将无济于事。

这种计算上的不可行性是所有有用的数学密码系统的基础。但在所有情况下,我们所拥有的只是加密工具,在这些工具中,逆向它们或解决它们的秘密信息被认为在计算上是不可行的。新的发现可能表明,一些计划比人们认为的更容易破解。

我在 RSA 从事 SecurID 项目。前面的答案是正确的。

如果您知道种子,您就有机会计算出密码(显示的临时密码)。但是所有设备在制造时都被赋予了一个随机种子,并且种子值不会存储在任何地方。

即使您拥有身份验证管理器,也无法猜测密码,因为只有管理员才能上传令牌列表。此列表中的信息对于生成特定 SecurID 或软令牌的密码是必需的。如果启用了按需身份验证,用户可以通过 SMS 或电子邮件请求密码,但密码仍然基于分配给用户的令牌。