验证码短信多了一个接力者:双机转发应用的落地面与断链清单 图 1
验证码短信多了一个接力者:双机转发应用的落地面与断链清单 · 图 1

转发是怎么发生的

短信本身存在系统收件箱数据库里,普通应用看不到它。转发类应用之所以能替你办事,靠的是两类权限的组合:一类直接读取短信内容,另一类通过监听通知栏间接拿到同样的正文。拿到内容之后,按你预设的规则做搬运:发到你指定的邮箱、推到你戴的手表、同步到另一台登录了同一服务的手机、或者转发进某个即时通讯会话。规则可以宽到「所有短信」,也可以窄到「发件人是那五串号码」。

换机过渡期是这类应用最合理的用武之地:新号码还在生效等待期,旧机替新机收一阵验证码。问题在于过渡结束后的应用往往比过渡活得更久,转发器忘了拆,规则没人读,那台本来该退休的旧机就成了账号验证码的常驻二传手。

一条验证码从此有了几份

没装转发器之前,一条验证码的生命周期在收件箱里,看过了、过期了、删了,大致就完了。装了转发之后,同一条短信至少多出三份潜在副本:落地邮箱里一封、转发应用的同步服务上一份、接收端的设备本地一份。每一份都有自己的访问面:邮箱账号能不能被别人登录、同步服务保留多久、那台手表会不会丢。安全验证里短信属于「你持有的东西」这一类因素,转发的实质效果是把这个「只有这台设备能看」的因素,摊成了「这几个地方能看到」。它不一定立刻坏事,但它让每个地方的账号安全都成了这条验证码安全的一部分,而你多半没为这些地方设过防。

最典型的组合拳是转发目标邮箱本身防护薄弱:无工具验证、密码复用、登录设备列表从没看过。攻击者拿下那个邮箱,等于同时拿到你的通知档案和验证码副本;若他另有办法触发登录,转发链路替他省掉了碰你手机的必要。

先盘点:哪些号值得被接力

拿一张纸,列你现在被转发的每一条规则,逐条问三个问题。这条规则覆盖哪些发件人?转发的落地在哪、那个落地账户有没有第二重验证?这条规则今天还有用吗?实践中真正需要长期转发的短信不多,多数规则是历史遗留:一个不再用的平台的验证通道、一个忘了改绑定的旧账户。把没有主人的规则先拆掉,剩下的收敛到白名单式:只转发列出的几个发件人,其余一律不动。

再收紧:给落地端补第二道锁

不能断的转发,就让它的落地端变贵。邮箱落地的,给邮箱开工具验证类第二因素、检查登录设备列表、确认它没被别的应用通过授权通道长期读取;云端落地的,读一遍保留策略,能设自动清理期限的就设;手表或副机落地的,那台设备本身要有锁屏密码和可远程清除的准备。一句话,转发不改验证码的用途,但把验证码的存放点加了几个,每个新增存放点都要配得上它承载的东西。

断链的正路:改绑定,不是收通知

转发器真正的替代方案,是把源头一条条搬走:在各项服务里把验证手机号改绑到你日常的主力设备上,改完就撤一条转发规则。顺序讲究先立后破:新号在各项服务里验证通过、能正常收码,再拆旧机的转发,全部拆完观察一个周期,确认没有漏网的服务依赖旧号,最后处理那台旧机的登录退出与数据清除。实在需要保留过渡转发的,给它设一个日历提醒,到期必须复核或拆除,转发器这种东西,活得越久越没人记得它的存在。

本文为安全防御指引,不构成投资建议。