丢失电子邮件功能的密码重置

信息安全 密码
2021-08-13 07:55:34

我已经搜索并查看了有关在网站上实现忘记密码功能的大多数其他问题和答案。

但是,我们有一个独特的情况。当用户注册一个帐户并使用他们基于公司的电子邮件作为主要电子邮件帐户时,如果他们不再为该公司工作并且无法访问该电子邮件帐户,我们如何实施忘记密码方案?

我们目前使用标准流程向他们的主电子邮件帐户发送带有重置链接的电子邮件。大多数人没有辅助电子邮件地址,我们不希望他们能够输入任何电子邮件地址来发送链接。

是否有一种设计模式或流程,我们可以让用户输入一些信息并被带到允许他们更改电子邮件地址以发送重置链接的页面?顺便说一句,我们不想使用/存储安全问题。我们可以通过我们的网络服务通过查询其帐户记录所提供的信息找到此人。

这种事情以前是怎么做的?我不知道有任何网站这样做,因为它们中的大多数都需要向用户的帐户发送电子邮件。

当你检查你的年度信用报告时,我在想更多的事情,比如 Experian、TransUnion 和 Equifax 是如何做到的。他们会向您询问有关您报告中的帐户的问题,如果您回答正确,则您已通过身份验证。

4个回答

您可以提供输入电话号码并在那里发送密码恢复消息(就像微软一样)或使用一些只有用户知道的东西(例如最后一个语音的 ID)

最终,您需要与客户端建立某种秘密,即:

  1. 容易记住
  2. 与他们的电子邮件/密码组合无关
  3. 非平凡的猜测

由于您已经排除了安全问题(由于原因#3,这些问题充其量是不确定的),因此您有几个选择。

如前所述,电话号码是一个不错的选择。电话号码不会经常更改。有人同时更换工作和电话号码的可能性很小。

辅助电子邮件地址电话号码一样好,因为人们倾向于长期保留他们的个人帐户。考虑打扰您当前的用户进行设置。

您可以给用户一个密码重置令牌- 一个非常长的字符串,离线保存,只有在需要重置时才检索。但是,如果用户不费心保存它们,这将不起作用,这很可能发生。它使用起来也很尴尬,并且不适合现有用户蹲下。

解决你问题的另一半会比较棘手。您只有以下信息:

  • 电子邮件(已失效)
  • 密码(忘记)

想到的一种解决方案是让公司验证他们的老员工是否拥有已失效的电子邮件地址。然而,这会浪费时间,而且它依赖于合作(和记录保存),这两者都不是保证。

正如您所建议的,您可以查看用户是否从帐户中召回任何重要的私人详细信息。不过,这将是一个美化的安全问题,我严重怀疑忘记密码的人会记住那么多信息。

最后,您是否存储任何付款详情(例如每月帐单)?如果是这样,您也许可以通过这种方式验证身份。

作为在线注册过程的一部分,请询问他们的首选电子邮件地址和他们的个人地址(或备用地址)。重置密码时检查两个帐户并发送给任何一个。添加一些类似营销的文本以达到以下效果:

如果您使用工作电子邮件地址并离开公司,我们希望确保您可以随身携带培训。添加您的个人电子邮件地址以确保您始终可以访问您的培训。

这对现有用户来说不太适用,但我认为它比让他们尝试找到几个月前传达给他们的一堆随机数更好的长期方法。

一些理论想法可能会根据您可以获得的信息而起作用

离线到他们已知的帐单地址

听起来这是一项商业服务。对于某些用户,如果他们使用个人信用卡等,您可能会记录他们的个人账单信息 - 您可以通过邮件向这些用户发送离线重置代码(例如银行向您发送 ATM 密码时)。这会很慢,但希望没有人窥探用户的邮件。

使用卡安全码重新验证存档的信用卡

如果使用的是个人CC,我有一个理论方案我会在下面分享。我在考虑地址验证系统,但我认为一般来说不需要卡安全码(例如,CVV)。考虑这个过程:

要求用户使用他们存档的信用卡在您的网站上进行小额购买 - 可能是 0.50 美元(您可以在验证后立即撤销此费用或将其称为特殊重置费用)

然后使用记录在案的相同账单信息、信用卡号进行付款。虽然对于给定的个人,账单信息可能很容易研究,但信用卡号应该很难从任何地方提取出来,而卡安全码则更难。

这可能是相当自动的,并根据您存档的信息进行验证。

链接到其他身份

假设您的服务允许用户在他们的帐户中输入社交网络配置文件。由于这是一个商业工具,你可能会无缘无故地向他们询问他们的 LinkedIn 个人资料,或者可能出于实际目的在他们的时间线上发布他们的成就。也许您有一个设置,您可以自动推特用户完成的课程等。由于用户将她的社交媒体信息输入到她的个人资料中,您可以要求她通过社交媒体服务进行验证。

我记得 Stack Exchange 在某些时候这样做是为了合并我的两个个人资料,您将某种类型的消息放入两个帐户的个人资料中,然后联系管理员进行合并。在您的情况下,您可以只向用户在她的个人资料中列出的帐户发送私人消息,因为她不太可能在您网站上的个人资料中添加一些随机人的帐户。

如果您想承担更大的风险,您可以要求在丢失旧电子邮件之前从未输入过社交媒体资料的用户向您提供一些社交媒体资料,并进行一些尽职调查以查看这些资料是否合法(真实来自该人曾经工作过的同一家公司的朋友/追随者)。然后,您可以要求至少有两个好的个人资料,要求他们在网站或个人资料中进行一些更新,以证明他们拥有这些网站,或者在两个平台上直接/私信他们以确保他们拥有这些网站。


概括

最后,我认为他们不只是创建新个人资料的原因是因为他们正在为服务付费,并且他们想要他们已经付费的服务。正如他们所说,跟着钱走……但是,如果他们使用他们不再可以使用的公司卡,这将不起作用。也许他们有发票或信用卡对帐单的旧副本,在这种情况下他们可以发送给您,工资单/报销之外的其他人不太可能拥有这些类型的文件。我会说,如果你不能对账单信息做点什么,那么也许可以试试我上面描述的社交媒体路线。

我不认为您将能够轻松地创建一个安全且强大的平台来自动执行此操作,但我也想您一天不会有数百个这样的案例。我会尝试从最可靠的开始,然后逐个研究不太可靠或更耗时的。


对其他策略的思考

看起来您现在正在使用的路径以及在许多其他答案中建议的路径依赖于在注册时获取额外的身份信息(理想情况下),然后在用户不再拥有她的电子邮件帐户时使用该信息来验证用户. 问题是您可能要收集的任何信息都可以被研究或找到。如果您开始询问大量与您的服务无关的信息,您可能会遇到用户体验问题(为什么有这么多字段,为什么要侵犯我的隐私等)。如果您要求他们验证大量信息,则会增加难度,但这听起来并不符合您对合理保证的要求。同样的问题也适用于安全问题。

其他一些答案依赖于用户通过之前在网站上采取的行动来验证他们的身份。根据您的服务,这可能是可能的,但在许多情况下,这些操作可能难以记住,太多的活动可能是公开的,或者可能足够通用,以至于任何其他用户都可以冒充该用户。根据您的具体情况,这条路径有一些潜力。

其他建议包括询问用户将随身携带的东西,例如辅助电子邮件或手机(假设他们也没有给您公司手机号码)。如果他们正在使用他们的公司电子邮件,他们可能正在使用他们的公司计算机,并且如果他们不再能够访问他们的公司电子邮件,那么任何其他类型的令牌、哈希、文件等都可能是一个有争议的问题。

编辑:

我看到您的一些问题与所有用户手机上的 SMS 和可用性有关。假设您有他们的个人电话而不是他们的工作电话,则有非基于 SMS 的解决方案使用VRU/IVR等通过语音提供代码。如果您有一个有效的、可访问的电话号码,那么您应该能够通过 SMS 或语音提示系统联系该号码。至少,在低音量时,您可以在发出请求时让人工呼叫文件中的号码。希望每天没有大量用户继续前进并忘记密码。