我确信这个问题适用于您想要使用的任何TFA方法...
我正在一个网站(asp.net C#)上实现谷歌身份验证,但我不能完全理解为用户提供二维码或手动设置代码的流程。
我担心的是,如果黑客知道/猜测初始用户名/密码,我不能向他们显示QR,因为他们将根据有效用户进行身份验证。此外,如果一个合法用户正常登录,发现QR...but在那个时候没有作用,我想再次向他们展示代码,如果给定用户有多个设备(移动设备、平板电脑、台式机),他们希望在这些设备上设置GA身份验证……因此,一次性的二维码是行不通的(尽管显示同样的二维码也可以)。
我的一个想法是允许用户正常登录(没有TFA),并允许他们启用TFA。他们看到他们的设置二维码,我们就很好了。然后,可以通过再次登录(使用新的TFA方法)来设置其他设备,以获得添加这些额外设备的代码。
创建/验证身份验证代码不是我的问题,问题是如何设置而不会有黑客获得设置代码的风险。我找到的所有演示都显示人们登录并立即看到二维码,如果被黑客攻击,这是一个弱点。
正确的流程/实现是什么?
发布于 2018-03-20 21:07:42
二维码包含密钥,用于生成一次性密码(OTP)。只有在令牌注册过程中才需要二维码。用户像往常一样登录(使用用户名和密码,没有2FA),如果他想启用2FA,他将获得二维码(或密钥)。他可以把它保存在某个安全的地方,如果他需要的话-通过其他设备(移动设备、平板电脑、台式机)扫描它来生成OTP。用户每次登录时都不需要显示二维码。在这种情况下,2FA失去了意义。
https://stackoverflow.com/questions/48200156
复制相似问题