第4章 敏感数据类型全景:PII、PHI、金融信息、业务秘密的识别要点

做数据分类分级,第一步就是搞清楚:到底哪些数据算敏感?

很多人一上来就扔正则表达式,恨不得把所有字段都扫一遍。但说实话,识别规则的前提是理解业务场景。同一个字段,在不同上下文里,敏感等级可能差很远。

这一章我把敏感数据分成四大类——PII、PHI、金融信息、业务秘密。每类的识别要点、典型字段、合规压力,全给你摆清楚。

核心观点:没有万能规则。识别敏感数据必须结合“字段语义 + 业务上下文 + 法规属地”。

敏感数据类型全景结构图 敏感数据类型 PII 个人身份信息 PHI 健康医疗信息 金融信息 业务秘密 姓名+身份证 手机号/邮箱 生物特征/位置 病历/诊断 保险号 基因/试验数据 信用卡号 银行账户 交易记录 源代码/算法 客户名单 财务报表 识别要点:字段语义 + 上下文 + 法规属地 每类数据都有对应的行业法规 (GDPR/HIPAA/PCI DSS/商业秘密法) PII → GDPR/CCPA PHI → HIPAA 金融 → PCI DSS/SOX 业务秘密 → 反不正当竞争法

1. PII(个人身份信息)—— 最基础也最泛滥

PII 指能直接或间接识别到特定自然人的信息。说白了,姓名、身份证号、手机号、邮箱、住址、生物特征甚至设备指纹,都算。

我记得有一次帮一家电商做数据盘点,发现他们的订单表中存了完整的身份证号,而且居然没加密。我问负责人为什么存,他说“历史原因”……你想想看,一旦泄露,GDPR 罚款能干到全球营业额的 4%。

我的个人习惯:识别 PII 时不要只看字段名。字段名叫“user_remark”但里面存了身份证号的情况,我遇到过不下五次。一定要做内容采样分析。

  • 直接标识符:姓名 + 身份证号组合、护照号、社保号、驾照号
  • 间接标识符:出生日期 + 邮编 + 性别(组合可定位个人)
  • 准标识符:IP 地址、设备 ID、Cookie、位置轨迹

避坑指南:我曾经在数据湖里发现一个“匿名化”日志表,里面竟然有完整的手机号。原来开发把脱敏逻辑写成了 SELECT LEFT(phone,3) + '****' + RIGHT(phone,4),但实际存储的是明文。记住:脱敏必须在写入前完成,不能依赖下游处理。

2. PHI(受保护的健康信息)—— 医疗行业的红线

PHI 指与个人健康相关的信息。按 HIPAA 的定义,包括病历、诊断、治疗方案、检验报告、保险号、基因数据等。只要跟医疗服务沾边,就算。

我参与过一个医疗上云的项目,刚开始客户说“我们没有 PHI”。结果我扫了一遍数据库,发现 ETL 中间件里缓存了完整的患者就诊记录。嗯,那之后客户再也不敢说“没有”了。

PHI 常见类别 识别要点 典型字段示例
患者基本信息 姓名 + 医疗记录号 patient_name, mrn
诊断信息 ICD 代码 + 临床描述 diagnosis_code, clinical_notes
检验结果 实验室值 + 参考范围 lab_value, test_result
支付信息 保险计划 + 索赔号 insurance_id, claim_number
基因数据 DNA 序列 / 变异位点 gene_sequence, variant_call

识别 PHI 有个难点:很多字段本身不是 PHI,但只要跟医疗上下文结合,就变成了 PHI。比如一个字段叫“record_date”,在普通系统里只是时间戳;但在医疗系统里,它标识了患者就诊时间,配合其他字段就能定位到个人。

3. 金融信息—— 钱在哪,风险就在哪

金融信息包括信用卡号、银行账户、交易记录、证券信息、保险单等。PCI DSS 标准要求保护持卡人数据,SOX 法案关注财务报告准确性。

我的经验是:金融信息的识别不能只看卡号格式(比如 16 位数字)。我一个朋友的公司,数据库里存了完整的银行转账记录,业务说“只要不用来支付就不算敏感”。结果被审计找上门,因为任何可用于金融欺诈的信息都受监管。

  • 主账号 (PAN): 信用卡 / 借记卡号码,必须加密或截断
  • 敏感认证数据: CVV、PIN、磁条数据 — 不能存储
  • 交易元数据: 金额、时间、商户 ID、地理信息
  • 账户关联信息: 银行路由号、账户号、对账单

避坑指南:我曾经在日志文件中发现完整的信用卡号。原因是支付网关的回调日志里打印了 PAN。那之后我们立即加了一条规则:所有对外输出的字段,必须经过脱敏中间件。记住:日志就是敏感数据的重灾区。

4. 业务秘密—— 企业的命根子

业务秘密(商业机密)不太受固定格式限制。可能是源代码、算法模型、客户名单、定价策略、财务报表、专利文档。没有统一的正则表达式,只能靠上下文和文档分类。

我遇到过一次:客户把核心算法跑在云端 K8s 集群上,结果一个实习生不小心把环境变量打印到了 GitHub……代码不敏感,但环境变量里包含了数据库连接串和生产环境的模型权重路径。你想想看,这算不算业务秘密?当然算。

业务秘密类型 识别特征 常见存储位置
核心算法 / 模型 特定框架文件(.pkl/.h5/.pt),含商业价值 模型存储桶、Git LFS
客户清单 / 报价 包含联系人 + 合同金额 CRM、电子表格
源代码 关键模块、专利算法实现 私有 Git 仓库
财务预算 / 战略文档 包含“机密”标签或作者为高管 Wiki、SharePoint

识别业务秘密的关键是文档分类 + 访问权限。如果一个文档被标记为“内部机密”,或者只允许特定部门访问,那大概率是业务秘密。

注意:很多企业把业务秘密存在公有云对象存储上,但权限配置成“公开读”。我见过某公司直接把定价 Excel 放在一个公共链接里,任何人都能下载。所以识别业务秘密时,必须同时检查存储权限。

四大类敏感数据的识别对比

为了让你一眼看明白,我整理了一个对比表。这个表我会经常在项目交付时拿来跟客户对齐认知。

维度 PII PHI 金融信息 业务秘密
定义依据 能识别自然人 与健康相关 资金/支付 非公开商业价值
典型字段特征 名字、号码、地址 ICD 代码、实验室值 16 位数字、CVV 无固定格式
数据量级 极大(用户表) 中等(医疗记录) 中等(交易表) 较小(文档/代码)
主要法规 GDPR, CCPA, PIPL HIPAA, HITECH PCI DSS, SOX 商业秘密法, 竞业限制
识别难度 中(容易误报) 高(需要医学知识) 中(卡号可正则) 高(依赖人工分类)
常见泄露渠道 日志、API 响应 备份文件、数据库 支付回调、前端代码 Git、云存储