使用密码而不是密码进行身份验证有多安全?我在Laravel 5.5中设计了一个小型CRM,但我还没有使用任何现代方法来创建一个安全的登录系统。但是,我更希望用户能够使用PIN而不是密码登录,因为它在iOS和Android应用程序上也更容易,这也是Barclays是我最喜欢的应用程序之一的原因之一。如果有人能够发出一些亮点并指出我正确的方向,那将是一个巨大的帮助。谢谢: - )
答案 0 :(得分:1)
TL; DR:在考虑引脚输入之前,应存在先前的会话。
只有在用户通过身份验证后,才能使用该引脚。对于本机应用程序,使用该应用程序的设备通常仅由一个(或极少数)人使用。初始登录需要用户名和密码。引脚基本上是现有会话的守门员。
经过身份验证后,用户可以为其会话分配一个引脚(存储在设备上)。引脚条目应该只允许这么多无效尝试而不是无限次尝试。这可以防止蛮力或顺序攻击/滥用引脚进入的能力。如果X尝试后引脚条目失败,则清除会话和相关数据,然后再次提示输入用户名/密码。
与密码一样,请勿以明文形式存储引脚。用随机盐来哈希,就像在Laravel中使用Hash
外观一样。
(如果我遗漏任何东西,请加上这个!)
答案 1 :(得分:0)
我认为它相对安全,当然由于可能的组合数量,它不如实际密码安全。因此找出引脚会相对容易一些。下面是组合数量的比较。
如果您的引脚由4个数字组成,那么有10000种可能的组合。我认为现在大多数密码至少有8个字符?我不知道可以使用多少个可能的不同字符,但是如果它的72(大写&小写&数字和0- 9的移位组合)那么那将导致72 ^ 8种可能的组合,这是关于7,2 * 10 ^ 14种组合。所以当然密码更安全。
但是我有一些想法可能会给你一些想法,你可以设置最大的尝试次数,就像现在大多数手机一样。因此,例如,如果最大尝试次数为4次,并且您将错误的引脚放入4次,那么它将锁定并需要诸如电子邮件身份验证之类的内容再次解锁。
您还可以说您不希望将其限制为仅数字,还可以添加大写和小写字符。如果引脚长4个字符,那么将有62 ^ 4(26(字母)+ 26 + 10 = 62)可能的组合,这是大约1480万个组合。这是非常多的。
我希望这会对你有所帮助,祝你好运:D
(顺便说一下,由于我没有足够的积分,我无法添加评论)