日期:2026-09-07
某客户在私有化环境部署了自研的行业大模型,这套权重是团队熬了两年、烧了不少算力攒出来的核心资产。但交付到客户机房后,我们才发现一个尴尬事实:模型文件就躺在磁盘上,客户侧任何有服务器权限的人都能直接拷走,拷到别的机器加载就能用。多年技术壁垒,物理上等于零防护。
客户自己一开始也没意识到这风险,觉得在自己机房里还怕啥。我们提醒后才重视起来,因为这类行业模型的壁垒不在代码,在权重,权重一泄,竞品拿到就能直接推理,前期投入归零,而且私有化场景下客户还不愿意对外声张,泄了都难追责。
我们做的第一件事是权重加密存储,模型文件落盘就是密文,明文只在运行时内存里短暂存在。运行时解密是第一段,服务启动时用密钥解密进内存,磁盘上永远是不明文的。密钥与硬件绑定是第二段,密钥和机器的 TPM 或硬件指纹绑定,换台机器密钥失效,拷走的密文也解不开。License 授权与调用鉴权放第三段,每次推理调用要带合法 License,无授权直接拒,异常调用实时告警,形成从存储到使用的闭环。
案例片段(已脱敏): 权重加密与硬件绑定授权配置片段(示意):
weight: at_rest: encrypted in_memory: decrypt_on_load key: bind: tpm_fingerprint license: required: true check_per_call: true alert: unauth_call: true上线后未授权调用拦截率约 100%,解密开销约占单次推理耗时 3%,密钥轮换可在约 5 分钟内完成,合规审计一次通过。
第一个坑是加密对推理性能的影响。解密和加解密运算如果每次推理都做,延迟会爆。我们做法是只在加载时解密一次进内存,之后推理走明文内存,开销摊薄到几乎可忽略,实测只占单次耗时约 3%。这一步比全程加密现实,因为性能红线不能碰。
第二个难点是密钥安全托管。密钥如果和模型放一起,等于锁和钥匙挂一个钉子上。我们让密钥绑硬件指纹且独立托管,解密时硬件侧验指纹才放密钥,模型文件本身不含密钥。这里有个权衡,硬件绑定会不会影响正常的容灾迁移,我们留了授权转移流程,合法迁移走审批就能重新绑,不把路堵死。
第三个点是异常调用的感知。盗用者就算解不开密文,也可能拿 License 接口乱试。我们加了每调用鉴权和告警,异常高频、异常来源的请求立刻告警,运维能实时看到有人在探,比事后审计有用。
未授权调用拦截率约 100%,解密开销约占单次推理 3%,密钥轮换约 5 分钟完成,合规审计一次通过。客户侧最在意的权重拷走也用不了真正落地了。我们复盘时客户提了个之前没想到的点:有了这层,他们才敢把模型部署到更多边缘节点,因为不怕节点被物理接触。(数据均为脱敏示意值)
安全侧把授权数据接进了审计。谁在哪个节点、用什么 License 调了模型,全链路留痕,合规检查从翻日志变成看看板。客户后来还把这套机制推广到另外几个私有化模型,形成统一的交付标准。我们也沉淀了私有化交付的安全检查项,新项目默认带权重加密,不再等客户提才做。
私有化部署最容易被忽略的是模型本身的防盗,大家都在防外部攻击,却没人管机房里那块磁盘,权重加密加硬件绑定,是把核心资产从谁都能拷变成拷走也用不了。解密只做一次进内存,性能红线才守得住。密钥和模型分离托管,锁和钥匙别挂一个钉子。我后来判断,私有化交付的安全边界得重新画,客户机房不是可信边界,模型落地那刻起,防盗就得算进交付清单。
我们后来把这层防盗从可选改成了私有化交付的默认项,因为踩过一次险,就不敢再赌客户机房绝对安全。还有个之前低估的点,是密钥轮换的演练,很多团队配了密钥绑定却从没真正演练过轮换,真到密钥可能泄露要换时手忙脚乱,我们把它也做成例行动作,每季度走一遍。安全这东西,配了不用等于没配,演练才是把能力变成肌肉记忆的过程。我们也接到过客户把模型往边缘设备挪的需求,那场景防盗更关键,设备更容易被物理接触,我们的硬件绑定从服务器 TPM 扩展到了设备指纹,逻辑一致只是绑定对象变了。回头看,私有化项目的安全清单比公会长得多,公长有平台兜底,私有化里每一道防线都得自己垒,权重加密是其中性价比最高的一道,因为它守的是最核心的资产。
我们也把这层能力做成了交付检查单的一项,新项目默认勾选,不再等客户提需求。安全投入最划算的时机是第一次交付而不是出事之后,这个道理我们交过学费才真正记住。后来客户反而因为我们主动提防盗,觉得我们比他们想得周全,信任反而更深了。