首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安全登录步骤的分离

安全登录步骤的分离
EN

Security用户
提问于 2014-03-17 10:00:34
回答 3查看 272关注 0票数 5

我正在重新设计一个金融服务应用程序的登录屏幕。目前,这要求用户ID和密码,然后(在同一屏幕上)2位数字从一个6位的PIN被请求-这两个数字只有在用户ID和密码被输入时才会显示出来。

环顾其他金融服务提供商,只在输入其他安全信息后才要求2位PIN数字是一种相当常见的模式。与在单一屏幕上询问所有信息相比,这种方法有什么显著的好处吗?

EN

回答 3

Security用户

发布于 2014-05-19 16:23:43

环顾其他金融服务提供商,只在输入其他安全信息后才要求2位PIN数字是一种相当常见的模式。与在单一屏幕上询问所有信息相比,这种方法有什么显著的好处吗?

我假设您所查看的其他系统只告诉您在第二步之后是否有任何细节是不正确的,并且不要透露凭据的哪一部分是不正确的,这很好。

是的,这有很大的好处,因为只有当确定要验证的用户名时,才会询问数字的索引。

假设攻击者不知何故获得了一些账户的部分细节(例如,通过肩部冲浪)。假设他们知道密码的第2位和第3位。

如果页面询问一个页面上的所有详细信息(用户名、密码和来自PIN的两位数字),攻击者可以简单地刷新页面,每次清除cookie,直到PIN提示为PIN的第2位和第3位为止。

使用两步方法,系统可以记住所要求的数字。例如for username "foo" we asked for the 1st and 4th numbers - we will not ask for any others until these have been entered correctly。系统还必须记住请求无效用户名的数字,以防止用户名枚举攻击,在这种情况下,可以尝试两次不同的用户名,以查看是否请求相同的数字。您还可能希望在设定的天数后人为地刷新这些数字,以模拟成功的登录(否则攻击者会知道帐户在间隔几天的尝试中总是要求相同的两位数,则会知道帐户无效或处于休眠状态)。

另一种方法是在同一页面上要求PIN的所有数字,但银行不喜欢这样做,因为肩部冲浪和钓鱼网站也可以很容易地模仿这些页面,并一次捕获所有信息(虽然我并不是说逐步的方法必然会防止此类攻击)。

票数 1
EN

Security用户

发布于 2014-03-18 08:07:59

我建议让用户在同一个页面上输入用户id、密码和PIN。如果用户只在输入并提交正确的用户id和密码组合后才允许输入PIN,我看不到任何安全好处。

在提交正确的用户id和PIN后,您的方法将需要维护状态。就像一次会议。一旦用户有了会话,风险就是由于实现错误,用户可以在不提供PIN的情况下与此会话一起使用服务。

您提出的方法增加了身份验证过程的复杂性。复杂性增加了出错的风险。身份验证过程应该保持简单,以减少错误的风险。

我能想到一些金融服务为什么要这么做(在成功的用户id/密码身份验证之后的PIN)的唯一原因是用户的可用性。如果用户必须在一步内提供用户id、密码和PIN,那么某些数据出错的概率就会增加。服务不允许告诉用户哪个字段是错误的,因为这将是攻击者的提示。因此,服务会告诉用户某些地方出了问题,用户必须再次检查所有字段。如果在第二步中输入了PIN,并且用户犯了错误,则用户知道PIN是不正确的。

票数 0
EN

Security用户

发布于 2014-03-19 12:48:45

我认为从PIN和密码中获取2位数字没有任何好处。这只是“你知道”的两个因素。它不提供额外的身份验证因素,而且对用户来说是个麻烦。

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

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

复制
相关文章

相似问题

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