跳到主要内容

敏感信息发送

本文档给出面向工单与客服模块的“敏感信息发送与存储”设计方案,结合业内最佳实践,覆盖加密通道、字段级保护、访问控制、审计合规与落地路径。

适用范围与对象

  • 场景:工单系统、在线客服(人工/机器人)、渠道接入(网页、小程序、App、第三方平台)。
  • 敏感数据(示例清单):
    • 认证类:密码(绝不明文传输/存储)、一次性口令(OTP)、重置令牌。
    • 个人标识:身份证号、护照号、银行卡号、CVV、手机号、邮箱、住址、出生日期等。
    • 账号与交易:账户号、订单号、支付凭证/截图、对账文件。
    • 会话内容:聊天文本中被识别为敏感的片段(正则/字典/ML)。
    • 附件:图片/文档/PDF/录音,可能包含证照/卡面等。

设计原则

  • 最小化:仅收集为完成业务所必需的数据;默认不收集密码,采用重置/授权替代。
  • 默认加密:传输全链路加密;存储“磁盘加密 + 字段级加密/代币化”。
  • 端到端优先:对极高敏感度字段(如身份证/卡号)倾向消息/字段级端到端加密,服务端仅处理密文与授权。
  • 零信任:内外网一视同仁,mTLS/细粒度授权/最小权限访问。
  • 可审计与可证明合规:不可篡改审计、留存/删除策略可验证。

威胁模型(概要)

  • 传输劫持与中间人(MitM);跨域脚本与注入;端侧木马与键盘记录。
  • 服务器侧越权访问;内部人滥用;日志或备份泄露。
  • 密钥泄露;云存储误配置;第三方集成数据外泄。

总体架构

  1. 客户端(Web/App/小程序/SDK)
  2. 接入网关(WAF/CDN/HSTS/HTTP/2+TLS 1.3)
  3. 敏感信息网关(Sensitive Gateway,职责:字段识别/脱敏、JWE 加解密、KMS 包封/解封、一次性查看令牌)
  4. 业务服务(工单/客服):仅处理最小化明文字段与密文占位符
  5. KMS/HSM:密钥管理、Envelope Encryption(DEK/KEK)
  6. 存储:数据库(字段级加密/代币化)、对象存储(客户端加密或 SSE-KMS)
  7. 审计与监控:集中日志、WORM/对象锁、SIEM、DLP、异常检测

传输安全(加密通道)

  • 外部:TLS 1.3(强制 HSTS、禁用弱套件、OCSP Stapling),CDN/WAF 前置。
  • 内部:服务间 mTLS(SPIFFE/SPIRE 或服务网格),短期证书与自动轮换。
  • 内容级加密(建议用于高敏字段):
    • JWE(RSA-OAEP/AES-GCM)或 age/ECIES,采用“客户端生成随机 DEK + 服务端使用 KMS 包封”的 Envelope 模式。
    • 会话级临时公钥分发与轮换;支持前向保密(PFS)。
  • 浏览器安全:CSP、SRI、SameSite Cookie、严格的 Referer-Policy;表单使用安全输入控件,避免第三方脚本接触密文前的数据。

存储安全

  • 磁盘/卷加密:数据库与对象存储启用加密(AES-256)。
  • 字段级加密:
    • 客户端或敏感网关侧加密,数据库仅存密文;密钥由 KMS/HSM 管理。
    • 可搜索需求通过“不可逆索引”满足:如 HMAC-SHA-256(规范化字段, IndexKey) 的前缀/模糊匹配替代,避免明文索引。
  • 代币化(Tokenization):
    • 将身份证/卡号替换为 Token;需要明文时通过受控解密流程(理由/审批/一次性查看)。
  • 密码策略:
    • 密码不通过客服通道传输;统一走“重置链接/一次性口令(OTP)”。
    • 存储使用 Argon2id(或 bcrypt 高 cost)、长随机 Salt、Pepper 存于 KMS。
  • 附件:
    • 客户端加密(AES-GCM)后分片上传,对象存储使用 SSE-KMS 作为二次防线;元数据最小化。

密钥管理(KMS/HSM)

  • Envelope Encryption:每条记录/每个附件生成随机 DEK,由 KEK(KMS/HSM 管理)包封;密文与包封的 DEK 一并存储。
  • 轮换策略:
    • KEK 定期轮换(季度/半年),DEK 可按对象/批次天然独立;提供批量重包封作业。
    • 双人审批、分权管理、密钥用途分离(加密/签名)。
  • 密钥撤销与退场:留痕记录、影响面评估、紧急切换流程演练。

访问控制与最小化展示

  • 授权模型:组合 RBAC/ABAC(角色 + 业务属性 + 风险等级 + 工单所有权)。
  • 默认脱敏:
    • 身份证/卡号默认显示为“前后各若干位 + 中间掩码”;查看明文需说明理由与工单上下文,记录审计事件。
    • 支持“一次性查看/限时查看/水印/屏幕标识”,超时自动隐藏。
  • 敏感操作保护:
    • 强制二次验证(MFA/U2F)与会话重新确认。
    • 会话隔离与最小窗口可视范围;下载需授权与追踪。

审计、监控与 DLP

  • 不可篡改审计:
    • 审计日志写入 WORM/对象锁(S3 Object Lock/GCS Retention),保留期依合规设定。
    • 关键事件:查看明文、导出、解密失败、密钥操作、权限变更、异常频次访问。
  • 监控与告警:
    • 与 SIEM 对接,基于用户/工单/字段级指标做异常检测(爆发式查看、越权路径、深夜访问)。
  • DLP:
    • 入站与出站内容做规则/ML 检测,自动打码或阻断,支持“安全收集卡片”替代自由文本。

客户端与 SDK 要点

  • Web:CSP、SRI、子资源隔离;敏感输入在安全组件内完成本地加密后再传输;避免第三方脚本接触明文。
  • iOS/Android:证书绑定(Pinning)、Keychain/Keystore 存储密钥材料、Biometric 解锁敏感视图;前/后台切换时自动遮挡。
  • 上传:分片 + 重试 + 完整性校验(chunk HMAC/整体 MAC);失败分片不可恢复到明文。
  • UI 交互:默认掩码、点击揭示需二次确认与理由输入,限制复制/自动过期。

工单/客服模块落地

  • 工单字段模型:
    • customer_name(脱敏可见)、id_number(密文+Token)、card_no(密文+Token)、phone/email(密文可联络或以网关服务代拨/代发)、attachments(客户端加密对象引用)、notes(分段脱敏)。
  • 客服收集流程:
    • 使用“安全表单/安全卡片”引导用户填写所需字段;前端本地加密+一次性提交链接;表单到期自动失效。
    • 在聊天窗口中自动 DLP 识别并提示改用安全表单,防止明文发送。
  • 附件:
    • 仅显示缩略图(经网关临时解密 + 透传图像代理,添加水印/防盗链),原件需一次性查看令牌。
  • 机器人与 LLM:
    • 默认对敏感片段做脱敏/替代占位符;模型提示加入 no-train 与 PII redaction;对外部模型仅发送最小化上下文。

API 契约(示例)

创建敏感消息

POST /api/secure-messages

请求体(字段级加密 + Envelope 示例,ciphertext 为 AES-GCM 密文,dek_wrapped 为 KMS 包封 DEK):

{
"channel": "ticket|im",
"ticket_id": "T2025xxxx",
"payload": {
"id_number": {
"alg": "A256GCM",
"ciphertext": "Base64(GCM(cipher))",
"iv": "Base64(iv)",
"tag": "Base64(tag)",
"dek_wrapped": "Base64(KMS.wrap(DEK))",
"kid": "kms-key-id"
},
"phone": { "...": "同上" },
"notes": "已脱敏的普通文本"
},
"client_meta": { "sdk": "web@1.2.3", "fp": "device-fp" }
}

响应:201 Created,返回消息 id 与可选 token_id(一次性查看)。

一次性查看敏感字段

GET /api/secure-messages/{id}/fields/{field}?one_time_token=...

  • 验证权限、理由与时效,审计后返回短生命周期明文或前端可解密密文。

附件上传(客户端加密分片)

  1. POST /api/secure-attachments/init → 返回 upload_id 与分片策略

  2. PUT /api/secure-attachments/{upload_id}/{part_no} → 上传加密分片

  3. POST /api/secure-attachments/complete → 校验分片 HMAC/总体 MAC,落库密文与 dek_wrapped

数据生命周期与留存/删除

  • 收集:DLP 拦截与安全表单替代;强隐私提示与同意记录。
  • 留存:按字段/工单类型设置 TTL;达期自动密文销毁(含密钥引用);涉法保全进入“保全策略”。
  • 删除:用户权利请求(GDPR/PIPL)触发定位 Token → 解密/删除/无法还原证明;备份/日志链路联动清理或超期失效。

合规与地区要求

  • GDPR/CCPA、PIPL、ISO 27001、SOC 2;支付相关参考 PCI DSS;国内等保测评要求。
  • 数据跨境与数据主权:数据域隔离与就地处理;跨境通过脱敏/匿名化或经批准的传输机制。

测试、演练与验收

  • 单元/集成:加解密正确性、Token 唯一性与不可逆索引一致性、失败与重试语义。
  • 安全测试:渗透/红队、依赖漏洞扫描、密钥轮换/撤销演练、数据泄露桌面推演。
  • 恢复演练:KMS 不可用/密钥吊销/对象存储故障下的降级策略与 RTO/RPO。

性能与可用性

  • 加解密开销:对热路径采用批量与异步;大附件走流式与分片并行;合理的连接复用与 HTTP/2。
  • 高可用:网关/敏感服务与 KMS 多可用区部署,读写分离与幂等回放。

实施路线(建议)

  1. 第 1 阶段(2-4 周):安全表单 + DLP 拦截、TLS 强化、密码改走重置/OTP 流程;附件客户端加密 MVP。
  2. 第 2 阶段(4-6 周):字段级加密/Token 化落地到身份证/卡号/手机号,审计不可篡改、一次性查看上线。
  3. 第 3 阶段(4-8 周):mTLS 内网全覆盖、KEK 轮换/密钥治理、跨域数据驻留与区域化部署。
  4. 第 4 阶段(持续):LLM 脱敏网关、异常检测、指标运营化与持续合规。

关键指标(KPI)

  • 明文敏感数据在传输/存储中的暴露率:= 0。
  • 一次性查看申请→批准→查看的审计闭环达成率:> 99%。
  • 密钥轮换达成度与时效;DLP 拦截命中率与误报率。
  • 事件响应:发现→遏制→通报的时延;审计链完整性验证频率。

附:字段级加密典型流程

  1. 客户端为每字段生成随机 DEK(AES-256-GCM),就地加密 → 得到 ciphertext/iv/tag

  2. 使用服务端公布的 KMS 公钥(或经网关接口)对 DEK 包封(dek_wrapped)。

  3. 发送至敏感网关 → 校验/审计 → 入库密文与包封 DEK;业务侧仅见 Token/占位符。

  4. 授权查看时:

    • 触发一次性查看流程(理由+审批+MFA)→ 解封 DEK → 解密 → 短时返回或前端解密。
    • 审计事件写入不可篡改日志,含上下文与水印标识。

附:审计事件枚举(示例)

  • SENSITIVE_VIEW_REQUESTED/APPROVED/DENIED/EXPIRED
  • SENSITIVE_VIEWED_ONETIME/REDACTED
  • KEY_ENVELOPE/UNWRAP/ROTATE/REVOKE
  • DLP_MATCH/BLOCK/REPLACE
  • ATTACHMENT_UPLOAD_INIT/PART/COMPLETE/ABORT
  • PRIVILEGE_ESCALATION/ROLE_CHANGE

附:安全配置清单(最小集合)

  • TLS 1.3 + HSTS;内网 mTLS;CSP+SRI;SameSite=Strict;Referrer-Policy=no-referrer。
  • KMS/HSM;Envelope;双人审批;按季度 KEK 轮换;WORM 审计与对象锁。
  • Argon2id 密码哈希;Tokenization;客户端附件加密;不可逆索引(HMAC-SHA-256)。
  • 默认脱敏展示;一次性查看;MFA;审批与理由强制;水印与时效。
  • DLP 入/出站;SIEM 告警;异常检测;留存/删除与跨域合规。

这页文档对您有帮助吗?