进行密码检索/重置的安全方法?
在开始之前,我不使用 OAuth 的原因是我相信这并不是我们真正应该在这个项目中使用的东西,我们的目标是一个将被打包并转售给公司的平台,这些公司连接到他们自己的一组用途,我们真的不希望拥有我们这样的帐户不受 %100 控制,我们不希望它与其他服务共享登录,我们也不希望强迫人们获得 google/yahoo/openID/aol/facebook/blogger/wordpress/whatever帐户。
那么,我想要的是让用户重新设置密码的最佳方法。
我讨厌秘密问题的概念:你去了哪所学校?好吧,让我们检查一下你的 Facebook 页面。你一年级的老师是什么?我们就随便问问他们吧。
我讨厌通过电子邮件使用一次性密码:电子邮件从什么时候开始安全了?你的老板会读它。你每天都向我发送垃圾邮件。它进入了你的垃圾箱。它没有加密发送。
我也不想使用密码来重置密码。这根本没有道理。
我真的不知道最好的方法,所以我想我会询问社区。
Before I begin, my reason for not using OAuth is I believe it is not really something we should be using on this project, we're targeting a platform that will be packaged and resold to companies, which connect to their own set of uses that we really don't want to have accounts that we are not %100 in control of, we don't want it to be a shared-login with other services, and we don't want to force people into getting a google/yahoo/openID/aol/facebook/blogger/wordpress/whatever account.
Now then, What I would like is the best way to let users re-set a password.
I hate the concept of secret-questions: What school did you goto? Well, lets check your facebook page. What was your first-grade teacher? Lets just ask them casually.
I hate using one-time-passwords via email: Since when is email secure? Your boss reads it. Your sending out spam emails to me every day. It went into your junk-bin. It's not sent encrypted.
I don't want to use a password to reset a password either. This just doesn't make sense.
I'm really out of ideas here for the best way to do this, so I figure I would ask the community.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

发布评论
评论(5)
因此,您实际上希望用户证明他就是他所声称的身份,而不透露有关自己的信息(假设您可以通过社交黑客获取任何信息)
有 3 种身份验证方法:您是谁(生物识别)、您拥有的东西(例如加密狗)和您知道的东西(密码、响应...)。 2 路或 3 路身份验证比 1 路身份验证安全得多。
根据定义,密码重置/恢复会降低身份验证过程的安全性,因为它现在不是 A,而是(A 或 B)。 (A= 密码,B=恢复密码)
因此,即使您的身份验证过程是 1 向(密码),您的恢复过程也应该是 2 向身份验证。
让我们看看您对密码恢复过程有哪些选择:
- 您的身份(识别您的系统管理员 - 通常不适合 5000 名员工的组织,声纹 - 实施成本太高,...)
- 您拥有的东西(电子邮件帐户) 、电话号码、...)
- 您知道的信息(个人详细信息)
请注意,带有图片的公司 ID 标签是双向身份验证(既是您的身份,又是您拥有的身份)。
我认为最好的程序是让员工亲自前往 IT 部门,出示带照片的身份证件,并要求重置密码。
如果这是不可行的(太远 - 例如远程分支),请尝试使用可通过电话识别并可信任的deligator,因此员工必须向本地deligator出示ID标签。
如果您无法使用“您的身份”,您将只剩下您拥有的东西(电子邮件、电话号码、您自己的电脑)和您知道的东西(个人详细信息...)。你无法逃避它。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
你的问题是你需要外包信任。如果用户忘记了密码,您将不再有直接的方式来信任他们,因此您必须使用外部来源来重新建立您的关系。
如果您认为电子邮件不安全(实际上确实如此),您可以尝试电话。给他们打电话并提供临时密码。或者传真。或普通邮件,或短信等。
这与重置所经过的电话线/邮政运营商一样安全,并且在大多数地区,电话拦截或篡改邮件会受到法律的严格处罚。
如果这不行,请考虑向用户颁发 OTP 令牌、智能卡或其他东西。
Your problem is that you need to outsource trust. If the user forgets their password, you no longer have a direct way to trust them, so you have to use an outside source to reestablish your relationship.
If you think email is insecure (which it is, actually), you could try telephone. Give them a call with the temporary password. Or a fax. Or snail mail, or an SMS, etc.
This is as secure as the phone lines/postal carriers over which the reset travels, and in most areas, telephone intercepts or tampering with the mail is strictly punished by the law.
If that's no good, consider issuing users an OTP token, or smartcard, or something.