什么是短信验证?一次性验证码如何从应用发到手机

什么是短信验证?一次性验证码如何从应用发到手机
简短回答

短信验证是一种核验方式:应用通过短信向某个手机号码发送一次性验证码,并要求您输入回去,以证明您能在该号码上接收短信。验证码从应用的服务器发出,经过短信网关,再通过移动运营商送达该号码对应的手机或收件箱。它被广泛用于注册和登录,但 NIST 等安全机构认为它的安全性不如身份验证器应用和安全密钥。

短信验证的作用

应用使用短信验证来回答一个问题:这个人现在能否在这个手机号码上接收短信?如果您能读到验证码并输入回去,应用就认为该号码已确认。

这一项核验服务于多个目标。注册时,它把账号与一个可联系的号码绑定,并提高批量创建虚假账号的成本,因为每个账号都需要一个可用的号码。登录时,它在密码之外充当第二因素。找回账号时,它为应用提供了一种在您忘记密码时联系到您的方式。

这种验证码通常称为 OTP(一次性密码),或直接叫验证码。术语表 /glossary 解释了这些术语以及 2FA、A2P 短信、发件人 ID 和短信网关等相关概念。

验证码的传递过程,逐步解析

1. 您输入手机号码。应用会检查格式,通常会把它转换为带国家代码的国际 E.164 格式,还可能对号码所属国家/地区和号码类型进行自己的检查。

2. 应用服务器生成一个随机验证码,连同过期时间一起保存,并请求短信服务商发送它。许多应用在这一步使用第三方消息服务。

3. 短信服务商(通常称为短信网关)把消息送入移动网络。应用发给个人的消息称为 A2P(应用对个人)短信,发件方可能显示为短号码、长号码或字母数字发件人 ID。

4. 消息在运营商之间传递,直到到达为目标号码提供服务的网络。该网络把消息投递到 SIM 卡上;如果号码由 SMS Hallo 这类服务托管,则投递到在线收件箱。

5. 您读取验证码并输入应用,或一键复制。应用把它与保存的验证码进行比对。如果一致且未过期,核验即通过,该验证码也不能再次使用。

整个过程通常只需几秒钟,但每一步都由不同的公司负责,这就是链条中任何环节都可能出问题的原因。

语音电话、闪信来电等其他方式

许多应用在短信失败时提供备用方式:由自动语音电话读出验证码。还有些应用使用“闪呼”(flash call),即应用拨出一个电话,从来电号码中读取验证码,您无需接听。有些即时通讯应用还可以在条件允许时,通过自身应用或其他消息服务发送验证码。

这些方式仍然依赖电话网络能够连通该号码。如果您的号码既能接收短信也能接听电话,完成核验的途径就更多。SMS Hallo 的号码两者都能接收:验证码显示在短信收件箱中,来电可以在浏览器拨号器中接听。

收不到验证码的常见原因

号码输错了。漏掉国家代码、多了一个开头的零或数字顺序颠倒,都会把验证码发到错误的地方。请务必核对应用回显给您的号码。

应用不向这类号码发送。许多应用在发送前会检查号码类型和国家/地区。有些拒绝固定电话或网络电话号码,有些会限制特定国家/地区或号段。应用可能会显示错误,也可能干脆不发送验证码。

频率限制。反复请求验证码可能导致应用或短信服务商暂停发送一段时间。请等倒计时结束后只请求一次。

运营商过滤和路由延迟。网络会过滤疑似垃圾信息的流量,国际线路也可能增加延迟。耗时几分钟的验证码可能在已经过期后才到达。

手机或收件箱问题。使用 SIM 卡时,信号差、收件箱已满、拦截了发件人或垃圾信息过滤都可能让验证码看不到。使用在线号码时,请确认号码仍处于有效状态,并且您在控制面板中查看的是正确的号码。

验证码已过期。大多数验证码只在几分钟内有效。请使用最新的验证码,如有疑问就重新获取。

短信与其他第二因素的对比

短信很方便,因为几乎每个人都有手机号码,但权威指南将其排在其他方式之后。NIST 的数字身份指南 SP 800-63B-4 将通过公共电话网络进行的身份验证列为“受限”方式,指出验证方应考虑 SIM 卡更换或携号转网等信号,要求必须提供其他类型的验证方式,并说明带外验证码不具备抗钓鱼能力。

FTC 解释了实际风险:攻击者可以通过 SIM 卡劫持(SIM swap)接管号码并接收验证码。它认为身份验证器应用更安全,安全密钥则是最强的选项。CISA 针对高风险目标人群的指南更进一步,建议完全不要把短信用作第二因素,并指出短信没有加密。

身份验证器应用依照 IETF RFC 6238 中的 TOTP 标准,使用共享密钥在您的设备上生成基于时间的验证码,整个过程不经过电话网络。安全密钥和通行密钥(passkey)使用与真实网站绑定的公钥加密技术,能阻止大多数网络钓鱼。

结论:短信验证适合在注册时确认号码,也远比没有第二因素好;但对于最重要的账号,只要服务支持,就请添加身份验证器应用或安全密钥。

稳定收到验证码的小技巧

只在准备好输入时再请求验证码,因为大多数验证码几分钟内就会过期。等待时保持应用打开,不要切换出去再重新开始。

如果应用提供选择,一次短信失败后可以尝试语音电话。电话可能会走网络中的另一条线路。

使用您会长期保留的号码。验证并不只是一次性的:同一个号码日后可能用于新设备登录和密码重置,几个月后仍能联系到的号码能省去很多麻烦。

不要把验证码告诉任何人,即使对方自称是应用的客服团队。发给您的验证码证明您掌控着这个号码,把它交出去就等于把控制权交给了别人。

保持账号信息最新。如果更换号码,请在旧号码仍可使用时,在每个应用的设置中添加新号码,这样就不会因为验证码发到一个您已不再拥有的号码而被锁在账号之外。

为什么应用在意您使用哪种号码

由于短信验证也是防止虚假账号的一道关卡,许多应用会检查号码本身。免费公共在线接收短信网站的号码由所有访客共用,因此应用经常会屏蔽它们,而且发到那里的任何验证码都可能被陌生人看到。

真实手机号码是大多数服务所期望的号码类型。SMS Hallo 出租 181 个国家/地区当地手机号格式的真实手机号码,在您租用期间只有您能看到它收到的短信。即便如此,每个应用仍会自行决定接受哪些号码,没有任何服务商能保证所有应用都接受某个号码。

请只为您有权拥有的账号进行验证。SMS Hallo 的可接受使用政策禁止虚假或重复账号、欺诈,以及利用号码跳过身份核验。

用 SMS Hallo 接收验证码

用电子邮箱和密码注册,选择国家/地区和号码并付款。收到的短信会显示在控制面板中,验证码自动识别,可直接复制。

每个 SMS Hallo 号码都包含无限接收短信、无限接听来电、每月 500 条外发短信和每月 1,000 分钟外拨通话。额度每 30 天重置一次,未用完的额度不会结转。

12 个月套餐低至每月 $1.80(按年付费 $21.60),所有国家/地区价格相同,无开通费。请通过续费或开启自动续费保留号码,因为过期的号码可能会分配给别人,对方就可能收到仍绑定该号码的账号的验证码。

每个 SMS Hallo 号码都附带三项保障。第一,7 天免费更换:7 天内您可以免费换成同一国家/地区的另一个可用号码,最多 3 次,新号码保留原套餐和到期日。第二,“可用,否则 100% 退款”:如果号码无法用于您租用它所针对的应用,例如验证码始终收不到,7 天内申请即可退还已付金额的 100%。第三,7 天退款保证:如果号码未拨打或接听过任何电话、未收发过任何短信,7 天内可无条件全额退款。

资料来源

常见问题

什么是短信验证码?

一种简短的一次性验证码,通常为 4 到 8 位数字,由应用通过短信发送,用来确认您能在某个手机号码上接收短信。它只在有限时间内有效,且只能使用一次。

短信验证就是双重验证吗?

不一定。注册时它只是确认您的号码。当它在登录时与密码配合使用时,才起到第二因素的作用。

短信验证安全吗?

它能增加一层保护,但由于 SIM 卡劫持、拦截和网络钓鱼等风险,NIST、FTC 和 CISA 都认为它不如身份验证器应用和安全密钥。重要账号在有条件时请使用更强的方式。

为什么我收到的是语音电话验证码?

许多应用在短信较慢或被拦截时提供电话作为备用方式。自动语音会读出验证码,您再输入即可。

为什么收不到验证码?

常见原因包括号码输错、应用不向该类号码发送、多次请求后触发频率限制、运营商过滤或延迟,以及验证码已过期。

没有 SIM 卡也能接收验证码吗?

可以。在线手机号码可以在网页控制面板中接收短信。应用仍会自行决定接受哪些号码,如果验证码始终收不到,可享受 SMS Hallo 的保障。

什么是短信网关?

应用用来把短信发送到移动网络的服务。它会把每条消息路由到为目标号码提供服务的运营商。

指南

相关阅读

更多指南

· SMS Hallo

支持 WhatsApp、Facebook、Telegram、Google 等应用

7 天换号保障 · 无法使用?100% 退款

7 天换号保障:如果号码在前 7 天内无法满足你的使用,可在控制面板一键免费更换为同一国家/地区的其他可用号码。新号码沿用你的套餐和到期日。

如果号码无法用于你租用它时想用的应用(例如始终收不到验证码),请在 7 天内告诉我们,我们将退还你为该号码支付的全部费用(100%)。

7 天退款保证 →