查看: 45|回复: 0

将军令从不联网,服务器怎么知道 6 位动态密码?TOTP、U 盾、Passkey 身份认证通俗科普

[复制链接]

1813

主题

5

回帖

5516

积分

超级版主

积分
5516
发表于 2026-10-15 08:26:22 | 显示全部楼层 |阅读模式

导语

      很多老网游玩家都记得将军令:一个小小的硬件令牌,不用 WiFi、不用流量,完全不联网,屏幕每隔几十秒就刷新一组 6 位数字。登录游戏输入这串数字,远在云端的服务器却可以精准校验密码是否正确。

      很多人会疑惑:设备没有任何网络通信,服务器究竟是怎么同步这串不断变化的验证码?这套技术就是TOTP 基于时间的一次性密码,现在手机上各类二次验证器 App 底层也是这套逻辑。

      与之对比,网银 U 盾采用完全不同的非对称加密思路。本文通俗拆解将军令、TOTP、一代 / 二代 U 盾的防护逻辑,同时对比短信验证码的缺陷,以及新一代通行密钥 Passkey 的设计思想,看懂互联网 “证明你是你” 的几种主流技术方案。


一、将军令不联网,却能对上验证码:TOTP 时间型一次性密码

将军令硬件出厂时,设备内部会烧录一串独一无二的随机密钥,业内称为种子(共享密钥)。同时,服务器数据库当中,会对应保存完全一模一样的种子,绑定这个令牌的序列号。

关键点:种子只会在绑定阶段完成同步,日常登录过程中,种子不会在网络上传输,不会通过互联网来回发送。

除了完全一致的种子,客户端硬件与服务器还共享同一个公共参照:时间。 算法会把 Unix 纪元时间(1970‑01‑01 起算的总秒数),按固定步长切割成一个个时间格子。常见步长为 30‑60 秒,同一个时间格子之内,计算出来的验证码固定不变;时间跨入下一格,验证码就整体刷新。

  1. 将军令本地:种子 + 当前时间格子编号,送入 HMAC 哈希算法运算,输出一大串哈希字节;
  2. 按标准规则截取字节,换算之后保留最后 6 位十进制数字,就是屏幕展示的动态密码;
  3. 服务器这边,拿着同一套种子、同一个时间格子编号,执行完全一样的计算,算出预期 6 位数字,和用户提交的数字比对校验。

两边各自本地独立运算,不需要设备和服务器互相通信,只要种子一致、时间大致同步,输出的 6 位验证码就会完全相同。

时钟漂移容错机制

硬件令牌内置的石英时钟,长年累月运行会产生走时偏差,也就是时钟漂移。 为了防止时钟轻微偏差导致验证失败,服务器不会只校验当前这一个时间格子,还会额外验算前后 1‑2 个时间窗口。只要其中一组计算结果匹配,就可以完成登录;服务器还会记录该令牌的时间偏移量,后续自动补偿时间误差IETF Datat...。

安全弱点:TOTP 整套体系的命门就是共享种子。一旦种子被黑客窃取,攻击者就可以独立算出每一组动态验证码。2011 年 RSA 公司发生重大安全事件,用于硬件令牌的大量种子库遭到泄露,直接导致下游多家大型企业被入侵,事后企业只能全部更换硬件令牌。因此服务器侧的种子密钥需要极高等级加密保护。

手机验证器 App 也是 TOTP

现在微软验证器、Authenticator 等 App,底层遵循公开标准 RFC6238 TOTP 协议。绑定账号弹出的二维码,并不是加密图片,而是一段otpauth://开头的明文 URL,secret=后面经过 Base32 编码的字符串,就是那一份共享种子。 ⚠️重要安全提醒:不要随便截图分享这个绑定二维码,别人拿到这张截图,就等同于拿到你的种子,可以完全复刻你的二次验证码。

另外 TOTP 还有防护规则:

  1. 6 位验证码只有一百万种组合,服务器会设置错误次数锁定,防止暴力猜码;
  2. 同一个时间窗口内的验证码只能使用一次,用过即作废,抵御重放攻击;
  3. 服务器数据库不能简单存储种子的哈希值,因为 TOTP 需要拿原始种子实时参与运算,种子必须高强度加密保存。

二、网银 U 盾:私钥锁在硬件内部,走数字签名路线

U 盾和将军令 TOTP 不是同一套技术。将军令是两边共享同一把密钥;U 盾使用非对称加密(公钥、私钥密钥对)。

  1. 密钥对在 U 盾硬件芯片内部生成,私钥永远不能导出、不能读出,锁死在硬件里面;银行服务器只保存对应的公钥。
  2. 转账交易时,交易信息(收款人、金额)传入 U 盾,由内部私钥对交易内容做数字签名;签名结果上传银行。
  3. 银行使用公开的公钥校验签名是否合法,以此确认这笔指令确实来自这个 U 盾硬件。

一代 U 盾与二代 U 盾的关键差异

  • 一代 U 盾:无屏幕无确认按键 交易内容电脑软件直接送入 U 盾完成签名。风险在于:如果电脑已经中木马病毒,木马可以偷偷篡改收款人账号、转账金额,U 盾看不到真实交易内容,依旧会照常完成签名,资金会被盗转。
  • 二代 U 盾:增加显示屏 + 物理确认按键,所见即所签 转账时,U 盾屏幕直接展示本次交易的收款账号、转账金额。必须人眼确认信息,再手动按下实体确认按键,才会执行私钥签名。即便电脑已经被木马篡改数据,U 盾屏幕展示被篡改后的内容,用户一眼可以识别异常,拒绝确认签名,以此抵御电脑端木马篡改交易的攻击。

通俗总结:将军令 TOTP 靠 “两边共同算密码”;U 盾靠 “私钥封死在硬件,人确认内容再签名”。

三、短信验证码的致命短板,以及新一代通行密钥 Passkey

很多人习惯的短信验证码,属于很普及的二次验证,但存在固有安全缺陷。验证码是服务器生成,通过运营商短信下发。风险来自SIM 卡劫持攻击:黑客通过欺骗运营商补卡,把你的手机号劫持到黑客手机,所有短信验证码都会流向攻击者。历史上就发生过知名人物遭遇 SIM 劫持,社交账号被入侵的真实案例。

而新一代通行密钥 Passkey(FIDO2),借鉴 U 盾的安全思想,把这套能力内置到手机、电脑安全芯片:

  1. 在设备本地生成公私密钥对,私钥保存在手机安全硬件,不对外流出;服务端保存公钥;
  2. 登录网站时,网站发出随机挑战;设备通过指纹 / 人脸确认本人身份,使用私钥对挑战做签名传回网站;
  3. 签名信息会绑定网站域名。即便遇到钓鱼虚假网站,域名不匹配,就算拿到签名也无法在真实网站完成登录,抵御钓鱼攻击,这是短信验证码、TOTP 很难做到的能力36氪。

四、几种身份认证方案优缺点对比

表格

方案核心原理主要优势明显短板
将军令 / TOTP两边共享种子 + 时间哈希运算硬件无需联网,部署简单种子泄露全盘失守,无法防御钓鱼网站
二代网银 U 盾硬件内部私钥,所见即所签签名防木马篡改交易硬件随身携带,使用相对繁琐
短信验证码运营商下发一次性短信开箱即用无需额外 AppSIM 劫持、短信劫持风险,容易被钓鱼利用
Passkey 通行密钥设备安全芯片非对称签名防 SIM 劫持、抵御钓鱼攻击部分老网站尚未支持

五、普通用户实操安全提示

  1. TOTP 绑定二维码不要截图转发、不要随意上传云盘,泄露等价泄露安全种子;更换手机优先导出恢复码,不要只依赖截图二维码。
  2. 网银尽量使用带屏幕按键的二代 U 盾;电脑有中毒风险时,不要盲目插入 U 盾。
  3. 能使用 Passkey 通行密钥的平台,优先开启通行密钥,安全性高于短信验证码。
  4. 短信验证码不要作为唯一的账号防护手段,高价值账号优先搭配 TOTP 硬件 / 软件二次验证。

六、常见认知误区澄清

  1. 误区:将军令会偷偷后台联网同步密码。 纠正:硬件完全不联网,依靠本地种子 + 时间独立计算验证码,没有任何网络交互。
  2. 误区:拿到某一次 6 位动态验证码,就可以推算下一组验证码。 纠正:只凭输出的 6 位结果,无法反向推导出种子,算不出后续验证码;前提是种子没有泄露。
  3. 误区:U 盾可以被软件把私钥读出来复制。 纠正:正规 U 盾硬件设计,私钥生成之后禁止导出;一代 U 盾风险来自木马篡改交易内容,不是私钥泄露。
  4. 误区:TOTP 可以防御钓鱼网站。 纠正:不能。钓鱼网站可以诱导你输入当前有效的 6 位验证码,直接完成登录。
  5. 误区:短信验证码足够安全。 纠正:存在 SIM 卡劫持风险,高价值账号不建议只依靠短信做二次验证。

文末总结

将军令不用联网却可以生成可校验的动态密码,背后是 TOTP 基于时间的一次性密码算法,依靠设备与服务器两份完全相同的种子,加上统一的时间,两边独立哈希运算得到验证码。

网银 U 盾则走上非对称数字签名路线,把私钥锁死在硬件当中;二代 U 盾靠屏幕加实体按键,解决电脑木马篡改交易的隐患。 短信验证码存在 SIM 劫持风险;而 Passkey 通行密钥继承 U 盾的安全思想,把安全能力内置进手机设备,同时抵御钓鱼网站攻击。

各种各样技术本质都在解决同一个古老问题:互联网上,如何可靠证明 “你就是你本人”。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|天翼网

相关侵权、举报、投诉及建议等,请发 E-mail:2026@typc.net

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.|晋ICP备2026008270号-1|晋公网安备14010602111293号

QQ客服返回顶部