请注意,我指的不是像Authy这样的系统,您可以在多个设备上登录到您的帐户,并在它们之间同步令牌--我指的是两个完全不同的设备,它们彼此不了解。
考虑一下消费者网站典型的两因素设置流程:
在步骤3中,如果两个不同的设备扫描条形码,那么它们会开始生成相同的令牌序列吗?如果是这样的话,他们是否需要在大致相同的时间扫描条形码才能以相同的初始值开始呢?
我很好奇,是否有可能从不知情的用户屏幕上浏览条形码,或者,例如,在视频片段中看到条形码(可能来自安全摄像机或当地新闻广播),然后在用户不知情的情况下使用它克隆2FA令牌。
发布于 2015-11-16 16:17:53
基本上是的。
所使用的算法依赖于秘密密钥(通常以条形码形式提供)和精确的时间。在此基础上,给出了服务器可以比较的短代码。
实际上,服务器通常也会在一段时间内接受先前和下一个代码,因为服务器或终端用户设备很可能稍微超出--这取决于服务的安全性,在这种情况下,高安全性实现将假定最终用户拥有非常精确的设备,而安全性较低的设备可能允许用户在任何给定时间提供三个令牌之一。
您可以使用一个条形码设置多个设备来测试这一点--您甚至不需要同时扫描它们。但是,您确实需要它们的时钟保持同步--如果它们稍微出了故障,在更新之前会显示“旧”代码一段时间。
https://security.stackexchange.com/questions/105662
复制相似问题