不知道大家见没见过这个设备,不大,大概是一个打火机的大小。

这玩意儿在当年那个年代,可谓是保护账号安全的一大神器,当初玩儿梦幻西游、大话西游等等游戏的人几乎是人手一个。
当然,那个年代盗号也确实猖獗~
将军令硬件
将军令这个硬件本身是不联网的,而是通过加密算法和服务端同步计算实现的校验。
设备本身出场固化在主板上一颗加密芯片,这上面有一个种子密钥。
其次里面有一个高精度的 RTC 实时时钟,以纽扣电池供电,每 60s 刷新一次。
另外就是一个数显屏幕,显示 6 位动态口令。
实现原理
公式简化:动态口令 = HMAC-SHA1(共享密钥 K,时间计数器 T) → 截取 6 位数字
硬件设备本身带一个加密算法,当将军令设备绑定你的账号以后,设备唯一密钥 K 同步存入网易服务器账号数据库。
现在开始登陆,将军令和服务同时开始计算动态口令,因为使用的算法和当前时间都绝对一致,所以计算出来的结果也是相同的。
这时候只需要判断你输入的动态口令和服务端生成的是否一致即可。
底层实现
1. 计算时间计数器 T
取当前 Unix 时间戳,除以 60 秒向下取整,得到 T;同一分钟内 T 固定,所以 60 秒密码不变。
2. HMAC-SHA1 哈希运算
用设备内置密钥 K + 计数器 T 做加密哈希,输出 20 字节固定哈希串。
3. 数字截断转换
按 TOTP 标准规则偏移截取 4 字节,转为十进制,只保留最后 6 位,就是屏幕显示的动态密码。
虽然是高精度时钟,但是为了防止可能存在的误差。
这里服务器不只校验当前 T,同时校验前后各 1 个时间窗口(上一分钟、下一分钟)的密码,所以轻微时差不会直接失效。
几乎绝对安全
1. 一次性短时有效
口令仅 60 秒有效,且单次登录使用后服务器会标记作废。
就算木马截图窃取,窗口过期立刻失效,无法复用。
2. 密钥物理隔离防窃取
密钥烧录在硬件安全芯片内,无法通过拆解、读取内存导出。
盗号木马只能偷电脑里的静态密码,拿不到密钥,算不出动态码。
3. 三重登录校验
登录必须同时满足:账号正确 + 静态密码正确 + 实时动态口令正确。
哪怕账号密码全盘泄露,没有实体令牌依然无法登录游戏,完美对抗当时主流的盗号木马、键盘记录器等。
当然,这玩意也没办法保证 100% 的绝对安全。
动态口令本身不绑定网站域名,一串 6 位数字可以在任何网易登录页面通用。
骗子做高仿钓鱼网站,诱导你输入账号、静态密码、将军令 6 位动态码;攻击者同步把三组信息转发到真正网易服务器,60 秒窗口内直接登录盗号。
或者是破解安全芯片,以及攻击网易服务器直接拖库。(这几乎是不可能的)
其实当初将军令被盗号绝大多数都是主动泄露动态口令导致的。
总结
将军令这个设备虽然不能保证绝对的安全,但是在 2000 年 ~ 2015 年那个网游盗号泛滥时代,通过这么一个小小的设备大幅度提高了盗号成本。
彻底解决仅泄露账号密码就能盗号的传统木马盗号,这种离线生成密码的方式,网络抓包也无法逆向算出密钥。
穷举 6 位数字概率极低,服务器错误密码锁定防暴力破解。
现在的手机将军令基本上沿用了这一方案,至今仍然保护着各位的账号安全。