来自Wired杂志:
......佩林黑客不需要任何东西 真正的技巧。相反,黑客只是 用她重置佩林的密码 生日,邮政编码和信息 关于她在哪里见到她的配偶 - 雅虎的安全问题 帐号,已被回答(瓦西拉 高)通过简单的谷歌搜索。
我们不能相信此security questions重置忘记的密码。
你如何设计一个更好的系统?
答案 0 :(得分:19)
所谓的“安全问题”的不安全性早已为人所知。正如Bruce Schneier puts it:
结果是正常的安全协议(密码)回归到安全性较低的协议(秘密问题)。并且整个系统的安全性受到损害。
一个人可以做什么?我通常的技巧是输入一个完全随机的答案 - 我疯狂地敲击键盘几秒钟 - 然后忘了它。这可以确保某些攻击者无法绕过我的密码并尝试猜测我的秘密问题的答案,但如果忘记密码则会非常不愉快。有一次这发生在我身上,我不得不打电话给公司以获取我的密码并重置问题。 (老实说,我不记得我是如何通过电话线的另一端向客户服务代表验证自己的。)
我认为更好的技术是发送一封电子邮件,其中包含可用于生成用户最初用于注册的电子邮件帐户的新随机密码的链接。如果他们没有请求新密码,他们可以忽略它并继续使用旧密码。正如其他人所指出的那样,这并不一定有助于雅虎,因为他们正在运行电子邮件服务,但对于大多数其他服务,电子邮件是一种不错的身份验证措施(实际上,你强制解决了身份验证问题)用户的电子邮件提供商。)
当然,你可以使用OpenID。
答案 1 :(得分:17)
带外通信是最佳选择。
例如,在SMS中发送临时密码可能是可以接受的(取决于系统)。我已经看到这通常由电信实施,其中短信便宜/免费/部分业务,并且用户的手机号码已预先注册...
银行经常需要拨打特定号码的电话,但我个人对此并不太疯狂....
当然,根据系统的不同,强制用户进入分支机构以亲自识别自己也可以正常工作(只是让用户烦恼)。
最重要的是,请勿创建较弱的渠道来绕过强密码要求。
答案 2 :(得分:9)
看过很多海报建议发送电子邮件,我所能建议的是 DONT 使用电子邮件作为您的防线。
妥协somebodys电子邮件帐户可能相对容易。许多基于Web的电子邮件服务 DONT 也提供任何真正的安全性,即使它们提供SSL,它通常也不是默认,您仍然依赖于的弱点电子邮件密码以保护用户(其中大部分时间都有重置机制)。
电子邮件是最不安全的技术之一,并且有很好的理由为什么在信用卡详细信息上发送信息这是一个非常糟糕的主意。它们通常以明文形式在服务器之间传输,同样经常在服务器和桌面客户端之间以相同的方式进行传输,所需要的只是通过电线嗅探来获取重置URL并触发它。 (不要说我是偏执狂,因为银行使用SSL加密是因为好的原因。你怎么能相信路线上的20-200个物理设备有良好的意图?)
获得重置数据后,您可以重置密码,然后更改您的(他们的)电子邮件地址,并永久控制其帐户(它始终发生)。
如果他们获得了您的电子邮件帐户,他们所要做的就是浏览您的收件箱以找到您订阅的对象,然后轻松重置密码全部 < / p>
现在,使用基于电子邮件的安全性可能会导致 propogative 安全漏洞!我相信这很有用!。
被问到的问题我认为单独使用软件几乎是不可能的。这就是我们使用硬件加密狗进行双因素身份验证的原因,这些加密狗使用自己独特的私钥签名来应对挑战,只有当你丢失了,你才搞砸了,然后你必须处理一个人(哦不)来获得一个新的一个。
答案 3 :(得分:5)
让用户输入3个问题和答案。当他们要求重置时,他们会向他们提出5个问题的下拉,其中一个问题是他们输入的3个问题中的随机问题。然后发送确认电子邮件以实际重置密码。
当然,没有什么能真正成为“黑客证明”。
答案 4 :(得分:5)
它取决于'系统'。
如果您是银行或信用卡提供商,则表示您已经发出 为您的客户提供的一些物理令牌,您可以对其进行验证等。
如果您是电子商务网站,请询问最近的一些交易 -exact amount,credit card number used al al ..
如果您像雅虎一样,我会使用的自动化方法是发送 激活码通过电话或短信发送到手机 电话以及其他一些基本问题和答案。
杰
答案 5 :(得分:4)
当用户参与时(大多数情况下也不参与),没有安全性;只有安全的幻觉。你可以做很多事情。你可能会有“不太常见”的安全问题,但即使它们也容易受到剥削,因为有些人把所有东西都放在公众面前。
电子邮件等辅助渠道为问题提供了合理的解决方案。如果用户请求重置密码,您可以通过电子邮件向他们发送密码重置令牌。仍然不完美,正如其他人所说,但利用这一点需要攻击者在网站,其MTA和用户MUA之间的视线中。这在技术上很容易,但我认为现实是,除了非常高调的个人之外,他们还有太多的工作/风险给他们打扰。
要求用户在帐户创建时提供SSL或GPG公钥将有很大帮助,但是无知的用户将不知道这些东西是什么让他们能够保持他们的私钥安全和备份所以他们不要失去他们。
要求用户提供第二个紧急密码(类似于手机SIM卡上的PIN / PUK)可能有所帮助,但用户可能会使用相同的密码两次或忘记第二个密码。
简短的回答,你是SOL,除非你想要教育你的用户安全,然后用一个线索打他们,直到他们意识到必须是安全的,并且少量的额外工作不仅仅是一个屁股疼痛。
答案 6 :(得分:4)
彻底废除(in)安全问题。他们是一个如此明显的安全漏洞,我实际上有点惊讶,他们花了很长时间才创造了一个严重的(好的,高度宣传的)事件。
直到它们消失,我才会继续告诉使用它们的网站,我去了“n4weu6vyeli4u5t”高中......
答案 7 :(得分:3)
通过发送电子邮件来验证所有内容是一种相当有效的解决方案。 (尽管在这种情况下雅虎可能无法使用))。
不要乱用安全问题或其他方法来恢复密码,只需通过向具有授权链接的预定义电子邮件帐户发送电子邮件来响应密码恢复请求。从那里你可以更改密码,或者你需要做的任何事情(永远不要发送密码 - 你应该总是将它存储为盐渍哈希,总是改变它。然后如果电子邮件帐户已经受到损害,至少有一些迹象表明用户已访问其他服务)
答案 8 :(得分:3)
将这些安全问题视为实际上是双因素身份验证的做法完全是误导性的。从之前读取的虚假项目来看,当某些(银行)网站需要进行“双因素身份验证”时,他们开始将其作为廉价方式来实现。布鲁斯施奈尔在回来的时候谈到了这个[1]。
多种因素是不同的最佳因素。它不应该是你所知道的所有东西,而是你知道的东西和你拥有的东西等。这就是硬件认证令牌,智能卡和其他此类设备发挥作用的地方。
[1]:http://www.schneier.com/blog/archives/2005/03/the_failure_of.html双因素身份验证失败
答案 9 :(得分:3)
真正的答案是,没有一种愚蠢的方法可以阻止黑客入侵。我讨厌安全问题,但如果您要使用它们,请允许用户定义的安全问题。作为用户,如果我必须在网站上设置安全问题来设置帐户,我真的希望能够设置我自己的安全问题,以便让我问一些只有我知道如何回答的问题。在这种情况下,它甚至不一定是一个真正的问题。但是,用户帐户就像用户的愚蠢一样安全,而且许多用户会使用类似“问题”的事实。并“回答!”或者同样愚蠢的东西。你无法从他们自己的愚蠢中拯救用户。
答案 10 :(得分:2)
向其他电子邮件帐户发送邮件,或发送手机短信,或拨打电话,或发送蜗牛邮件。任何不涉及公共记录或偏好的事情,可能随时改变。
答案 11 :(得分:2)
一个人不应该直接重置密码,而是发送一封带有重置密码链接的电子邮件。这样她就可以收到电子邮件,并知道不是她发起了重置,而且她的问题/答案已经受到了损害。
如果电子邮件地址不再有效,则应在等待超时(几天或一周)之后再允许将新电子邮件附加到帐户。
答案 12 :(得分:2)
当它不是电子邮件系统时,通过电子邮件向他们发送一个指向安全页面的链接,其中的哈希值必须返回查询字符串以重置密码。
然后,如果有人试图重置您的密码,您就会知道,并且他们无法猜测该哈希值。
我们使用2个guid相乘,表示为十六进制。
答案 13 :(得分:2)
良好的安全问题是用词不当。它们实际上会在系统中创建漏洞。我们应该把它们称为安全问题。但是,认识到它们提供的风险和价值,“好”的安全问题应该具有以下四个特征: 1.不能轻易猜到或研究(安全), 2.不随时间变化(稳定), 令人难忘, 4.是确定的还是简单的。 您可以在http://www.goodsecurityquestions.com了解详情。
答案 14 :(得分:2)
IMO秘密问题只应作为一个非常弱的控件使用,并将时间限制作为系统的一部分。 例如:密码重置系统。
您已通过身份验证。注册您的手机号码和您的秘密(不是秘密)答案。
您忘了密码。
您要求解锁。
a)你的“不太秘密”的问题要求你提出“不那么秘密的答案”。 b)如果正确,则会向预先注册的手机发送短信。
这样,如果您的手机被盗,手机上的插针/锁定等控件也无法正常工作。在报告手机丢失/被盗并且可以被禁用之前,您仍然需要对攻击者进行模糊处理才能重置密码。
这种用法是我认为“不那么秘密”的问题/答案的唯一目的。
所以我认为这个世界上有一个适合他们的地方,通常需要一个系统进行讨论。
答案 15 :(得分:1)
始终将密码重置发送到已注册的电子邮件帐户(这对于电子邮件帐户来说很棘手)或将PIN号发送到已注册的移动电话,或指向IM地址的链接等 - 基本上,捕获一些辅助联系信息注册时使用它来发送'密码重置'链接。
永远不要让任何人直接更改密码,请务必确保他们完成额外的步骤。
答案 16 :(得分:1)
仅提供不在公共记录中的问题。
答案 17 :(得分:1)
如何请求用户输入自己的安全问题和答案,以及辅助电子邮件(不是发送密码重置链接的电子邮件)。将安全问题和答案存储在数据库中以进行额外的安全步骤。
如果用户忘记了密码,请将密码重置链接发送到用户的主电子邮件。 然后,用户单击重定向的链接并询问安全问题和答案。如果此步骤成功,则允许用户重置他/她的密码。如果用户忘记安全问题/答案,请向重置安全问题/答案发送指向用户的辅助电子邮件的链接。
如果攻击者可以访问其中一封电子邮件,那么在没有访问另一封电子邮件的情况下它仍然是无用的(攻击者极不可能访问这两者)。我知道这个过程需要对开发人员和用户进行大量额外的工作,但我认为这是值得的。 (如果他们需要额外的安全性,我们可以给用户一个推荐的选项来激活安全问题/答案。)
底线是这个系统运作的强弱程度在很大程度上取决于用户。安全问题/答案的强度以及这两封电子邮件“解开”的程度(即无法通过另一封电子邮件获取一封电子邮件)将决定此系统的强度。
我不知道这种做法是否有任何问题,但如果有的话,如果有人能指出这些问题,我会很高兴:)
答案 18 :(得分:0)
我更喜欢保持简单并使用荣誉系统方法。例如,我会向用户展示类似的内容,
这真的是你吗? 选择:是或否。
答案 19 :(得分:0)
生成包含此用户名和密码的哈希,并通过Https将其作为文件发送给用户。用户将文件保存到磁盘。他们有责任将此文件存储在安全的位置。或者,您可以将其发送到他们的电子邮件地址,但这会降低安全性。如果用户忘记了他们的登录凭据,他们必须上传此文件。服务器验证用户名和密码后,会显示一个对话框以更改其密码。
答案 20 :(得分:0)
由于社交媒体的发展,网站提出的安全问题很容易破解。由于大多数问题都是个人信息,可以在一个或另一个社交媒体平台上轻松获得。避免帐户被黑客入侵的一种方法是对登录使用严格的密码规则,例如添加特殊字符,数字,大写字母等。这些类型的密码难以解码,可以在很大程度上增强安全性。 但是,有许多新的替代方法,例如多因素身份验证,无密码登录,SMS身份验证等。SMS身份验证是多因素身份验证的一部分,其中向用户提供了他/她需要按顺序输入的手机上的OTP。登录网站。这是一种安全的方法,因为移动设备的访问仅限于(大部分)用户。另一种多因素身份验证方法是将验证链接发送到电子邮件,以完成登录过程。在Medium上有一个写得很好的博客,详细介绍了这个概念。