第4章 敏感数据类型全景:PII、PHI、金融信息、业务秘密的识别要点
做数据分类分级,第一步就是搞清楚:到底哪些数据算敏感?
很多人一上来就扔正则表达式,恨不得把所有字段都扫一遍。但说实话,识别规则的前提是理解业务场景。同一个字段,在不同上下文里,敏感等级可能差很远。
这一章我把敏感数据分成四大类——PII、PHI、金融信息、业务秘密。每类的识别要点、典型字段、合规压力,全给你摆清楚。
核心观点:没有万能规则。识别敏感数据必须结合“字段语义 + 业务上下文 + 法规属地”。
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、云存储 |