LLM 应用在处理用户输入时天然会接触敏感数据。一个客服机器人可能收到身份证号,一个文档分析工具可能读取财务报表。这些数据既要送给模型处理,又要满足 GDPR、个保法等法规要求,工程团队需要在产品设计阶段就建立完整的隐私保护机制。
数据分类与脱敏策略
首先要识别数据敏感度。可以按三个档位分类:公开数据(产品说明书)、业务数据(订单记录)、敏感数据(身份信息、健康记录)。敏感数据又分直接标识符(姓名、证件号)和准标识符(邮编+年龄组合)。
脱敏方式根据场景选择:
- 掩码:适合展示用途,将身份证号显示为
110***********1234,但无法还原 - 加密:可逆,适合需要完整数据但不能明文存储的场景,用 AES-256 等算法加密后存储,密钥独立管理
- 标记化:用随机 token 替换敏感字段,原始值存入独立的 vault,LLM 只处理 token,这样即使 prompt 泄露也无法反推真实数据
- 泛化:将「1990-03-15」改为「1990 年代」,降低精度但保留统计价值
假设一个 HR 助手需要分析简历,可以在发送给 LLM 前将姓名替换为 CANDIDATE_A,手机号替换为 PHONE_TOKEN_xyz,只把工作经历和技能描述原文传递。
数据流向控制
明确数据在系统中的流动路径,每个环节都要有防护:
用户输入层:在 API 网关或前置中间件做正则检测,拦截明显的敏感模式(如连续 18 位数字、邮箱格式)。检测到后可以选择直接拒绝、提示用户修改,或自动脱敏后继续。
LLM 调用层:区分本地部署模型和云端 API。云端 API 要检查服务商的数据处理协议(DPA),确认是否承诺不用客户数据训练模型、数据存储位置、保留期限。旗舰档模型通常提供企业协议,轻量档可能条款宽松,需要仔细评估。
存储层:prompt 和 completion 如果需要存储(用于调试或审计),应加密存储,并设置自动删除策略。假设一个对话系统需要保留 90 天日志用于纠纷处理,可以在数据库层设置 TTL,到期自动清除。
第三方集成:如果 LLM 应用调用外部 API(天气查询、数据库检索),要审查这些服务的隐私政策,避免敏感数据泄露到不受控的第三方。
访问控制与最小权限
实施基于角色的访问控制(RBAC)。运维人员可能需要查看日志排查问题,但不应该看到原始用户输入;数据分析师可能需要统计 token 用量,但不需要读取具体对话内容。
具体措施:
- 生产环境的敏感数据访问需要审批流程,操作记录到审计日志
- 开发和测试环境使用脱敏或合成数据,禁止直接复制生产数据
- 数据导出功能加水印或限制次数,防止批量泄露
- API 密钥按服务粒度分配,避免一个密钥拥有所有权限
审计日志设计
审计日志要回答三个问题:谁、何时、做了什么。关键字段包括:
- 用户标识(脱敏后的 ID)
- 时间戳(精确到秒,带时区)
- 操作类型(创建对话、调用模型、导出数据)
- 资源标识(对话 ID、文件 ID)
- 结果(成功/失败、错误码)
- 来源 IP 和 User-Agent
日志本身也要保护,存储到独立系统(如 SIEM),设置只追加权限,防止事后篡改。保留期限通常不少于 6 个月,金融等高合规行业可能要求 3-5 年。
假设发现异常访问(如某账号在凌晨批量查询客户数据),审计日志能快速定位时间范围、操作序列和影响范围。
用户权利响应机制
GDPR 和个保法赋予用户数据权利,系统需要技术支撑:
- 访问权:用户请求查看自己的数据,需要能快速检索并导出
- 删除权:彻底删除用户数据,包括备份和日志中的记录,或至少做到匿名化
- 更正权:允许用户修改错误信息
- 可携带权:以结构化格式(如 JSON)导出数据
这些功能在架构设计时就要考虑,事后补救成本高昂。例如用统一的用户 ID 索引所有数据,删除时能一次性清理干净。
定期合规审查
隐私保护不是一次性工程,需要持续维护:
- 每季度检查数据分类是否准确,新功能是否引入新的敏感数据
- 每半年审查第三方服务的隐私政策变更
- 模拟数据泄露演练,测试响应流程
- 记录所有合规决策的依据,形成文档
如果你的团队正在构建 LLM 应用,需要在隐私合规、数据安全架构方面获得专业建议,欢迎联系 Taylent Labs,我们帮助工程团队在合规框架内高效落地 AI 能力。