最近,我跳上了一个不具名电子邮件服务的宣传单,目前正着手更新各个网站上的所有帐户,以从Google的Gmail中获取大部分(未来的)数据。
在这次冒险中,我遇到了几个我想分享的更改您的电子邮件地址的用户流(“很多”或“几个”之类的内容完全是主观的,我没有数):提出的问题
只是更改了电子邮件地址,没有任何确认电子邮件,第二次密码检查或拼写检查(两个输入字段)。电子邮件地址是该帐户使用一些敏感数据的主要登录方法。任何有恶意的人如果更改电子邮件地址并随后更改我的密码,都不会阻止他们接管我的帐户。大多数平台使用的方法:您将收到一封确认电子邮件,其中包含您提供的新地址。这样可以确保您正确输入电子邮件,但不会阻止任何人更改主要登录方法。


通过旧地址进行确认
很少有平台将电子邮件发送至检查我是否是该帐户的实际所有者的旧地址。如果我单击邮件中的链接或输入他们发送给我的电话号码,则地址会更改。


通过旧地址和新地址进行确认
只需确认一次用我的旧地址(我是该帐户的所有者),再收到一封电子邮件到新地址,以检查该地址是否确实存在。 UX与安全冲突。虽然方法1提供了最舒适的流程,但正如我已经指出的那样,我看到的问题最多。
必须确认旧地址和新地址有点麻烦,但这是列出的最好方法让用户掌握自己的帐户。
还有其他我不知道的常用方法吗?一般认为最佳做法是什么?

#1 楼

我看到的确认旧电子邮件地址的问题是,有时人们更改地址是因为他们无法再访问旧电子邮件地址。例如,旧地址可能已过期(甚至可能已重新分配给其他人!)。或者他们可能只是忘记了旧地址的密码,而没有其他方法来证明其身份。或原来的地址属于他们曾经工作过的公司,现在他们再也无法访问它了。或者它可能由于其他原因被阻止或终止(违反了ToS,DoSed,充满了垃圾邮件并且实际上无法使用等)。
以我的看法,您有两种登录帐户的方式:使用您的密码,或使用您的电子邮件帐户请求重设密码。因此,电子邮件帐户是身份验证的另一种方法。现在,每当您更改身份验证方式时,都应该验证您的身份。而且,如果您不能依靠旧的电子邮件帐户(即将更改),则显而易见的解决方案似乎是在更改地址之前要求输入当前密码。


询问您当前的密码(这是对您的身份的有效验证),以便能够更改电子邮件地址。

验证您是否有权使用新的电子邮件地址,如果经过验证,请使其成为新的默认密码。

也许对旧地址进行了更改。

我认为旧帐户的处理方式有其优点和缺点。您可以决定:


向旧电子邮件发送通知,例如:“您用于访问“网站示例”的电子邮件地址已更改,如果您不希望这样做,那么您的帐户可能已受到侵害,等等。”您可能还提供了一个链接,以恢复可能遭到破坏的帐户,其中的令牌会在一段时间后过期。此选项的问题在于,如果旧帐户已被重新分配给其他人,则您不希望让他们知道太多信息(并且绝对不能给他们直接恢复选项)

成功更新旧电子邮件后,它将不发送任何通知。这样做的问题是,如果攻击者设法窃取用户的密码,他们可以完全控制其帐户并将其锁定。数据库会保留一段时间,以提供支持或恢复,以防出现被盗帐户的真实所有者(带有旧电子邮件)以寻求帮助。此选项的问题在于,如果帐户被盗,真正的所有者可能要等到...多长时间才能意识到呢?

评论


我不同意您的前提,电子邮件地址不像电话号码,而且确实不太可能被重新分配或完全无法访问。因此,我会在很长时间内将旧电子邮件与恢复该帐户所需的所有信息一起信任。如果旧地址退回给组织,则他们已经可以访问以前收到的所有电子邮件。最可能的问题是攻击者更改电子邮件以控制帐户,在这种情况下,仅密码验证是不够的,因此我会使用@Trickycm的回答。

–csiz
20年7月2日在14:49

@csiz,我敢肯定我已经看过一些免费的电子邮件提供商,这些提供商在到期后可能会重新分配地址。例如,我只是迅速检查了mail.com ToS,发现:“ [...]您的电子邮件地址可能已发布并可供其他客户使用。”另外,当您删除域时,我也在考虑这些情况,那么您的旧info@example.com可能属于该域的新所有者。

–芦苇
20年7月2日在15:09

没错,但是当某人使用一次性电子邮件时,大概他们不会在为其注册的任何服务上投入太多资金。为他们牺牲安全性是可耻的。

–csiz
20年7月2日在15:26

@csiz电子邮件的重新分配一直在发生,特别是在公司环境中。从个人经验来看,我可以向您保证某些地址确实变得完全无法访问。我发生了几次。

–烧烤
20年7月2日在18:32

@csiz。个人经历:来自主流ISP的电子邮件地址,该电子邮件地址由另一个ISP接管,保留了原始电子邮件地址。第二个ISP的服务是****,所以我签了第三个ISP。我无法联系第一个ISP(不存在),并且要通过第二个ISP的自动电话应答系统的唯一方法是将我的固定电话合同转让给他们(但现在是由第三个ISP提供)。原来的电子邮件地址可能仍然可以使用,但是我无法访问它。

–alephzero
20年7月2日在22:47

#2 楼



确认新电子邮件

我觉得大多数平台使用的方法是:您将收到一封
确认电子邮件,其中包含您提供的新地址。这样可以保证
您正确输入了电子邮件,但是不会阻止任何人更改主登录方法。

这应该是“正确”的方法。 br rational:

,这确认您输入的邮件地址是正确的并且没有错别字
您可以访问它
并且托管该邮件的邮件服务器可以访问并且会接受邮件-可能是DNS配置错误,或者是垃圾邮件过滤器阻止了邮件的发送

,所以只有在确认后才可以更改邮件地址。
这种方法的问题:如果您是在无人照管的情况下登录的,则其他人可以更改邮件地址并接管您的用户帐户。
解决方案是使用当前密码确认请求。这是又一个步骤,但我感到不便之处是可以容忍的:用户不应经常更改其注册邮件地址。
Variant:如果您的网站在注册时选择了此选项,则可以要求您回答一个秘密问题。最好不要使用诸如出生日期之类的秘密问题,而这可能是公共知识。但是有可能无法轻易找到您的秘密问题的答案。缺点:先前记录的问题和答案将不再可见或可修改。这意味着您应该使用具有稳定/永久答案的问题,同时避免陷入诸如出生日期或母亲的姓氏之类的不常见的常见问题。网站,但不是全部。


通过旧地址进行确认

很少有平台将电子邮件发送到旧地址,以检查我是否是该帐户的实际所有者。如果我单击邮件中的链接或
输入他们发送给我的电话号码,地址将被更改。

如前所述,用户可能失去了对旧地址的控制,可能是您离开(或被开除)的公司的专业地址。否则该地址可能已失效或已分配给其他人。
这里存在不必要的信息泄露的风险。确认新地址后,就不能再使用以前的地址了。
最后但并非最不重要:记录对用户配置文件所做的所有更改。如果有人报告未经授权的访问,则您应该能够知道何时进行更改以及启动更改的IP地址。实际上,确认邮件通常会包含IP地址。在您的隐私权政策中对此加以澄清:在确保遵守适用法规的同时,您记录什么样的信息,何时以及持续多长时间。
如果您的站点具有2FA并且用户已启用它,则需要2FA确认,具体取决于服务的性质。如果您只想更改一些免费新闻通讯订阅的邮件地址-2FA是没有道理的。如果您是银行,那就不一样了。 SMS / OTP可能会发挥作用。

评论


请没有安全性问题。他们要么容易猜测,要么人们会忘记答案。十年来的大部分时间里,我都试图重新使用一个电子邮件帐户,该帐户使用安全性问题进行身份验证。顺便说一句,如果天空是什么,那么天空是什么?

– jmoreno
20年7月3日在7:11

#3 楼

如果您将电子邮件视为验证帐户身份的一种形式,那么理想情况下,您应该寻求通过替代形式来确认任何更改,例如短信,其他电子邮件帐户,软令牌,亲笔信函等。是您帐户的主要ID,并且取决于帐户的安全性,您将需要增加形式的替代验证。

问题中的示例1完全不安全,并且在多个级别上都有缺陷
示例2仍然是不安全的,因为恶意行为者只需要确认他们控制的电子邮件服务上的更改即可(无原始电子邮件因素验证)
示例3应该是最小的,但是如果帐户使用了其他验证/验证因素旨在确保安全性
示例4的安全性实际上并没有比3高,并且仅真正有助于确保新电子邮件的有效性。

最佳实践应该是对其他通信因素进行验证。数量和类型取决于服务和供应商的风险偏好。

#4 楼

包括最佳实践在内,肯定值得确认新电子邮件。其他选择(如两次输入新电子邮件)既耗时又不确定。加工)。但是,通过电子邮件更改将恢复链接发送到旧电子邮件可能有助于防止密码薄弱的帐户容易被盗。重新分配给新用户。但是,如果已将旧帐户重新分配给其他人,并且该人有恶意意图,则无论电子邮件更改的恢复选项如何,原始用户都会被搞砸。他们还可以重置帐户的密码,从而避免合法用户首先更新电子邮件。

#5 楼

与往常一样,它取决于威胁模型。如果攻击者更改了服务上的电子邮件地址,攻击者可以实现什么?帐户,如果我不采取该措施,则应该与他们的安全联系人联系),通过此途径受到攻击的风险很高。如果您设法保留密码并随后能够在不将通知发送到旧地址的情况下更改通知地址,则通知服务也可能不存在,因为在专门为其设计的方案中很容易禁用它。
另一方面,诸如“该用户正在将其LinkedIn帐户从其公司的电子邮件地址转移”之类的信息泄露是另一种现实的威胁情况,在这种情况下,正好相反:应该有一种方法可以电子邮件地址,而不会将通知发送到旧地址(特别是如果通知遵循易于扫描的标准格式)。在这种情况下,最好显示一个有关登录期间电子邮件地址已更改的通知,并重复固定时间的通知(这样攻击者就无法确认它是否向真实用户隐藏了该通知)。
同样,很多关于用户的详细信息经常同时更改,例如,公司电子邮件地址和公司电话在同一天被停用,并且该人随后移动到另一份工作,因此地址也发生了变化。对于消费者服务而言,离婚几乎是最坏的情况-通常,一个人在另一个人的电话计划中,因此,帐户中附加的电话号码与帐单信息属于另一个人,否则一个人可能会更改帐户自己的帐单信息,以便获得附有付费商品的帐户的所有权,因此实际的帐户所有权很难与特定商品绑定。
没有唯一的“最佳”方式来处理此问题。查看特定的应用程序,并找出一组可能的场景,在这些场景中,攻击者有动机来更改有关帐户的信息,以及在这种情况下帐户所有者希望发生的事情。

#6 楼

您可能不想使用旧的电子邮件地址进行确认,因为迁移的原因之一是因为旧的电子邮件帐户已被盗用,并且不再受合法帐户所有者的控制。您可能想通知旧电子邮件地址该帐户已更改,并为他们提供联系点,他们可以在需要时就此更改提出异议。这种联系方式需要对新旧电子邮件地址进行额外的审查,以便它不会成为可能发生社会工程攻击的安全模型的弱点。
您可能会看到其他媒介用于验证或通知用户2FA,SMS等。
您已经确定了问题的根源,因此在安全问题和易于使用之间进行了权衡。没有万灵药,因为每个用例都会有不同的成本。如果您失去对临时留言板帐户的控制权,那么IT可能并不是什么大问题,但是如果您要为国际银行软件建立帐户管理控件,情况就不会如此。
相应地选择毒药。 />

评论


这是Google用于更改与您的Google帐户关联的电子邮件地址的方法:要求在新地址进行验证,但向您的旧地址发送通知。 support.google.com/accounts/answer/55393?hl=zh-CN

–麦克·麦克马纳斯(Mike McManus)
20年7月30日在19:45

#7 楼

最近,我不得不在许多站点上更改电子邮件地址,因为我的ISP停止了发送电子邮件(它们的原因归结为“这太难了,妈妈”)。我自1993年以来拥有的电子邮件地址于去年8月停止工作。
我遇到了几个站点,其政策只是“您不能更改电子邮件地址”。我必须使用新的电子邮件地址在这些网站上创建全新的帐户。其中一个拥有迁移已购买内容的过程,而另一个则没有。
优点是对每个相关人员都很简单。创建一个新帐户,就像您是该站点的新成员一样。

#8 楼

解决方案1因普通用户错误而被破坏。
我认为解决方案2是最佳选择。
解决方案3和4具有更好的安全性,但由于严重的可用性问题而使您的服务保持开放状态。
我使用学术电子邮件地址注册了一些服务(我知道,我的错)。地址过期后,即使我可以登录,也无法更改其中一个的地址,因为我知道密码。更改地址的功能需要旧地址确认。因此它变成了滴答作响的炸弹。
另一项服务甚至更糟。我忘记了密码,所以我被完全锁定了。公平地说,我不确定如何设计一个可以自动处理丢失所有凭据的用户的系统。

评论


您可以在一段时间后通过带外重置来丢失所有数据,并且所有当前方法的失败都无法引起响应。最近6个月内无访问权限,电子邮件和短信均无回应。这样做存在安全问题,因此不太可能使用。即使是更长的时间(5年),长时间无法访问的人(例如囚犯)仍然可能会遇到问题。

– jmoreno
20年7月4日,0:10