首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >密码中的双因素身份验证后缀代码

密码中的双因素身份验证后缀代码
EN

Security用户
提问于 2020-06-04 15:58:04
回答 2查看 140关注 0票数 1

在启用2FA的许多站点中,登录流是:

  1. 询问用户名/密码的表单
  2. 如果凭据有效,则新表单将请求验证代码。

但是,在某些实现中,验证代码会后缀到密码中,因此流只是一个请求usernamepassword+verification_code的表单。

哪种方法提供了更好的安全性?

EN

回答 2

Security用户

发布于 2020-06-04 16:41:32

让我们假设用户知道它的用户名、密码(当然),并且可以访问它的双因素身份验证(2FA)代码。

在服务器端,如果我们知道代码是整个字符串的最后6位数字,那么在相同的字段中让password+verification_code从对方提取密码和代码会带来轻微的开销。我们必须解密,拆分,对照数据库检查,然后允许用户。但我确实看到了这一点的好处,跳过了一跳的用户交互和连接。这意味着将认证期和通信时间缩短到接近一半。

对我来说,这对最终用户来说是一种方便,他们对方便有什么看法呢?尤其是在安全问题上。方便会增加风险。

哪种方法提供了更好的安全性?

当涉及到两个单独的表单,一个用于用户名/密码,另一个用于2FA代码时,这本身就提供了隔离,这是两种不同形式之间的一条不同的界线,用于不同的用途。在这一领域中,隔离是非常重要的。

在成功的凭据为POSTed时,提供不同会话或唯一令牌的实现是很好的实践。这就引出了下一步,一个新的页面/表单,它提示用户输入2FA代码。这个实践就是要分别发送两条密钥信息,一条是你知道的东西,比如你的用户名/密码,另一条是你拥有的东西,比如一个2FA物理令牌或者一个认证程序。

票数 1
EN

Security用户

发布于 2020-06-04 22:38:34

我不认为从您的示例中实现2fa的方式在安全性方面没有明显的差别。

在这两种情况下,服务器都接收用户名、密码和唯一的2fa令牌。在这两种情况下,攻击者都会发现如果没有2fa代码,就不可能使用被盗的密码并登录。

虽然单独使用2fa表单看起来很有吸引力,但它也存在一些缺陷,比如只有当用户名和密码组合正确时才会请求2fa令牌,这表明密码是否正确,这可能会帮助攻击者。但我离题了。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/232724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档