在 2023 年,网络犯罪分子将窃取 330 亿条记录。识别数据泄露平均需要 196 天。到 2020 年,数据泄露的成本将达到 1.5 亿美元…… 这些数字可能令人恐惧,但它们只是预测。未来的情况可能会更糟。安全性在过去几年中已成为热门话题,几乎地球上的每个人都听说过公司数据泄露,甚至有朋友因为被黑客攻击而失去了 Facebook 账户!如今没有人是完全安全的。
我最近花了几个小时确保我拥有的所有账户都使用唯一的密码,复杂且长度至少为 20 个字符,并且如果有的话启用双因素身份验证(2FA)。我发现公司之间存在许多差异,以及在功能和用户体验方面存在许多问题。我想在这篇文章中与您分享我认为任何重视用户安全的网站或公司应具备的最佳和推荐功能。
提供双因素身份验证选项#
这是起点。
如果您关心您的用户或客户,您应该让他们选择启用双因素身份验证。在我拥有账户的约 800 个网站中,只有 5% 提供 2FA 选项。有人可能会争辩说,如果您没有高度敏感的信息,提供 2FA 可能是多余的。但任何个人信息都可以被视为敏感信息。
如果您关心您的用户及其安全,请给他们启用 2FA 的选项。就这样。
不要强迫用户只选择一种 2FA 方法#
Google、Facebook、Twitter… 它们都提供多种 2FA 方式:短信、身份验证应用和安全密钥。更常见的是,至少在短信和身份验证应用中,安全密钥似乎仅在某些服务上设置。
但我很惊讶地看到Etsy,即使他们在用户界面上使用开关,强迫您只选择其中一个选项。我甚至不确定这是否最初是设计成这样的。
The two-factor options on Etsy
Bit.ly和booking.com则只允许您使用手机作为 2FA 设备。因此,如果您丢失了手机和电子邮件访问权限,您可能会陷入困境。
The verification code view on Booking.com
Mailchimp和Tumblr则相反,仅提供使用身份验证应用的 2FA。
Zapier有一个很棒的逐步 2FA 设置,可能是我找到的最好的之一。他们提供多种互补方式,并特别告诉您 “如果您被锁定并且丢失了身份验证设备和恢复代码”。用户明白提供手机号码是确保他 / 她可以访问账户的额外方式,以防他 / 她失去其他连接到其网络应用的方法。
The two-factor set by step setup on Zapier
将二维码作为图像#
我已经使用1Password一段时间了,扫描二维码的模态并不总是能找到二维码。在这种情况下,我发现自己需要将二维码拖放到该模态中以进行识别。但这仅在代码是图像时有效。
我建议将其作为可以保存 / 拖放的图像格式。
例如,Reddit没有将二维码作为图像。幸运的是,每个人都提供二维码的文本版本,您可以在身份验证应用中使用。
保持您通过电子邮件发送的代码与应用或网站中请求的格式相同#
这件事我只遇到过一次。发生在 Instagram 上。
当Instagram通过短信发送 “验证码” 时,他们包含了一个空格。如果您在需要的地方复制粘贴该代码,首先输入不想要空格,最后一个数字不会包含在您的粘贴中。这是一个烦人的问题,可以轻松解决!
Instagram verification SMS code
提供恢复 / 备份代码的选项#
大声说出来听起来很奇怪,但很多网站在您启用 2FA 时不提供备份 / 恢复代码。这让我感到惊讶,2FA 意味着您将始终拥有备份代码,以防您失去对手机、电子邮件或用于生成随机数字的应用的访问。如今,一些网站不提供该选项。我对此非常小心。
Kickstarter和WPEngine是一些不提供任何恢复 / 备份代码的网站示例。我希望他们能够改善这一点。
The Kickstarter security modal
始终提供下载恢复代码的选项#
大多数网站提供复制恢复代码的选项。这不是最佳选择。
当然,拥有它很好,但还不够。我个人将所有恢复代码存储在多个地方:一个是Dropbox 的保险库。只需拖放并粘贴一个简单的文本文件就很简单快捷。
如果您只提供复制的选项,那么您可能会迫使用户:
- 打开文本编辑器
- 粘贴代码
- 命名
- 将文件保存到设备上
技术的存在是为了节省用户的时间。
例如,Slack允许您 “打印代码”,但不允许下载它们。为什么不呢?我必须生成一个 PDF,而不是我的简单文本文件。这不是最佳用户体验。
The Two-Factor Authentication Backup Codes modal on Slack
在恢复代码文本文件中,始终写明这些代码来自哪个平台#
即使 Facebook 也会犯错误,这对我来说很重要。目前,如果您从 Facebook 下载恢复代码,打开文件后找不到任何关于 Facebook 或账户名称的提及。文件名facebook_recovery_codes
是有帮助的,但在我看来还不够。账户名称和平台名称应该是最低限度。
为了使其更有用,还可以添加生成代码的日期。
Google 是一个很好的例子,它在文件名中使用您的用户名,并且还添加了:
保存您的备份代码
将这些备份代码保存在安全但可访问的地方。
代码列表
([email protected])
* 每个备份代码只能使用一次。
* 需要更多吗?访问 https://g.co/2sv
* 这些代码生成于:日期,2021年。
允许用户重新生成恢复 / 备份代码#
给用户提供重新生成恢复代码的能力是至关重要的。有些网站不提供这个有用的选项。
提供多个代码(也许?)#
这一点不太重要,但我仍然想提到恢复 / 备份代码方面的一个关键区别。
大多数公司只提供一个代码,而不是可以使用的多个代码列表。我很难为一种方法辩护。我只知道当我有多个代码时,我感觉更好。
关于安全密钥#
安全密钥是保护账户的较少见方式。如果您是公众人物或责任重大的人,拥有安全密钥可能会让您感到更加安心。但对于普通用户来说,这可能是多余的。尽管如此,我还是想最大限度地提高我的账户安全性,最近购买了 Google 的Titan Security Key。USB 版本可以在任何计算机上使用,而我在使用 iPhone 或 iPad 时使用蓝牙版本。
The box of the Titan Security Keys by Google
它们都不便宜,但安全性应该是您 “无限预算” 的一部分,就像食物一样。
结论#
我不是安全专家,对安全方面的知识有限。但作为一名软件工程师,尤其是作为用户,我相信我们还有很长的路要走,直到大多数平台实施所有工具以确保用户的安全访问。
总结:
- 提供双因素身份验证选项
- 不要强迫用户只选择一种 2FA 方法
- 将二维码作为图像
- 保持您通过电子邮件发送的代码与应用或网站中请求的格式相同
- 提供恢复 / 备份代码的选项
- 始终提供下载恢复代码的选项
- 在恢复代码文本文件中,始终写明这些代码来自哪个平台
- 允许用户重新生成恢复 / 备份代码
- 提供多个代码(也许?)
感谢您的阅读,希望这些建议能帮助您改善用户体验并改善您的 2FA 实施。
欢迎在下面的评论中问我任何问题!