我已经观察到了一些基于web的登录表单,它们在确认用户名和密码之后,在第二个表单上提供了2因素身份验证,做令牌条目。
是否有理由不要求人们在他们的用户名和密码同时使用他们的2因素身份验证令牌?
登录表单可以检测到在登录之前启用了2因素身份验证的用户名,并在登录页面上为他们提供一个令牌输入框。
这将泄露是否任何给定的用户名都启用了2因素身份验证,但如果没有有效的令牌就无法确认有效的密码。
发布于 2015-04-29 11:03:32
许多OTP系统允许您通过SMS/电子邮件接收OTP。所以系统必须知道什么时候给你发送OTP。
您可能会建议,表单旁边可能只有一个"request“按钮。但是,任何人都可以反复点击这个按钮,这意味着你会收到大量的垃圾邮件/短信。
您可能会建议通过限制OTP的速率来解决这个问题。但是,我可以通过请求您的全部OTP配额,从而使您无法登录,从而导致拒绝服务。
对此,一个简单的解决方案是只向已提供有效密码的用户发送OTP。
发布于 2014-04-10 08:37:10
我不认为在同时询问密码和第二个因素(令牌/生物特征)时存在任何安全问题。
事实上,这增加了系统的安全性,但它可能会影响系统的可用性(用户体验)。怎么会这样呢?
让我们说,系统采取的两个认证因素(密码和OTP)在同一点,并测试他们。如果两者匹配/传递,则允许访问,否则将拒绝访问。
让我们假设有100个可能的密码和200个可能的OTP代码。
如果首先请求密码,然后收到有效密码,则攻击者需要尝试300次(100 + 200)才能进入系统。
但是,如果您同时请求密码和OTP,攻击者将需要尝试20000次(100 * 200)才能侵入系统。
现在,从可用性的角度来看,如果用户输入了错误的密码或OTP代码,系统将不会确切地告诉他出了什么问题,他可能会继续做同样的错误,例如输入错误的密码,因为他认为它是正确的,而他的OTP令牌的实际问题或者相反的情况。
发布于 2014-04-10 02:04:28
可能有许多非技术原因,可能是驱动程序的性能,因为它减少了后端的一些不需要调用的处理程序的负载。
另一种可能是使建立一个网络钓鱼网站更加困难。您现在需要对多个页面进行编程。此外,如果您只在有成功的username+password (您知道的身份验证)时才显示OTP,则很难创建钓鱼站点,并为用户提供更多的页面以供用户注意。安全图像通常被称为最小值,因为进程通常是用户名,然后显示安全映像(例如SiteKey),然后显示密码。但是,如果您只使用用户名>密码->安全映像>OTP两个因素来更改此操作,则创建钓鱼站点将变得更加复杂,尽管这并不是不可能的,因为网络钓鱼站点可以用用户名和密码模拟用户会话到真实站点。
以下问题一般用于在多个页面上展开登录:
https://security.stackexchange.com/questions/55318
复制相似问题