查看本文语雀版本【首发】,自动同步更新至CC 的部落格

起因

写这篇文章的起因很简单,就是那天早上醒来看到一条短信(很巧,9 号正是谷歌为所有用户启用两步验证的日子)qq_pic_merged_1637592156847.jpg 然后赶紧打开邮箱查看通知,并登录修改密码Screenshot_20211109_073434_com.facebook.katana.jpgScreenshot_20211109_073115_com.android.chrome.jpgScreenshot_20211109_073214_com.android.chrome.jpgScreenshot_20211109_073348_com.android.chrome.jpgScreenshot_20211109_073404_com.google.android.gms.jpg 虽然是我不怎么使用的老帐号,但是还是觉得有点恐怖,对于像我这样很多平台都使用一个密码的人来说,如果没有两步验证,我可能要失去账号使用权了,毕竟还是有很多回忆,因此如何友好的使用 2FA 是个问题,而我也在慢慢学习。

探索

说到帐号安全,大家都知道国内很多网络服务 (如淘宝、银行),除了正确的帐号密码之外,常常还需要额外给你发一条手机短信验证码,以此进一步确认你是帐号的真正主人。这其实就是「两步验证」或者叫做「双因素验证」的一种实现方式,它这里第二步验证是靠手机短信来发送验证码的。而国外更多的网站/网络服务还会使用一种叫“身份验证器”或叫“虚拟 MFA”的二步验证方式,它是利用一种“随时间变化的验证码”来取代手机短信,不仅更安全,而且可离线使用,通用性也更强……​

开启两步验证/双重验证有什么好处?

和短信验证码一样道理,这里的两步验证也是相当于给帐号多加一把“锁”(多一步的验证),在输入正确的账号密码之后,用户同样还需要额外输入一个每 30 秒自动变化一次的 6 位数字「二步验证码」才能完成登录。​

所以即使你的帐号和密码不慎泄露了,别人在没有这个数字验证码也是无法登录你的账号的,这可以大大提高破解的难度和帐号的安全性。所以建议所有能开启二步验证的重要网络帐号都要全部开启。​

二步验证和手机短信验证码有什么区别?

手机短信验证码和两步验证的目的和作用基本一致,不过很多的 (国外) 网络服务并不支持发送手机短信验证码,主要是短信成本高,而且有安全性风险 (比如 2G 网络下黑客可以利用 GSM 漏洞监听截取到用户的手机号码和短信内容)。​

而本文所说的二步验证是指虚拟 MFA,或者说是“身份验证器”,是基于时间和加密算法生成“每 30 秒变化一次的 6 位数字验证码”,也叫做 TOTP (Time-Based One-time Password) 或 OTP 一次性密码。它的优点是使用时无需联网、仅需时间进行计算、速度快、可离线使用、没有额外成本、算法协议公开通用,开发和使用上都很简单,可以用小型硬件 (实体的密码器) 或纯软件 APP 来实现,因此更多的网站会支持这种方式。

两步验证、MFA、2FA、多因素验证都是些什么鬼?

我们常常会见到“两步验证”、“二步验证”、“双因素验证”、“多因素验证”、“虚拟 MFA”、“动态令牌”、“双重验证”、“2FA”、“Two-Factor Authentication”、“Multi-Factor Authentication”、“OTP”、“TOTP”等等词语,不过你完全不需要被吓到。​

因为其实它们都是在说同一个意思,就是除帐号密码这一个因素以外,再多增加一个要验证的因素。实现形式可以是用手机短信、邮件来发送验证码,也可以是本文所述的基于时间生成“不断变化”的一次性数字验证码。

怎样使用二步验证?身份验证器/密码器 APP 推荐

那么,既然不靠手机短信发送验证码?我要从哪里得到这个不断变化的 6 位数字二步验证码呢?其实我们只需要安装一个「二步验证 APP」(身份验证器应用) 来生成它即可。这类密码器 APP 有很多,后面会介绍。​

值得了解的是,大多数网站的帮助和提示上都以 Google Authenticator (谷歌身份验证器) 这款 APP 作为例子,但其实,这类二步验证应用 / 身份验证器 APP 都是遵循 TOTP 协议 (同一套加密算法) 生成验证码的,所以它们完全通用,使用上也大同小异,用户只需按喜好选择即可,而不是必须选择某一个 APP 的。​

Authy - 最好用的二步验证 / 身份验证器 APP

Authy 是我个人最推荐的二步验证密码生成器 APP 应用,它完全免费,全平台通用,支持 iOS / Android / Windows / macOS/Linux 系统,提供 Chrome 的浏览器插件(已经停止服务),而且可以备份数据,并支持跨设备同步,可以一 APP 通行全部支持 TOTP 两步验证的网站。

​1Password

1Password 可以说是最出色的跨平台密码管理器,唯一的缺点就是稍贵。它除了支持帐号密码管理以及自动填写密码等功能以外,新版本同样「也可以支持一次性密码 (TOTP 两步验证码)」,数据可以云端同步,使用上非常方便,据说就连苹果也为员工统一配备此 APP。

Microsoft Authenticator - 微软身份验证器

顾名思义,这个就是由微软开发的两步验证器应用,完全免费,跨平台支持 iOS 和安卓,界面简约。新版本增加了数据备份功能,因此也是一个不错的选择。

不推荐使用 Google 身份验证器

相对的,我个人**「并不建议」使用 Google 身份验证器**,尽管很多网站推会荐它,我认为这只是因为它免费、Google 的影响力大、并且它出现得比较早而且。它的缺点非常明显——不支持数据备份!(非常鸡肋的二维码换机备份功能)​

也就是说,如果手机丢失或刷机清空数据后,你的网络账号就麻烦了 (因为你必须使用原来设置两步验证时留存的备用码进行恢复)。而 Authy 或 1Password 这些可以备份和同步的 APP 则没有这个担忧。

如果你是用的是安卓手机,或许可以试试Aegis这款应用,它的备份导入导出功能也是不错的,方便一键换机,也支持中文,而且开源免费!

怎样开启两步验证?

一般在支持二步验证的网站上 (比如我知道的就有:阿里云、腾讯云、Amazon、Humble Bundle、坚果云、Dropbox、Linode、GitHub、微软帐号、Google 帐号、Twitter、Instagram、NameSilo、印象笔记等等),在其“帐号”或“安全”相关页面就能找到「开启两步验证」的选项,然后它就会给你出示一个二维码让你扫描,这时候,你使用任何两步验证的密码认证器 APP (身份验证器应用) ,比如上面推荐的 Authy 扫描一下这个二维码进行即可完成“配对 / 绑定”。之后你就能在 APP 里面获取登录所需的 6 位数字一次性验证码了!此外网站通常会提供一串代码供手动复制粘贴添加,一般来说复制粘贴均可自动识别。image.png 这时你还需要回到网站上,输入正确的验证码,然后点确认保存一下,成功之后该帐号即会正式启用 TOTP 方式的两步验证。值得注意的是,在“绑定”成功并启用二步验证后,部分网站会给你提供一些「备用代码」(备用安全码 / 恢复码) 作为应急手段,在你丢失二步验证设备或数据的情况下,可以用它们来登录并取消二步验证,它们相当于是解除二步验证的最后一条钥匙。所以务必要保存好这些备用安全码,个人建议可以将它们保存在印象笔记、1Password 或者打印出来存放好。否则当意外情况发生 (无法获得二步验证码) 后,你又没有这个恢复码时,你的账号可能将永远无法被访问。所以,备用码非常重要!非常重要!非常重要!切记要备份好! 不同的网站/网络服务开通使用密码认证器的两步验证的流程基本都一样,只是网站界面显示有所不同,大家可以逐一登录到各个网站后台账户页面去看看具体怎样设置。

分享

其实网上关于这个话题已经有很多优秀帖子,博文,所以这篇文章不会过多讲什么,当一个记录罢了。​

总之,重要的网络账号单单只靠密码来保证安全是不够稳妥的,因为它们很容易泄露。「两步验证」才是目前互联网上最佳的安全举措,你不应该忽略它。​

对于重要的账号,基本上只要开启了两步验证并且保存好备用恢复码,它们就几乎不可能被陌生人盗用,轻松把帐号被盗的损失风险和概率降到了最低。所以,如果你之前没试过,那么看完这篇文章后,建议你把支持两步验证的网站都开启它。

从哪里下载虚拟验证器

Authy 官网:https://authy.com Microsoft Authenticator 官网:https://www.microsoft.com/zh-cn/account/authenticator Google Authenticator 官网:https://www.google.cn/intl/zh-CN/landing/2step/index.html Aegis 主页:https://getaegis.app/

可能会用到的资料

Authy 和 Google Authenticator 对比:https://authy.com/blog/authy-vs-google-authenticator Microsoft Authenticator 使用方法:http://www.xitongtiandi.net/wenzhang/win10/26184.html 支持二次验证的网络服务:https://www.appinn.com/10-two-factor-authentication