跳到主要内容

AI 隐私与机密保护

一家企业上线合同审阅助手。法务只想找出赔偿、续约和数据处理条款,员工为了省事,上传了整份合同与附件,其中包含联系人、身份证明、银行账户和未公开报价。请求经过外部模型 API,观测平台保存了完整 Prompt,点赞会话又进入后续微调。当客户请求删除资料时,团队只能删掉上传页面里的附件,无法说清日志、反馈集、Checkpoint 和模型供应商还有哪些副本。

本文的核心判断是:隐私风险由数据敏感度、派生物扩散范围和可撤销性共同决定。 同一份合同只在一次本地请求中短暂处理,与它同时进入外部 API、通用日志、反馈集和 Checkpoint,后续处置难度完全不同。

这个判断对应一条可验证的安全不变量:受限数据每次跨越应用、租户、供应商、日志、训练或接收者边界前,都必须有一个匹配当前目的、处理者、字段、期限和授权状态的数据使用对象;派生副本继承约束,直到有证据支持降级或删除。

这条不变量可以被接口记录、数据流事件、植入样本和删除演练反证。如果一条调试日志没有目的与到期时间,一个外部端点收到了策略未允许的字段,或删除请求到期后向量缓存仍能召回对应片段,系统就没有守住边界。

攻击者利用的是数据处理链

隐私与机密性在工程上共享同一条信息流。个人信息还涉及处理目的、数据主体权利和适用法律;商业秘密、源代码、凭证和未公开交易主要依据资源所有者、访问策略与合同边界。一份合同常同时包含两类数据,系统要执行更严格的交集条件。

本文覆盖四类攻击者能力:

  • 外部调用者可以在账号、限速和付费允许的范围内反复查询,尝试诱导模型输出罕见训练片段或推测某条记录是否参与训练。
  • 已授权使用者可以上传自己有权处理的文档,再利用系统组合错误、缓存键或 RAG 过滤缺失获取他人数据。
  • 运维人员与外部处理者依职责能接触日志、工单、备份或模型请求。风险包括越出目的的好奇查询、过宽管理权限和处理方配置变更。
  • 流水线攻击者可以控制反馈导出、训练任务或数据处理脚本,尝试把生产原文复制到更宽的训练、评测或调试环境。

攻击结果也不只是“逐字泄露原文”。成员推断关心某条记录是否在训练集中,属性推断关心能否从已知信息和模型相关性猜出未提供的敏感属性,精确提取则尝试恢复可识别记录或独特字符串。测试需要写明攻击者能观察的输出、查询预算、是否可以自适应调整问题,以及是否可见概率或 Embedding。

从一份多余附件到一次推断泄露

合同助手的完整风险链可以按下列步骤还原:

  1. 员工上传整份合同和身份、账户附件。上传端只检查文件类型,没有根据“找出特定条款”这一目的移除无关页面和字段。
  2. 应用将全文发送给外部模型 API。网关记录了模型和 Token 数量,没有记录这次跨处理者传输被哪个目的和供应商配置批准。
  3. 调用链追踪与异常堆栈保存了完整 Prompt,这份副本获得了更长留存和更广的运维查询权限。
  4. 一次点赞让该会话进入反馈导出。导出任务保留了原始字符串,将它复制到训练数据集和 Checkpoint。
  5. 少量罕见记录在训练中被模型记住。Carlini 等人的 USENIX Security 论文 展示了从语言模型中提取可识别训练序列的实验机制。这项研究证明风险可达,不提供本系统的发生概率。
  6. 外部调用者用一组自适应查询尝试诱导模型补全罕见字符串,或比较模型对候选记录的响应差异。Shokri 等人的成员推断研究 提供了利用模型输出判断记录是否参与训练的经典方法。不同模型、接口输出和攻击知识会带来不同效果。
  7. 客户请求删除后,原附件被删除,追踪日志、反馈导出、训练快照、Checkpoint 和供应商副本没有收到同一删除事件。团队无法支持“该数据已从 AI 链路消失”的结论。

这条链上没有一个单独的“模型漏洞”。过度收集、跨处理者传输、日志复制、反馈二次使用、训练记忆和删除失配连成了现实风险。完整控制也要沿同一条链安排。

参考架构在模型前后执行目的约束

下图中,模型只收到当前任务必需的内容。身份替换映射、目的策略、日志原文和删除控制都留在模型之外。

user / document / RAG source
|
v
+----------------------------+
| classify + purpose gateway |
+-------------+--------------+
|
v
+----------------------------+ +-------------+
| local parse / minimize / |<----->| token vault |
| redact / pseudonymize | +-------------+
+-------------+--------------+
|
v
+----------------------------+
| model router |
| local or approved provider |
+-------------+--------------+
|
v
context -> model -> output
|
v
recipient auth + DLP
|
v
approved user

telemetry -> metrics by default -> restricted evidence vault
feedback -> quarantine -> training purpose gate -> model release
deletion -> derivation graph -> stores / logs / index / provider / release

目的网关在入口生成数据使用对象,并按当前用户、任务、字段和处理者做策略决定。本地预处理只截取所需条款,用不含真实标识符的 Token 替换姓名、证件号和账户。Token 与原值的映射保存在受控 vault,模型提供商和普通日志无法访问。

模型路由器根据数据级别和处理目的选择本地模型或经批准的外部产品。输出仍携带输入的数据级别,在交给接收者前重新校验身份与用途,再用 DLP 规则和业务校验发现明显越界。DLP 是辅助检测层,数据路由和接收者授权才是强制点。

DataUseEnvelope 让每个副本携带约束

一条请求通常同时含有公开条款、个人标识符和商业秘密。只给整份文档标一个“敏感”标签,难以支持字段级最小化和不同接收者。可以为每个原始对象和派生对象保存如下最小信封:

data_use_id: "data-use:<policy-digest>"
data_id: "contract:<content-digest>"
classification: ["personal", "commercial-confidential"]
subject_refs: ["subject:<token>"]
business_owner: "team:legal"
purpose:
id: "contract-clause-review"
allowed_fields: ["liability_clause", "renewal_clause", "data_clause"]
expires_at: "<timestamp>"
processing:
allowed_processors: ["service:contract-app", "provider:<approved-product>"]
allowed_regions: ["<approved-region>"]
training_allowed: false
recipients:
users: ["role:assigned-legal-reviewer"]
external_domains: []
derivation:
parent_ids: []
transform_run: "minimize:<run-id>"
retention:
until: "<timestamp>"
deletion_workflow: "delete:contract-review-v1"
state: "active"

网关将 allowed_fields 与实际出站字段比较,将外部端点与 allowed_processorsallowed_regions 比较。反馈系统看到 training_allowed: false 时不得将原文提升为训练样本。删除控制器使用 parent_ids 向下查找片段、Embedding、日志证据、反馈和训练副本。

当数据进入一次模型运行时,网关把 DataUseEnvelope 中当前有效的分类、处理目的和接收者,与 KnowledgeArtifact 的来源和血缘、当前主体策略求交,投影成公共 Context EnvelopeDataUseEnvelope 继续承担跨运行的目的、留存和删除约束,Context Envelope 供本次检索、上下文组装与输出 PEP 执行;对象通过同一 data_id 关联,防止运行时标签脱离删除链路。

派生摘要、Embedding 和模型生成的结论默认继承父对象中最严格的分类、接收者和到期时间。如果一个聚合结果经证明已不能关联到受限主体或业务对象,授权人可以通过受审计的降级动作改变分类。“已向量化”、“已摘要”或“已去姓名”本身不构成降级证据。

NIST Privacy Framework 将数据处理活动、隐私风险和组织控制连接起来。DataUseEnvelope 是将这类管理要求下沉到请求、副本和派生边的一种工程形式,字段需要结合所在地、行业和组织规则调整。

输入最小化和接收者授权要先于推断

本地解析。 文档先在企业边界内完成页面选择、OCR、字段分类和条款截取。当任务只需五类条款时,身份附件、签名页和银行账户不进入模型请求。对仍需关联的实体使用任务范围 Token,解析结果返回后再由有权服务在本地恢复。假名化可以减少模型直接看到的标识符,独特职位、日期和交易组合仍可能重新识别个人或项目。

分级路由。 低敏任务可以使用经批准的外部模型,高敏原文可以改用受控环境、更严的企业产品配置或人工流程。网关固定允许的供应商产品、组织账号、区域和留存配置,阻止员工用个人账号绕开。供应商声明“不用于训练”时,团队保存当时的产品、配置和合同证据,并按变更事件重新审查。

检索授权。 RAG 在当前身份的可访问集合内检索,片段、重排结果、引用和缓存都保留原始租户与资源权限。模型输出后再做敏感词删除无法撤销模型已经收到越权片段的事实。来源、切片和索引完整性由AI 数据与知识安全展开,本文聚焦谁能读及读取结果可以去哪里。

日志与输出。 常规可观测性优先保存请求 ID、版本、Token 数、时延、策略决定和异常类型。确需原文排错时,系统将最小证据放入短期、加密、限权的证据库,不默认复制到通用 APM、工单和即时通讯。输出在交付前同时检查接收者权限和明显敏感模式;语义改写可以绕过规则,所以 DLP 不代替前面的最小化和授权。

训练、推断测试和删除需要同一张派生图

生产会话进入训练是一项新的处理活动。反馈管道先检查 training_allowed,然后按字段和样本最小化、去除稀有标识符、执行人工抽检,最后冻结为有版本的训练对象。用户点赞只表达对回答的评价,无法自动扩大原始数据的处理目的和接收者。

差分隐私训练会限制单条记录对模型的可观察影响。在常见的 DP-SGD 中,系统限制单样本梯度大小、加入随机噪声,并根据采样、训练步数和噪声记录隐私损失。Opacus 是 PyTorch 生态中实现差分隐私训练和隐私会计的开源库。使用时要连同实现版本、采样方式、剪裁范数、噪声参数、epsilondelta 和训练步数一起报告。epsilon 只能在明确假设和会计方法下解释,无法当作跨任务通用分数。

差分隐私会带来模型效用、训练时间和工程复杂度成本,且不保护未经差分隐私机制处理的实时 Prompt、RAG 片段、原始日志或工具输出。团队仍要用固定攻击者能力测试训练数据提取和成员推断,报告查询预算、阈值、真阳性与假阳性。实证测试只描述已测系统和攻击范围,不替代形式隐私会计。

删除请求从 DataUseEnvelope 的父对象出发,沿派生图处理原文、片段、Embedding、索引、缓存、日志证据、工单、反馈、评测、备份和供应商副本。恢复旧备份后,系统重放已生效的 tombstone。数据已进入训练时,删除源记录无法证明参数影响消失;处置方案可以是回退到不含该数据的发布、重新训练、使用经该场景验证的遗忘方法,或停止支持无法满足删除承诺的版本。

指标要同时量传输、泄露和删除

指标要说明数据类别、系统版本、测试集、攻击者访问方式和查询预算。测试使用合成标识符和经批准样本,不为了验证 DLP 而将真实秘密植入生产。DLP、提取和成员推断属于抽样估计,要报告原始计数与区间;删除闭合率若覆盖血缘图全量节点,属于确定性对账,任一高风险派生物逾期仍可召回就不能把删除流程标为完成。

指标分子 / 分母测试条件与用途
有效目的覆盖率关联有效 DataUseEnvelope 且处理者、字段、区域符合的跨域传输 / 网关、日志导出、反馈和训练网络观测到的全部跨域传输以独立网络和数据流事件作为分母,避免只统计已主动登记的请求
无关敏感字段移除召回率在模型出站前正确移除的植入无关敏感字段 / 测试文档中全部植入无关敏感字段同时报告必需字段被错删的比例和正常任务成功率
禁止字段暴露率出现在模型上下文、常规日志或未授权输出中的植入禁止字段 / 对这些 sink 执行的全部敏感字段探针分 sink 报告,发布门禁要求在固定探针中未观察到违规,不外推为所有输入下的零风险
DLP 泄露检出率被 DLP 拦截的已标注泄露输出 / 已标注泄露输出总数同时报告正常输出误拦率;包含格式变换、分词、编码和语义改写样本
提取成功率在预定正确性标准下恢复合成 canary 或经批准记录的攻击运行 / 固定查询预算下的全部攻击运行报告模型、解码参数、攻击知识和每次运行的查询数;与正常任务质量一起解读
成员推断优势在预先固定阈值下的真阳性率减假阳性率使用互不重叠的成员/非成员集,写明攻击者可见输出与预算;不用未平衡数据上的原始准确率制造优势
删除闭合率在承诺时限前已停用并经探针验证的已知派生物 / 删除时血缘图中的全部已知派生物分存储、索引、缓存、日志、供应商和发布报告;分母受血缘完整度限制,需同时报告未解析节点

隐私控制要公开失效边界和取舍

加密无法约束已经获权的处理。 传输和存储加密保护链路与介质,模型推断、供应商管理员、已授权日志查询和最终输出处理的是解密数据。密钥管理与目的、字段和接收者策略需要并行建设。

去姓名和向量化不自动等于匿名。 职位、日期、地点和交易组合可以重新指向某个人或项目;Embedding 也保留了为任务服务的信息。默认继承敏感级别会增加索引和聚合数据的管理成本,可以避免团队在没有证据时提前释放派生数据。

DLP 存在漏报与误报。 模型可以改写、翻译、分割或间接描述秘密,语义检测器也会拦住合法的法务文本。组织应该先缩小模型可见数据,再把 DLP 用作输出保险层,用漏报、误报和任务成功率共同决定阈值。

差分隐私保护的是定义范围内的训练机制。 它不会清理实时 Prompt、越权 RAG、日志副本和已发送给供应商的原文。更强的隐私参数通常会损失部分效用或增加训练成本,是否使用应以实际攻击面和任务质量测试决定。

本地部署与外部服务会交换不同风险。 本地环境减少数据发送给外部处理者的范围,同时引入 GPU 集群、权重、Checkpoint、内部管理员和备份的保护责任。外部企业服务可以减少运维负担,使用方对供应商内部处理的可验证性更低。路由决策要结合数据级别、任务价值和组织自身运维能力。

少记日志会降低调查能力。 全量保存 Prompt 会创造高价值敏感数据库,只保存哈希又可能无法还原泄露路径。通常的取舍是常规记录结构化事件和受控引用,只在明确调查目的下短期保存最小原文证据。

删除源文件不证明模型已遗忘。 索引和缓存可以通过探针直接验证,参数化影响很难精确归因和删除。当技术证据无法支持删除承诺时,团队要缩小训练数据范围、回退或重训受影响版本,并公开剩余不确定性。

个人信息的处理条件、权利响应和法律责任需要根据适用场景得出专业结论,站内可继续查阅个人信息保护法。本文的边界是目的、处理者、派生副本、训练推断与删除的工程证据;模型制品与 Checkpoint 的发布完整性见模型资产与 AI 供应链安全