面向哲思的编程与架构
笔记哲思阅读动态搜索RSS 订阅
切换到深色模式
搜索
RSS 订阅
切换到深色模式
© 2026 Vic Chen. All rights reserved.CC BY-NC-ND 4.0
← 笔记
金融机构的双因素认证(二):仍被质疑的短信方案

金融机构的双因素认证(二):仍被质疑的短信方案

2026年7月19日2,7628分钟

短信验证码是互联网世界最流行的第二因素,却也是安全圈里被质疑最久的方案。SS7 协议漏洞、SIM 卡复制、补卡攻击……这些弱点早已是公开常识,但短信验证码依然大量存在于金融系统里。这一篇讲清楚它的原理和弱点,再用第 1 篇的强度尺给它一个诚实的定位。


目录
  • TL;DR
  • 1. 原理:验证码怎么从服务器走到你手上
  • 2. 弱点一:SS7 协议漏洞
  • 3. 弱点二:SIM 卡复制与补卡攻击
  • 4. 两种场景下的定位
  • 5. 强度尺定位:为什么它仍然被继续使用
  • 6. 小结
目录
  • TL;DR
  • 1. 原理:验证码怎么从服务器走到你手上
  • 2. 弱点一:SS7 协议漏洞
  • 3. 弱点二:SIM 卡复制与补卡攻击
  • 4. 两种场景下的定位
  • 5. 强度尺定位:为什么它仍然被继续使用
  • 6. 小结
目录
  1. TL;DR
  2. 1. 原理:验证码怎么从服务器走到你手上
  3. 2. 弱点一:SS7 协议漏洞
  4. 3. 弱点二:SIM 卡复制与补卡攻击
  5. 4. 两种场景下的定位
  6. 5. 强度尺定位:为什么它仍然被继续使用
  7. 6. 小结
双因素
相关文章
  • 01
    金融机构的双因素认证(一):一把强度尺2026/07
  • 02
    AI 搜索内核(一):从字符串到符号2026/07
  • 03
    Claude Code 规模化实践(一):如何在大型代码库中工作2026/07
← 上一篇金融机构的双因素认证(一):一把强度尺

评论

© 2026 Vic Chen · 面向哲思的编程与架构CC BY-NC-ND 4.0

TL;DR

这是《金融机构的双因素认证》系列的第二篇,第一个要被具体拆解的方案。上一篇定义了「内部落地系统」「专线托管端系统」两种场景,并借 NIST SP 800-63B 的思路立了一把 L1/L2/L3 认证强度尺。

短信验证码的原理很简单,弱点也早已是公开常识:它依赖的公网通道本身不属于持有者能完全控制的范围。这一篇讲清楚原理和两类已知弱点(SS7 协议漏洞、SIM 卡复制/补卡攻击),再看它在两种金融场景下到底还有没有位置。


1. 原理:验证码怎么从服务器走到你手上

短信验证码的流程本身没什么复杂的密码学:

图1:短信验证码的基本流程

服务器生成一个短期有效的数字串,通过短信网关送进电信运营商的网络,最终落到用户手机上;用户把这串数字念回给服务器,服务器核对通过就算认证成功。整个过程里,服务器信任的不是「用户拥有一个只属于自己的秘密」,而是「验证码能且只能到达那个手机号绑定的 SIM 卡」。这个信任假设,恰恰是后面两类攻击的切入点。

ℹ
按第 1 篇的因素分类,短信验证码本质上是「你有的」(拥有那个手机号/SIM卡),不是「你知道的」。但它和硬件 Token 同属「你有的」类别,强度却完全不是一个量级,差别就在于「拥有」这件事本身有多容易被伪造。

2. 弱点一:SS7 协议漏洞

SS7(Chen 注:SS7(Signalling System No. 7,7号信令系统)是电信运营商网络之间用来交换控制信息(如呼叫路由、短信路由、漫游位置更新)的信令协议,1970 年代设计,当时的设计前提是「网络参与者都是可信的运营商」,没有考虑到后来网络互联规模扩大后,接入方鱼龙混杂的情况。) 是全球电信网络之间路由呼叫和短信的骨干协议。它的设计年代早于「零信任(Chen 注:零信任(Zero Trust)是一种安全架构理念,核心原则是「不默认信任网络内部或外部的任何实体,每次访问都要重新验证身份和权限」,由 Forrester 分析师 John Kindervag 于 2010 年提出,用来替代传统「内网边界防御、内部默认可信」的安全模型。SS7 协议设计年代远早于这个概念的提出,默认信令网络里接入的运营商节点都是可信的。)」这个概念,默许任何接入 SS7 网络的运营商节点都可以查询、重定向他人的呼叫和短信路由。

这意味着,只要攻击者能接入 SS7 网络(通过境外某个监管宽松的运营商、或者非法获得的接入权限),理论上就可以在用户手机完全没有被攻破、SIM 卡完全没有被复制的情况下,把发往目标手机号的短信重定向到攻击者控制的设备上,包括那条一次性验证码。

⚠
SS7 攻击的关键特征是:受害者的手机和 SIM 卡本身毫发无损,攻击发生在受害者完全无法感知、无法察觉的网络层。这也是它比后面要讲的补卡攻击更难防的地方,补卡攻击至少会让受害者的手机突然失去信号,SS7 攻击不会。

这类攻击门槛不低,需要具备电信网络接入能力,因此更多出现在针对高价值目标(政要、企业高管、加密货币持有者)的定向攻击中,而不是大规模撒网式的犯罪。但门槛不低,不代表不存在,对金融机构而言,「攻击者需要电信级资源」恰恰是内部落地系统和专线托管端系统更需要警惕的威胁模型,因为这两类场景本身就是高价值目标。


3. 弱点二:SIM 卡复制与补卡攻击

比 SS7 门槛低得多、也更常见的是针对 SIM 卡本身的攻击,主要有两条路:

一是 SIM 卡复制。早期 2G 时代的 SIM 卡加密强度弱,存在被物理接触后克隆的案例;现代 UICC(Chen 注:UICC(Universal Integrated Circuit Card)是现代 SIM 卡的物理载体标准,内置密钥采用 3G/4G/5G 网络的鉴权算法(如 Milenage),私钥由运营商在生产时写入、不可读出。相比 2G 时代的 SIM 卡,克隆难度大幅提高。) 卡片的密钥不可读出,纯粹的物理克隆已经很难实现。

二是补卡攻击(SIM swap)。这是目前更主流、也更值得警惕的路径,攻击的不是 SIM 卡本身的密码学强度,而是运营商的身份核实流程。攻击者收集受害者的姓名、身份证号、手机号等信息(往往来自数据泄露或社会工程),冒充受害者向运营商申请补办 SIM 卡或号码转网,一旦成功,原 SIM 卡失效、新卡(在攻击者手上)绑定同一个号码,所有发往这个号码的验证码从此都落到攻击者手里。

图2:补卡攻击的路径——绕过的不是密码学,是身份核实流程
✕
补卡攻击的本质是「外包出去的信任」:认证服务器信任的是电信运营商的身份核实流程,而这个流程的强度完全不在金融机构自己的控制范围内。运营商柜台/客服环节的把关松一点,整条链路的强度就随之下降,金融机构自己再怎么加固也没用。

这类攻击已经造成过大量真实损失,尤其在加密货币和网银盗取案例中反复出现,是安全圈里被讨论最多的短信验证码弱点,也是本节要讲的第二类、也是更现实的威胁。


4. 两种场景下的定位

回到第 1 篇的两个场景标签。

  • 内部落地系统:终端通常是机构统一发放和管控的办公设备,员工身份由机构自己的 IAM 系统管理。这意味着,如果内部系统还在用短信验证码作为第二因素,那么认证强度的短板完全绕过了机构自己能控制的一切。不管终端管得多严、内网隔离得多好,短信这一环都要依赖外部电信运营商的核实流程,机构对此没有任何控制力。这是一个和「内部落地系统终端受控」的场景假设完全脱节的方案。

  • 专线托管端系统:短信验证码在这类场景里更加边缘。专线本身提供的网络层信任(第 7 篇细讲)已经解决了「这条链路是专的」这件事,如果第二因素还要绕道公网短信通道,等于在一条精心搭建的专用信任链路上,硬生生开了一个绕不开公网的口子。这在设计上是不协调的,会让整体安全边界出现一个和其他环节完全不对等的薄弱点。

✓
一个简单的判断标准:如果一个方案的强度上限,取决于机构自己完全无法控制的第三方流程(如电信运营商的柜台核实),那么无论机构自己的其他控制多严密,整体认证强度都被这个环节钳制住了。这条标准,后面讲手机动态口令(第 4 篇,密钥托管在用户手机上)时会再次用到。

5. 强度尺定位:为什么它仍然被继续使用

按第 1 篇的三级尺,短信验证码属于 L1(基础级):它是「你有的」因素,但这个「拥有」的真实性完全依赖一个机构自己管不到的外部流程,抗攻击能力弱,且弱点已经被公开、被广泛利用。

一个自然的问题是:既然弱点早已是公开常识,为什么短信验证码还大量存在于各类系统(包括一些金融相关系统)里?答案通常不是技术判断,而是现实约束:

  • 历史惯性:早期系统上线时,短信验证码是当时能落地的最低成本方案,后续迁移到更强方案需要重新设计整条用户认证流程,成本不低
  • 覆盖成本:手机号几乎人人都有,不需要额外发放硬件、不需要用户安装额外软件,覆盖成本远低于第 3 篇、第 4 篇要讲的方案
  • 合规红线不同:短信验证码更多出现在面向客户的场景(如个人网银登录),这类场景的威胁模型和内部落地系统、专线托管端系统不完全相同,本系列聚焦的是后两类场景,不代表对所有金融相关场景的定论
⚠
这里要明确一条边界:本系列的判断只针对「内部落地系统」和「专线托管端系统」这两类场景。这两类场景终端受控、身份体系自成一体,短信验证码在这里几乎找不到站得住脚的理由继续存在。面向海量个人客户的场景(本系列不覆盖)有它自己的权衡,不能简单套用这里的结论。

6. 小结

短信验证码的核心问题不是密码学强度不够,而是它把认证强度的上限,交给了一个机构自己无法控制的外部流程。SS7 协议漏洞攻击的是电信网络本身的设计缺陷,补卡攻击攻击的是运营商的身份核实流程,两条路径都不经过用户设备,也不经过金融机构自己的系统,机构再怎么加固自己的边界都无能为力。

对内部落地系统和专线托管端系统而言,这条短板和「终端受控、网络有额外信任层」的场景假设完全不匹配,短信验证码在这两类场景里几乎没有立足的理由。

下一篇转向真正在金融行业站稳脚跟的方案:硬件动态口令。它同样是「你有的」这一类因素,但密钥的生成和存储方式完全不同:不依赖任何外部运营商流程,这也是为什么它在金融行业至今仍是主力,而不是被时代淘汰的老古董。