我使用RFC 4226为我的网站实施了一次性密码系统。此密码通过SMS发送到移动设备。用户只能在其移动设备上接收密码,密码将在15分钟后过期。
用户还拥有通常使用的标准字母数字“主密码”。我已经实现了3个故障锁定工作流程。这种锁定持续15分钟。
我的问题是从安全的角度来看,仅锁定“主密码”是否可以接受?如果用户使用一次性密码功能,我是否应该允许用户使用锁定策略?我打开任何安全漏洞吗?
答案 0 :(得分:3)
这不完全是你问题的答案,但在构建这样的系统时,你必须记住,每当两个枪托头时,可用性就胜过安全。您对最终用户制定安全策略越是艰难,他们就越有动力提出不安全的解决方法来完成工作。
Schneier said it比我在这里总结更好,我建议你在那里阅读他的东西。
答案 1 :(得分:2)
我理解您对安全性与可用性的观点,我提供了实施静态密码锁定机制,这已成为几乎每个网站的事实标准。
here解释得非常好,所以我不需要再打字:
大多数密码锁定机制 今天是静态的,这意味着,他们 在一定数量后锁定用户 密码尝试错误。这个 实现功能以防止 蛮力企图反对登录 功能。即使这样 功能做它应该做的,它 也有自己的缺点。从一个 从安全角度来看,这个功能 可以被坏人滥用来锁定 大多数或所有用户写一个 所有可能的脚本 a的排列和组合 用户名(主要是字母表, 如果不是字母数字),导致a 拒绝服务。
从可用性 观点来看,总有一个 关于尝试的次数的争论 在锁定用户之前被允许 帐户。大多数网站允许3 尝试,而一些(很少)允许5 或者有时候7.
Intellipass 试图缩小差距 安全性和可用性之间 此功能的一个方面。通过存储 用户的每次登录尝试, Intellipass可以智能化 了解用户过去的行为和 按指示行动。对于前者如果是用户 然后,每次都把自己锁起来 Intellipass会动态增加 尝试次数从3到5或 从5到7.另一方面,如果一个 用户第一次或第二次登录 每次他或她试图登录 过去,但由于某种原因 这次尝试了3次, Intellipass将自动减少 尝试次数从7到5或 5至3.第二部分 Intellipass随意投入 验证码或插入之间的时间延迟 登录尝试阻止 自动攻击。