首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要求用户提供部分PIN

要求用户提供部分PIN
EN

Stack Overflow用户
提问于 2011-09-19 22:44:31
回答 2查看 171关注 0票数 1

我正在为一个web应用程序开发一个额外的安全模块,它要求用户输入在用户注册时随机生成的PIN码。PIN被AES-128加密存储在db中,并通过sms发送给新用户。

当某些情况发生时,用户将被要求提供他的PIN (即,“奇怪的”访问,或不寻常的操作)-我希望用户不要输入整个PIN码,而是只输入2个数字(例如:1和6)。

代码语言:javascript
复制
2 4 6 2 9 1 8 3    -> entire PIN
^---------^----    -> digits i'm asking

我的问题是:选择要询问的数字是更安全的方式吗?我应该随机选择它们(但是拥有PIN的一部分的最终攻击者可以重试,直到他拥有的数字被请求),或者我应该总是要求每个用户提供相同的数字-也许可以用pin加密存储他们的索引,或者使用PIN本身参数化的函数生成它们?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-19 22:47:48

我发现大多数网上银行软件实现这一点的方式是,一旦它被要求提供两位数,它就会一直要求相同的,直到用户阻止帐户(因为有太多的错误尝试)或正确回答为止。在此之后,将为下一次随机选择另外2个数字。

据我所知,这是减轻攻击者攻击的唯一方法,只是简单地重新加载,直到他们得到他们想要的组合。

票数 3
EN

Stack Overflow用户

发布于 2011-09-19 22:47:38

如果你有第二次,more secure way的身份验证,那么请要求随机数字,但在几次失败尝试后锁定帐户。这样,攻击者拥有正确数字的机会非常小,但同样的两个数字泄漏的影响也得到了缓解。

编辑:正如@m.edmondson建议的那样,仅在成功登录后更改配对,而不是在登录之前。

如果你一次又一次地要求相同的两位数,你可能只需要一个两位数的PIN。

如果用户无意中将自己锁定,您始终可以依靠二次身份验证来恢复帐户。

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

https://stackoverflow.com/questions/7472732

复制
相关文章

相似问题

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