跳到主要内容

提示层中的个人信息:大多数团队忽视的隐私工程缺口

· 阅读需 13 分钟
Tian Pan
Software Engineer

你的组织有一份隐私政策。它用合理的措辞描述了用户数据的谨慎处理、保留限制以及对 GDPR 和 HIPAA 的合规。但它几乎肯定没有说明:在任何策略控制生效之前,用户的姓名、电子邮件地址或病史是否以明文形式传输给了托管的 LLM API。

这个缺口——你能指出的隐私政策与你实际能证明的隐私保证之间的距离——正是大多数生产 LLM 系统悄然失守的地方。研究显示,提交给 ChatGPT 和 Copilot 等工具的提示词中,约有 8.5% 包含敏感信息,包括 PII、凭据和内部文件引用。在企业环境中,用户将邮件、客户数据和支持工单粘贴到 AI 辅助工作流程中,这一比例几乎肯定更高。

问题不在于开发者粗心大意。而在于 LLM 提示层从未被设计为数据处理边界。它从上游系统——用户输入、RAG 检索、智能体上下文——继承内容,却不执行治理整个技术栈其他部分的数据分类规则。

PII 如何在无人察觉的情况下到达模型

在传统的数据架构中,敏感数据流经可识别的存储和计算系统。你可以审计数据库、API、日志聚合器。添加新的数据处理步骤意味着更新数据流图和 DPA。

LLM 提示以几种特定的方式打破了这一模型。

用户输入是最明显的入口,但绝不是唯一的入口。 当员工将一张支持工单粘贴到聊天界面时,其中的电子邮件地址和账号直接进入推理调用。当聊天功能上线时,没有人将其标记为数据处理活动,因为"用户在聊天框里输入内容"并不像一个数据工程问题。

RAG 检索管道是无声的放大器。 当你将检索到的文档作为上下文注入提示时,你也注入了这些文档包含的任何 PII。分块文档存储通常具有不一致的元数据;来自医疗记录的分块可能携带患者姓名,来自 CRM 导出的分块可能携带客户联系信息。在检索时,这些文本未经进一步检查就流入提示。

多轮智能体工作流在对话轮次中累积暴露风险。 每次工具调用结果、浏览器抓取或 API 响应被追加到对话上下文时,都是另一个未脱敏 PII 进入模型输入的途径。在复杂的智能体会话的第五轮,上下文窗口可能包含来自六个来源的 PII,而这些来源中没有一个单独看起来是重要的。

在 GDPR 下,托管的 LLM API 是外部数据处理者。 向 OpenAI 或 Anthropic 的 API 发送请求是向第三方处理者的跨境数据传输。这需要一份包含标准合同条款的数据处理协议。大多数在过去两年部署了 LLM 功能的组织没有验证此协议是否存在,以及是否涵盖他们发送的特定数据类型。许多人认为勾选企业版复选框就满足了要求。

审计中会暴露的三个合规缺口

2025 年,隐私审计员审查 LLM 系统时,不再问"你有政策吗?"而是要求提供政策在真实条件下得到执行的证据。三个缺口会可靠地出现:

缺口一:没有脱敏记录。 政策说 PII 在模型处理前已脱敏。系统说脱敏已发生。但没有时间戳的日志条目记录在特定提示中检测到哪些实体、采取了什么行动以及置信度级别。没有这条记录,"我们脱敏 PII"只是断言,不是经过验证的控制措施。

缺口二:没有跨完整数据谱系的删除证明。 当用户提交数据主体访问请求(DSAR)并要求删除时,应用数据库会被清理。LLM 提供商的 API 日志可能会或不会根据协议清除。持有该用户文档嵌入的向量存储几乎肯定不会。接收 Datadog 转发的提示追踪的日志聚合器可能也不会。删除不是单一操作;它是跨每个接触推理调用的系统的工作流。

缺口三:没有证明日志遵守敏感边界。 提示可观测性在操作上是必不可少的。工程师需要追踪来调试模型行为。但如果这些追踪包含完整的提示文本,它们就会将原始 PII 复制到访问权限比应用程序本身更广泛的监控系统中。一旦原始提示出现在 Datadog 中,每个拥有可观测性权限的工程师都可以访问——这个群体可能比应用程序的数据管理员大得多。

根据 2025 年的合规调查,近 60% 的组织在没有正式 LLM 审计控制的情况下部署生成式 AI 功能。来自 GDPR(全球营收的 4%)和 HIPAA(每年每种违规类型最高 150 万美元)的罚款风险使这成为一个不对称的赌注。

真正将 PII 与推理解耦的脱敏架构

核心模式是一个预处理管道,在内容到达模型之前对其进行转换。有四种脱敏策略,各有不同的实用性权衡:

编辑完全删除敏感实体,并用 [REDACTED] 等占位符替换。实现最简单,完全保护隐私,但会破坏任何需要对被删除内容进行推理的任务。适用于对模型没有语义价值的 PII——身份证号码、凭据、金融账户字符串。

令牌化将每个实体替换为稳定的、保留格式的令牌。电子邮件地址变成 EMAIL_001。人名变成 PERSON_001。同一实体在整个会话中获得相同的令牌,因此模型可以推理"第一条消息中提到的 PERSON_001 与第三条消息中引用的是同一个人",而不会看到实际姓名。关键是,你维护一个可逆映射,让你能够在输出中恢复原始值。

合成替换用上下文合理但完全虚构的值替换检测到的 PII——"Jane Smith"变成"Michael Johnson",真实电话号码变成有效但虚假的电话号码。模型接收看起来真实的数据,这保留了它自然推理姓名、联系方式和结构化实体的能力。不需要可逆映射;原始数据单独保留在应用层,并合并回响应中。

加密适用于下游系统需要对受保护的值执行精确匹配查找或交叉引用操作的情况。保留格式的加密产生在结构上与原始值相似的密文,使得数据库连接和一致性检查在不暴露明文的情况下成为可能。

在实践中,生产系统会组合使用这些方法。凭据和金融数据被编辑。姓名和联系方式使用会话范围的映射进行令牌化。模型需要自然推理的结构化实体进行合成替换。选择取决于任务实际需要的语义属性。

无持久 PII 存储的可逆令牌化

更棘手的实现挑战是可逆映射。如果你将"Jane Smith"令牌化为"PERSON_001"用于 LLM 调用,你需要在响应到达用户之前将"Jane Smith"恢复——但你不能将该映射存储在比必要时间更长的日志中。

干净的模式是具有有界生命周期的会话范围内存令牌化:

  1. 在会话或请求开始时,创建一个以会话 ID 为键的临时映射。
  2. 在发送给 LLM 之前,对完整提示(输入+检索上下文)应用令牌化。
  3. 在将模型响应返回给用户之前,对其应用去匿名化。
  4. 会话结束时使映射过期;永远不要将其持久化到持久存储。

这意味着你的日志、向量存储和任何下游管道只看到令牌。原始 PII 从不进入存储系统。权衡是跨会话引用一致性会断裂——会话 A 中的 PERSON_001 与会话 B 中的 PERSON_001 不同。对于大多数应用程序这是可以接受的;对于需要纵向用户跟踪的应用程序,合成数据生成(在受控访问存储中单独存储原始身份映射)是更好的方法。

对于 RAG 管道,脱敏应该在摄取时发生,而不是检索时。文档应该在 PII 被剥离或令牌化的情况下建立索引,以确保检索的分块在进入提示组装时不携带原始敏感内容。如果你事后意识到向量存储中有原始 PII,重建索引的代价很高。

不创建 PII 数据湖的日志记录

提示可观测性是真实的需求。合规日志记录的路径是允许列表方法而不是拒绝列表方法:决定日志条目允许包含哪些字段,在写入存储之前剥离其他所有内容。

合规的 LLM 日志条目包含:

  • 请求 ID 和会话标识符(假名,而非明文用户 ID)
  • 时间戳
  • 令牌计数(输入、输出、缓存命中)
  • 模型版本和端点
  • PII 检测事件摘要:检测到的实体类型、置信度分数、采取的行动
  • 延迟指标
  • 文档或分块引用(ID,而非内容)

合规的 LLM 日志条目不包含:

  • 完整的提示文本
  • 完整的响应文本
  • 明文形式的用户身份
  • 任何检索到的文档内容

如果你需要完整的提示追踪用于调试,实施双通道架构。标准日志路径遵循上述允许列表,所有工程师都可以访问。紧急追踪路径捕获完整的提示和响应内容,但需要每次事件的明确批准,记录请求者的身份和理由,并在 48 小时后自动过期。这在不将 PII-in-logs 正常化为操作模式的情况下维护了调试能力。

集中执行,而非按应用程序执行

LLM 隐私控制最弱的实现是按应用程序的。每个团队构建自己的 PII 扫描器,应用自己的脱敏逻辑,维护自己的日志策略。快速交付的团队会走捷径。六个月前构建功能的团队会有陈旧的检测模式。

2025 年的最佳实践是将 PII 净化推到 API 网关层。一个集中的 AI 网关坐在你的应用程序和 LLM 提供商 API 之间,对每个请求和响应应用检测和脱敏,并执行一致的日志策略,无论是哪个应用程序发出的调用。应用程序获得一个合规的接口,而不需要自己承担合规实现。

Microsoft Presidio 等工具覆盖检测和匿名化层,具有 50 多个内置实体识别器,支持 12 种以上语言,可插拔的自定义识别器,以及同步和批处理模式。对于网关级别的执行,Kong AI Gateway 3.10 引入了一个 PII Sanitizer 插件,集中处理检测、脱敏和可选的响应去匿名化——这意味着 LLM 永远不会处理原始 PII,用户仍然收到原始值已恢复的自然响应。

对于 HIPAA Safe Harbor 去标识化标准适用的医疗应用程序,John Snow Labs 和 Amazon Comprehend Medical 生态系统中的专业工具提供 HIPAA 要求的 18 个标识符删除,以及审计员会要求的专家确定文档。

什么证明合规,什么只是声称合规

"我们符合 GDPR"和"我们能证明我们的 LLM 系统符合 GDPR"之间的差异归结于证据,而非断言:

  • 脱敏报告:对于任何给定的推理调用,有一条日志条目记录检测到哪些实体类型、采取了什么行动以及置信度阈值是多少。带时间戳、不可篡改、绑定到请求 ID。
  • 数据流清单:接收提示内容的每个系统的列表——LLM 提供商 API、向量存储、日志聚合器、分析管道——以及每个系统记录的数据传输机制(DPA、SCC、BAA)。
  • 删除收据:当用户行使删除权时,有一条记录显示哪些数据存储被清除、何时清除以及删除了哪些对象。这必须涵盖向量嵌入,而不仅仅是应用数据库。
  • 访问审计追踪:对于任何访问敏感日志或紧急追踪的情况,谁访问了什么、何时访问以及有什么记录在案的理由。
  • 保留执行证明:日志保留策略自动执行的证据(基于 TTL 的删除,而非季度手动流程)。

这些是系统在正常运行期间产生的操作证据。它们无法事后补填。如果你今天正在构建 LLM 功能,却没有生成这些证据的仪表化,那么你正在制造的合规缺口将在以后付出高昂代价来弥补。

在推理调用中实现零未脱敏 PII

对大多数团队来说,实际路径是渐进式的。从最高敏感度路由上的网关级检测开始——客户数据、医疗上下文、任何涉及凭据的内容。这在尝试将其应用于所有地方之前建立了脱敏基础设施。

然后处理 RAG 管道:在剥离 PII 的情况下重新建立索引,在文档摄取步骤添加脱敏,并验证检索的分块在进入提示组装之前是干净的。这通常是生产系统中不受控制 PII 的最大来源,因为它在 UI 层是不可见的。

然后修订日志配置。对所有 LLM 相关日志事件实施允许列表方法。为调试需求建立紧急追踪路径。

你正在构建的合规态势不是"我们有控制措施"。而是"这是你问的推理调用的脱敏报告,这是该用户数据的删除收据,这是每次人类查看敏感追踪的访问审计追踪。"这是审计员会要求的。这是你的法律团队在 DSAR 到来时需要的。构建能够产生这些证据的仪表化是实际的工程工作。政策文件只是对系统应该做什么的描述。

References:Let's stay in touch and Follow me for more thoughts and updates