我现在正在建立一个密码重置系统,我遇到了一个小麻烦。
目前,我们有一个系统,创建一个长的md5有(16个字符)和电子邮件,一个链接到客户,然后他们点击,并可以重置他们的密码。
然而,现在我们想要远离把链接到电子邮件,并使客户意识到这一点,以应对仿冒攻击。
我的解决方案是创建一个5-6位数字的引脚号码,并通过电子邮件以文本形式发送给客户。
然而,这感觉似乎我们正在增加安全性,从电子邮件中的链接转移,但降低安全性,使安全令牌更容易猜测。
有人对此有任何建议或看法吗?
发布于 2014-07-02 15:57:08
我同意@schroeder的观点,即密码重置电子邮件是指示用户点击链接更容易被接受的领域之一。毕竟,是用户触发了密码重置,应该期待收到一封电子邮件。您可以在邮件中添加以下内容:“此邮件是根据您的请求发送的。如果您没有请求重新设置密码,那么请不要单击此链接。通常,您不应该在意外的电子邮件中单击任何链接,即使它看起来是合法的。”
我鼓励您重新考虑这一点的原因是,您的选择(使用PIN)对用户来说将更加复杂,可能会给您带来更多的麻烦。撇开PIN的复杂性不谈,您将不得不指示用户该做什么,而这些指令将需要您告诉他们在您的站点上输入代码的位置。虽然说“去我们的网站主页,点击忘记的密码,并点击进入复位PIN”不是火箭科学,你仍然会让用户抱怨,他们找不到按钮,否则会感到困惑的做什么。让他们简单地点击一个链接,消除了很多这种混乱。
关于PIN的复杂性,您应该能够做一些事情来抵消与散列相比,随机6位PIN的“键空间”的减少。您可以添加字母和一些符号,以增加可能组合的数量。您不仅可以提示用户重置PIN,还可以提示用户的电子邮件地址(这要求攻击者猜测的不仅仅是有效的PIN)。您还可以添加CAPTCHA或其他“活性”检查,以阻止PIN输入时的自动猜测。最后,您可以监视PIN重置尝试并阻止提交大量猜测的IP(或以其他方式延迟它们)。
就像基于链接的密码重置功能一样,这些PIN只对一次使用有效,并且应该在30-60分钟内过期,不管它们是否被使用。
通过采取这样的步骤,您可以消除针对基于PIN的密码重置系统的更可能的威胁。
发布于 2014-07-02 15:37:49
令牌只是为了验证您是否收到了电子邮件,您是否拥有该帐户。
电子邮件中的密码重置链接是一种方便,它提供了证明您拥有电子邮件帐户的证据,并允许您轻松访问密码重置工作流。
这些标记不需要长期居住在任何地方,如果你想的话,你可以在一些失败的尝试之后使它们失效。所以你不需要巨大的熵,就像MFA令牌不需要一样。
https://security.stackexchange.com/questions/62317
复制相似问题