18

来自连线杂志:

...佩林黑客不需要任何真正的技能。取而代之的是,黑客只需使用她的出生日期、邮政编码和她在哪里认识她的配偶的信息——她的雅虎账户上的安全问题,通过简单的谷歌搜索就得到了回答(瓦西拉高),重新设置了佩林的密码。

我们不能相信此类安全问题可以重置忘记的密码。
你如何设计一个更好的系统?

4

21 回答 21

19

所谓“安全问题”的不安全性早已为人所知。正如布鲁斯施奈尔所说

结果是正常的安全协议(密码)退回到安全性低得多的协议(秘密问题)。整个系统的安全性受到影响。

一个人能做什么?我通常的技巧是输入一个完全随机的答案——我疯狂地敲击键盘几秒钟——然后忘记它。这确保了一些攻击者无法绕过我的密码并试图猜测我的秘密问题的答案,但如果我忘记了密码,那将是非常不愉快的。有一次这种情况发生在我身上,我不得不打电话给公司以重置我的密码和问题。(老实说,我不记得我是如何向电话另一端的客户服务代表验证自己的身份的。)

我认为更好的技术是只发送一封带有链接的电子邮件,他们可以使用该链接为用户最初用于注册的电子邮件帐户生成一个新的随机密码。如果他们没有请求新密码,他们可以忽略它并继续使用旧密码。正如其他人指出的那样,这不一定对雅虎有帮助,因为他们正在运行电子邮件服务,但对于大多数其他服务来说,电子邮件是一种体面的身份验证措施(实际上,您将身份验证问题强加于用户的电子邮件提供商)。

当然,您可以只使用 OpenID。

于 2008-09-19T19:10:55.413 回答
17

带外通信是要走的路。

例如,在 SMS 中发送临时密码可能是可以接受的(取决于系统)。我已经看到电信经常实现这一点,其中 SMS 便宜/免费/业务的一部分,并且用户的手机号码是预先注册的......

银行通常需要拨打/拨打特定号码的电话,但我个人对此并不太疯狂......

当然,根据系统的不同,强迫用户进入分支机构以表明自己的身份也是可行的(只是让用户非常恼火)。

最重要的是,不要创建一个较弱的通道来绕过强密码要求。

于 2008-09-20T20:15:38.590 回答
9

看到很多海报建议使用电子邮件,我只能建议不要使用电子邮件作为您的防线。

入侵某人的电子邮件帐户可能相对容易。许多基于 Web 的电子邮件服务也不提供任何真正的安全性,即使它们提供 SSL,它通常也不是默认设置 ,您仍然依靠电子邮件密码的弱点来保护用户(这反过来又具有最常见的重置机制时间 )。

电子邮件是最不安全的技术之一,有充分的理由说明通过电子邮件发送信用卡详细信息等信息是一个非常糟糕的主意。它们通常以明文形式在服务器之间传输,同样经常地,在服务器和桌面客户端之间同样未加密,只需要通过有线嗅探来获取重置 url 并触发它。(不要说我偏执,因为银行使用SSL加密是有充分理由的。你怎么能相信路由上的20-200台物理设备有好意呢?)

获得重置数据后,您可以重置密码,然后更改您(他们)的电子邮件地址,并永久控制他们的帐户(这种情况一直都在发生)。

如果他们获得了您的电子邮件帐户,他们所要做的就是浏览您的收件箱以找到您订阅的对象,然后轻松重置所有这些人的密码

所以现在,使用基于电子邮件的安全性,可能会导致安全漏洞!我相信那是有益的!

被问到的问题是我认为仅靠软件几乎是不可能的。这就是为什么我们使用硬件加密狗进行 2 因素身份验证,这些硬件加密狗使用自己独特的私钥签名来响应挑战,只有当你丢失它时,你才会被搞砸,然后你必须与人打交道(哦,不)才能获得新的一个。

于 2008-09-19T19:44:03.183 回答
5

它“取决于”“系统”。

  • 如果您是银行或信用卡提供商,您已经向您的客户发放了一些实物令牌,您可以根据这些令牌进行验证等等。

  • 如果你是一个电子商务网站,你会要求一些最近的交易——确切的金额、使用的信用卡号码等。

  • 如果您像雅虎一样,我会使用的一种自动化方法是通过电话或短信向手机发送激活码以及其他一些基本问题和答案。

周杰伦

于 2008-09-19T19:36:52.483 回答
5

让用户输入 3 个问题和答案。当他们要求重置时,会向他们展示 5 个问题的下拉菜单,其中一个是他们输入的 3 个问题中的一个随机问题。然后发送确认电子邮件以实际重置密码。

当然,没有什么是真正的“黑客证明”。

于 2008-09-19T19:38:04.180 回答
4

完全消除(in)安全问题。它们是如此明显的安全漏洞,以至于我实际上有点惊讶于它们花了这么长时间才制造了一个严重的(嗯,高度宣传的)事件。

在它们消失之前,我会继续告诉使用它们的网站我上过“n4weu6vyeli4u5t”高中......

于 2008-09-19T19:15:43.280 回答
4

当用户参与时(而且大多数情况下也不参与),就没有安全性;只有安全的幻觉。您对此无能为力。您可能会遇到“不太常见”的安全问题,但即使它们也很容易被利用,因为有些人将所有事情都公之于众。

电子邮件等辅助渠道为问题提供了合理的解决方案。如果用户请求重置密码,您可以通过电子邮件向他们发送密码重置令牌。正如其他人所说,仍然不完美,但利用这一点需要攻击者位于网站、其 MTA 和用户 MUA 之间的视线范围内。这在技术上很容易,但我建议现实是,除了非常知名的个人之外,他们要打扰任何人都需要太多的工作/风险。

要求用户在创建帐户时提供 SSL 或 GPG 公钥将有很大帮助,但无知的用户不会知道这些东西是什么,更不用说能够保持他们的私钥安全和备份,以免丢失它们.

要求用户提供第二个紧急密码(类似于手机 SIM 卡上的 PIN/PUK)可能会有所帮助,但用户可能会使用相同的密码两次或忘记第二个密码。

简短的回答,你是 SOL,除非你想对用户进行安全教育,然后用线索打击他们,直到他们意识到有必要确保安全,并且少量的额外工作不仅仅是让他们感到痛苦屁股。

于 2009-03-28T05:19:41.830 回答
3

通过发送电子邮件对所有内容进行身份验证是一种相当有效的解决方案。(尽管在这种情况下,这对雅虎来说可能不可行:))。

与其用安全问题或其他方法来恢复密码,不如简单地通过向带有授权链接的预定义电子邮件帐户发送电子邮件来响应密码恢复请求。从那里您可以更改密码,或者您需要做的任何事情(尽管永远不要发送密码 - 您应该始终将其存储为盐渍哈希,始终更改它。然后,如果电子邮件帐户已被盗用,至少有一些迹象表明其他服务已被访问的用户)

于 2008-09-19T19:09:47.507 回答
3

真正的答案是,没有万无一失的方法可以阻止黑客。我讨厌安全问题,但如果您要使用它们,请允许用户定义安全问题。作为用户,如果我必须在网站上设置安全问题来设置帐户,我真的很喜欢能够设置自己的安全问题,以便我可以提出只有我知道如何回答的问题。在这种情况下,它甚至不必是一个真正的问题。但是用户帐户与用户的愚蠢一样安全,而且许多用户会使用诸如“问题?”之类的东西。和“回答!” 或同样愚蠢的东西。您无法将用户从自己的愚蠢中拯救出来。

于 2008-09-19T19:10:40.830 回答
3

将这些安全问题视为实际上是两因素身份验证是完全误导的。从之前阅读的虚假项目来看,当某些(银行)网站被要求进行“双因素身份验证”时,他们开始将其作为一种廉价的方式来实现。布鲁斯·施奈尔 (Bruce Schneier) [前一段时间][1] 谈到了这一点。

多重因素是不一样的最好的东西。它不应该是你“知道”的所有东西,而是你知道的东西和你拥有的东西等等。这就是硬件身份验证令牌、智能卡和其他此类设备发挥作用的地方。

[1]:http ://www.schneier.com/blog/archives/2005/03/the_failure_of.html双重认证失败

于 2008-09-19T19:41:13.080 回答
2

当它不是电子邮件系统时,通过电子邮件向他们发送指向安全页面的链接,其中包含必须在查询字符串中返回的哈希以重置密码。

然后,如果有人试图重置您的密码,您就会知道,他们可能无法猜测哈希值。

我们使用 2 个 guid 相乘,以十六进制表示。

于 2008-09-19T19:10:45.633 回答
2

好吧,它不应该直接重置密码,而是发送一封电子邮件,其中包含重置密码的链接。这样她就会收到电子邮件并知道不是她发起了重置,并且她的问题/答案已被泄露。

在电子邮件地址不再有效的情况下,它应该等待超时(几天或一周),然后才允许将新电子邮件附加到帐户。

于 2008-09-19T19:12:18.483 回答
2

向不同的电子邮件帐户发送消息,或者给他们的手机发短信,或者给他们打电话,或者发送一个蜗牛邮件消息。任何不涉及随时可能改变的公共记录或偏好的事项。

于 2008-09-19T19:12:38.220 回答
2

好的安全问题是用词不当。他们实际上在系统中创建了一个漏洞。我们应该称它们为不安全问题。然而,认识到它们提供的风险和价值,“好的”安全问题应该具有 4 个特征:1. 不容易被猜测或研究(安全),2. 不会​​随时间变化(稳定),3. 令人难忘,4 . 是确定的或简单的。您可以在http://www.goodsecurityquestions.com阅读更多相关信息。

下面列出了良好、公平和差的安全问题

于 2009-03-28T04:56:57.313 回答
2

IMO 秘密问题只能用作系统的一部分,具有时间限制的非常弱的控制。例如:密码重置系统。

  1. 您已通过身份验证。注册您的手机号码和您的秘密(不是那么秘密)答案。

  2. 您忘记了密码。

  3. 您请求解锁。

a) 您的“不那么秘密”问题要求您提供“不那么秘密的答案”。b) 如果正确,将向预先注册的手机发送一条短信。

这样,如果您的手机被盗,并且手机上的 pin/lock 等控件也不起作用。在报告手机丢失/被盗并且可以禁用之前,您仍然可以对攻击者进行一定程度的混淆以重置密码。

这种用法是我认为“不那么秘密”问题/答案的唯一目的。

所以我会争辩说,在这个世界上他们有一席之地,通常需要一个系统来讨论。

于 2012-12-07T13:35:03.513 回答
1

只提供不在公共记录中的问题。

于 2008-09-19T19:09:29.677 回答
1

总是将密码重置发送到注册的电子邮件帐户(这对于电子邮件帐户来说很棘手)或将 PIN 码发送到注册的手机,或指向 IM 地址的链接等 - 基本上,在注册时捕获一些辅助联系信息和用它来发送“密码重置”链接。

永远不要让任何人直接更改他们的密码,始终确保他们完成额外的步骤。

于 2008-09-19T19:11:03.730 回答
1

我更喜欢保持简单并使用荣誉系统方法。例如,我将向用户展示类似的内容,

这真的是你? 选择:是或否

于 2008-09-19T19:21:40.537 回答
1

如何要求用户输入他们自己的安全问题和答案,以及第二封电子邮件(不是发送密码重置链接的电子邮件)。将散列的安全问题和答案存储在数据库中,以实现额外的安全步骤。

如果用户忘记了他/她的密码,请将密码重置链接发送到用户的主电子邮件。然后用户点击重定向的链接并询问安全问题和答案。如果此步骤成功,则允许用户重置他/她的密码。如果用户忘记了安全问题/答案,请发送链接以将安全问题/答案重置到用户的辅助电子邮件

如果攻击者获得了其中一封电子邮件的访问权限,那么如果无法访问另一封电子邮件,它仍然是无用的(攻击者不太可能同时访问这两个电子邮件)。我知道这个过程需要开发人员和用户做很多额外的工作,但我认为这是值得的。(也许我们可以给用户一个推荐的选项来激活安全问题/答案,如果他们需要这种额外的安全性。)

底线是,这个系统的工作强度和强度在很大程度上取决于用户。安全问题/答案的强度以及两封电子邮件“解绑”的程度(即,无法通过另一封电子邮件访问)将决定该系统的强度。

我不知道这种方式是否有任何问题,但如果有的话,如果有人能指出这些我会很高兴:)

于 2014-05-16T04:57:57.020 回答
0

生成一个包含此人的用户名和密码的哈希,并通过 Https 将其作为文件发送给用户。用户将文件保存到磁盘。他们有责任将此文件存储在安全位置。或者,您可以将其发送到他们的电子邮件地址,但这会降低安全性。如果用户忘记了他们的登录凭据,他们必须上传此文件。一旦服务器验证了用户名和密码,他们就会看到一个对话框来更改他们的密码。

于 2010-03-02T10:40:06.700 回答
0

由于社交媒体的发展,网站提出的安全问题太容易破解。由于大多数问题都是个人信息,这些信息很容易在社交媒体平台上获得。避免帐户被盗的一种替代方法是对登录进行严格的密码规则,例如添加特殊字符、数字、大写字母等。这些密码很难解码,可以在很大程度上提高安全性。但是有新的替代方法,如多因素身份验证、无密码登录、短信身份验证等。短信身份验证是多因素身份验证的一部分,用户在他/她的手机上提供了一个 OTP,他/她需要按顺序输入登录网站。这是一种安全的方式,因为移动设备的访问仅限于(大部分)用户。另一种多因素身份验证方法是将验证链接发送到电子邮件以完成登录过程。关于这个主题有一个写得很好的博客以详细方式解释此概念的媒体。

于 2019-02-07T09:59:52.837 回答