两条保管链路在授权闸门后交接,闸门旁挂着一份可展开的范围清单

一、明文文件这个口子堵上了,风险搬到了哪一段

以前更换凭据保管方,标准动作是先导出一份未加密的文本或表格文件,再在新的一方导入。这份文件会在下载目录、邮件附件、网盘同步和聊天窗口里停留多久,从来没人记录,它也几乎从不被删除。平台把这条路径换成一次授权流之后,明文落地文件这个最大的暴露面确实消失了。但风险没有减少,它只是换了形态:从“导出出来的那份文件谁能拿到”变成“谁能在授权通过之后一次性拿走全部”。这两种风险的治理手段完全不同,前者靠文件生命周期管理,后者靠选择粒度与可审计性,用错一套等于没治理。

据公开报道,这条链路由五个环节组成:由新的保管方发起迁移、平台列出设备上原有的提供方、跳转到旧应用、用户在旧应用里完成选择与审阅并授权、平台称授权通过后数据直接传入新的保管方。五个环节每一个都有各自的失效方式。下面这张表是我们做安全交付时逐环节要问的那一句,也是验收时逐项打勾的位置。

环节 验收时要问的那一句 工程风险点
发起方身份 平台凭什么认定发起者是合法提供方 如果发起身份只靠应用自报,任何内置了迁移入口的程序都能站到合法提供方的位置上;认定必须能回溯到签名与登记主体,而不是界面文案
提供方列表 列全了没有,能不能被伪造 漏列会让用户以为已经迁完;多列或伪造一项,等于凭空造出一个可被授权的假去处;列表要能标注每一项的来源与不可用原因
跳转旧应用 用户在这一页看到的是范围还是一个按钮 跨应用跳转很容易被当成系统提示随手确认;确认页必须承载迁移范围与条数量级,不能只有“是否允许”
选择审阅授权 这次授权覆盖什么、多久失效、能否中途撤回 作用域、有效期与撤回方式三项不显示给用户,就是把范围决定权交出去
传入与旧侧处置 旧的那边留下什么、留多久 是否留副本、留存期限、可否清除,这三项若不落到界面与记录上,事后无法核对,也没法对外承诺

二、选择粒度:只能全量迁移的入口本身就是高价值攻击面

一项迁移能力真正的门槛不在“能不能迁”,在“能不能只迁一部分”。要分四层问清:按条目、按分组、按时间范围、按类型排除。四层都不支持、只给“全部带走”一个选项的系统,等于把一个人最有价值的一批凭据打包成一次动作就能完成的对象;拿到那一次授权就够了,不需要再碰任何别的边界。所以我们的判定是:粒度不到条目级的迁移入口,在企业环境里应当默认禁用,而不是默认允许。

排除项至少要覆盖四类,而且在界面上每一类要有独立的默认状态,默认不选。第一类是支付类凭据,包括卡号与支付网络账号,它的下游是资金动作,出错的代价与其他条目不在一个量级。第二类是密钥类条目,例如私钥、恢复短语与令牌种子,这类内容一旦离开原有的保管假设就不再受原有保护。第三类是企业账号,它受管理策略约束,本来就不该进入个人保管环境。第四类是一次性验证码与身份核验类条目,它们短周期有效,迁过去多半已经失效,留着只会污染新库。四类都要列出来,用户才能做决定;只写一句“敏感条目请自行确认”,等于把责任推给一个没有信息的人。

三、有三类凭据本来就迁不走,这话要写在界面上

第一类是通行密钥。它的秘密部分按设计留在设备或安全元件内,可迁的是这条凭据的记录与关联信息,不是那份可以被复制的秘密。这一点要讲清楚,否则用户会以为迁完之后在任何设备上都能用。第二类是依赖设备绑定或安全元件的凭据,离开那件硬件就没有可迁的东西;这类条目在列表里应当显示为不可迁并给出原因分类,而不是悄悄消失,让用户以为对方库里本来就没有。第三类是企业受管账号,往往由管理策略直接禁止导出,这不是技术缺陷,是治理决定,需要在策略侧留痕,而不是在客户端做沉默拦截。

这三类的共同表现是“迁过去之后性质变了”:从绑定硬件变成跟随账号同步,从受管变成自管。界面必须在迁移之前而不是之后告诉用户哪几条属于这一档。一句小字提示不够,要写成一份可展开的迁移前清单,至少分三档给出预计数量:可正常迁出、迁出后降级、不可迁出,每档给原因分类。用户在确认页看到的应当是一个数量分布,而不是一个“继续”按钮。

四、迁完之后核对四项,顺序不能换

第一项是数量核对。迁出前后的条目总数与分组数逐档能否对上,差值能不能解释到上面那三档里去。第二项是关键域名的可用性核对,挑少数几个每天真正要用的场景各做一次正常登录,只验“迁过去还能用”这一件事,顺手做别的操作反而会把结论搞脏。第三项是通行密钥的状态核对:在新的保管方里,它显示为设备绑定还是可同步。从“设备绑定”变成“可同步”不是同步更方便这么简单,安全属性已经改了,要记进变更台账。第四项是旧侧副本核对:旧保管方里是否留下副本、能不能清。留不留是对方的产品决定,但我们必须知道答案,因为它决定了后续任何删除动作的真实范围。

顺序上要先数量后个案。个案全部通过不代表数量对得上,数量对得上也不代表个案能用,两项各自覆盖一半的失败模式,只做一项等于没核对。

五、企业侧要立刻做的三件事,洹拓按这个顺序推

第一件,在设备管理策略里明确列出允许作为迁移目标的提供方名单,并把“未列入即禁止作为目标”写成默认规则。留一个默认允许的口子,等于让每台员工设备各自决定边界在哪里,事后连统计都做不出来。

第二件,把受管账号的凭据不得进入消费级保管环境写成可执行约束:一方面在策略侧禁止导出,另一方面在服务端把这类条目从可迁列表中摘掉。只做前者,用户会看到一条报错却不知道原因;只做后者,绕开服务端入口的旧路径依然存在,两侧同时做才收敛。

第三件,把迁移事件当作一类可审计事件向管理员暴露,字段建议为:源提供方、目标提供方、设备标识、发起时间、条目量级、是否包含企业账号、结果状态(完成、中止、降级)。这里刻意只记量级不记明细,因为审计日志一旦包含凭据内容,它自身就变成库里最值钱的那张表,反而制造新的暴露面。

六、账号体系:谁存着凭据不再是稳定属性,风控信号要重选

过去做账号找回与异常判定,“用户把凭据存在哪家”虽然拿不到,但在时间尺度上近似稳定。跨保管方迁移能力铺开之后,这个前提没了:一个真实用户完全可能在一天之内换掉存放凭据的地方。于是那些原本好用的推断要降级成弱信号。我们的处理是把“来自新保管方的首次登录”纳入观察,而不是当成攻击证据;误判一个正常搬家的人,代价是把他推向更容易被社工的路径。

更可用的几条信号要组合起来看:保管方来源变化与设备变化是否同时发生;迁移事件之后短时间内的敏感操作密度;账号恢复请求相对迁移时点的分布。任何一条单独拿出来都不构成判定,写进规则时要明确这一点,否则整群刚换过保管方的用户会一起掉进高风险桶里,模型反而失去了区分能力。

最后一条是我们给自己定的纪律,也建议直接写进交付评审:任何“一键搬家”类能力上线之前,先填一份四格声明:我们能拿走什么、拿不走什么、谁批准、留下什么记录。四格里有一格填不出来,说明这条链路还缺可审计的那部分;四格都填不满,就不要放这个入口。