硬件令牌设备如何工作?

Fey*_*ubi 30 hash cryptography hmac one-time-password two-factor-authentication

最近,我的银行发给我这个小设备,它生成一个必须在执行在线交易时使用的唯一代码,当我按下一个特定的白色按钮时,所有设备都会生成这个唯一的代码,它看起来不像是连接到一个远程服务器或其他任何东西.

我做了一些研究,最后在密码学中使用了一种称为Hash函数的东西,但我仍然没有得到它.

我的问题

  • 我银行的服务器如何知道该设备生成的代码是否正确?
  • 由于它每30秒只生成五个随机数字,为什么服务器不会验证我还决定使用的随机数?

Pat*_*k M 42

这与哈希函数几乎没有关系.加密哈希函数可能是实现的一部分,但它不是必需的.

实际上,它会在基于时间的时间间隔内生成数字,如果我按下它的按钮来生成数字,它会生成数字,大约25秒后,我再按一次,数字会在我再次按下时改变我刚刚按下它后立刻.

有你的提示.这是一种基于时间的伪随机或加密算法.根据时间,有一个代码.加密狗和服务器知道 - 或者更确切地说,可以计算 - 每个窗口的代码.这是一个共享密钥 - 加密狗不连接到远程服务器.服务器可能会允许一个或两个最新的密钥,以防止您在传输途中输入刚刚过期的密钥的情况.

(虽然我最近使用Amazon Web Service多因素身份验证的经验肯定会在代码显示给我的5秒内导致登录失败.换句话说,一些供应商对他们的时间窗口非常严格.一如既往,这是一个交易安全性和可用性之间的关系.)

CodesInChaos提到的缩写是基于时间的一次性密码(TOTP)基于HMAC的一次性密码(HOTP),这两种算法通常用于双因素身份验证.

维基百科有关于RSA SecurID的说法,这是一个特殊品牌的双因素认证加密狗.

RSA SecurID身份验证机制由"令牌"组成 - 硬件(例如USB加密狗)或软件(软令牌) - 分配给计算机用户,并使用固定间隔(通常为60秒)生成验证码内置时钟和卡的工厂编码随机密钥(称为"种子").每个令牌的种子都不同,并且在购买令牌时将其加载到相应的RSA SecurID服务器(RSA Authentication Manager,以前的ACE/Server)中.

我之所以选择这篇文章,是因为它具有合理的物理描述; 更高层次的文章关注物理实现的理论.

该文章还确认您需要保持令牌的保密性,或者其他人可以像您一样轻松地了解代码,从而冒充您的登录.

令牌硬件设计为防篡改以阻止逆向工程.当市场上出现相同算法("软件令牌")的软件实现时,安全社区开发了公共代码,允许用户在软件中模拟RSA SecurID,但前提是他们可以访问当前的RSA SecurID代码,以及引入服务器的原始64位RSA SecurID种子文件.

但是,由于验证服务器必须具有令牌的预知,因此双因素机密也容易受到对源的攻击.SecurID是高调盗窃的受害者,它以自己的服务器为目标,并最终导致其客户服务器的二次入侵.

最后,有关多因素标记下的security.stackexchange姊妹站点以及标记下的此站点上提供了更多信息.

  • 非常感谢您的澄清和启发,真的很有帮助。 (2认同)