对象:正准备给账户开启双因素认证(MFA/两步验证)的人,以及已经开启但还在犹豫「用 SMS 行吗?」的人。本文不讲攻击手法本身,只梳理 哪种方式更强、什么账户该配哪种。
本站的视角:『有 MFA』不是一个勾选框
在安全设置里常见的「双因素认证:开」,其实几乎不携带强度的信息。同样是「开」,SMS 和 passkey 能挡住的攻击截然不同。许多账户被盗并非「没有 MFA」,而是因为「用的是弱 MFA」。所以本站建议,对重要账户不要按「有没有 MFA」来评估,而要按「是否具备抗钓鱼能力」来评估。
为什么需要 MFA
密码单独来看,应当以「迟早会泄露」为前提去考虑。重复使用、泄露外流、被猜中、被钓鱼——被攻破的途径有很多。MFA 就是在第一道被攻破时,用第二道拦下来的保险。
尤其重要的是邮箱账户。许多服务都用邮件来恢复「忘记密码」,所以邮箱一旦被夺,其他账户也会像拔藤带瓜一样被连环重置。因此邮箱正是应当用最强 MFA 来守护的「王国之钥」(→ 最低限度清单的 Tier 0)。
强度的层级(本质所在)
同样叫「双因素认证」,方式不同强度截然不同。越靠左越弱,越靠右越强。分水岭在于**「会不会对假站点出示」**。
✗ SMS / 邮件
手动输入数字。被中继钓鱼、SIM 交换攻破
△ 验证器 App(TOTP)
比 SMS 强,但验证码可能被中继到假站点
○ passkey
设备生物识别。绑定域名带来抗钓鱼
◎ 物理安全密钥
FIDO2 专用密钥。最为坚固·建议备用密钥
SMS / 邮件的验证码
- 验证码只是一串数字=在假站点上也能照贴
- 会被 SIM 交换(劫持手机号)夺走接收
- 一旦被中继钓鱼「转发给真站点」便毫无作用
- 比没有强,但当不了最后的防线
passkey / 物理密钥(FIDO2)
- 密钥绑定到所访问的域名=在假站点上签不出名
- 原理上抗钓鱼(不依赖人的判断)
- 用设备生物识别或专用密钥,没有可被盗的「字符串」
- 王国之钥就用它
「抗钓鱼」是什么
这是最重要的概念。SMS 或验证器 App 的验证码,归根结底要靠人用眼睛判断「是不是输进了正确的站点」。但以假乱真的假域名,人是分辨不出来的。而 passkey 或物理密钥(FIDO2)则让密钥本身记住「这是给哪个域名用的」,因此对假站点不会返回签名。也就是说人被骗了,密钥不会被骗。这就是「抗钓鱼」,是区分弱方式与强方式的决定性差别。
如何设置(顺序很重要)
先从王国之钥开始
密码管理器本体也要 MFA
若不支持就用验证器 App(TOTP)
妥善保管恢复码
准备一个备用手段
即使开了 MFA,也别再重复使用密码
MFA 是保险,不是弱密码的借口。在只能配上不具抗钓鱼能力的 MFA(如 SMS)的服务上,密码的强度与唯一性仍然是最后的防线。强度可在 密码强度检测器 上确认。
本站是怎么做的
本站把重要账户——尤其是邮箱与域名、服务器管理、支付——尽可能用具备抗钓鱼能力的 MFA牢牢守住。理由很简单:它们都是「被夺一个就全被夺」的王国之钥。日常登录用密码管理器管理,并给这个管理器本身也配上 MFA。而且不止步于「开了 MFA」,还会定期复查配的是哪种方式。一旦发现某个重要账户只配了 SMS,就把它当作"漏洞",优先升级为 passkey/物理密钥。不按有无来管理,而按强度来管理——这就是本站的方针。
接下来阅读
- 基础:安全最低限度清单(最优先守护王国之钥)
- 保管:密码的安全保管方法
- 术语:SPF/DKIM/DMARC(防伪造邮件)
- 术语:什么是钓鱼(抗钓鱼 MFA 对付的对象)
- 无密码:什么是 passkey(不用密码、无法被盗的登录)
- 工具:密码强度检测器
FAQ
Q开启双因素认证(MFA)就安全了吗?
比不开要安全得多,但『开了=安全』并不成立。方式不同强度会差三档,SMS 或邮件的验证码会被钓鱼(把验证码诱导到假站点的中继攻击)和 SIM 交换攻破。请给重要账户配上无法对假站点出示的 passkey/物理密钥(抗钓鱼 MFA)。
Q为什么说 SMS 验证较弱?
因为验证码只是一串数字,输入到的是真站点还是假站点只能靠人来判断。它会被把验证码骗进以假乱真站点的中继钓鱼、以及劫持手机号的 SIM 交换攻破。比没有强,但当不了最后的防线。
Q到底该选哪种方式?
最强的是 passkey(设备的生物识别)和物理安全密钥(FIDO2)。它们把密钥绑定到所访问的域名上,因此在假站点上原理上签不出名=抗钓鱼。在不支持的服务上使用验证器 App(TOTP),SMS 只作为没有其他可选项时的最后手段。