第3章 金融敏感数据分类与分级:个人身份信息、交易记录、信用数据的分级标准归纳总结

做金融隐私接口,第一件事就是搞清楚你手里拿的是什么数据。

不夸张地说,我见过不少团队一上来就写接口、画架构,结果上线后被合规打回来重做——原因很简单:数据分级错了。你想想看,如果连「哪些是最高敏感级」都没搞明白,后面的加密、脱敏、权限控制全是白搭。今天我们就把这事彻底理清。

3.1 为什么需要分类分级?

金融数据不像一般业务数据。一笔交易记录里,可能同时包含张三的身份信息、他老婆的关联账户、以及他公司的信用评分。不加区分地统一加密,要么过度防护浪费性能,要么漏掉关键字段导致泄露。

我个人习惯,在项目启动前先拉一张 「数据资产清单」,把每个接口涉及的字段按敏感度标出来。这就好比去医院挂号,你得先分急诊还是普通门诊,对吧?

核心原则: 分类决定了「是什么」,分级决定了「怎么管」。两者缺一不可。

3.2 三大类金融敏感数据

金融场景里,数据大体可以归为三类:个人身份信息、交易记录 和 信用数据。下面我逐个拆开说。

3.2.1 个人身份信息(PII)

包括姓名、身份证号、手机号、家庭住址、生物特征(指纹/人脸)等。这类数据的特征是什么?——直接指向某个具体的人。

我在某银行做客户信息接口时,遇到过一个问题:他们把身份证号的「后四位」也视为低敏感字段,允许前端展示。后来被审计发现后连夜改了。嗯,这里要注意:只要剩下的部分能唯一锁定一个人,就不能算低敏感。

3.2.2 交易记录

包括转账流水、消费明细、余额变动、交易对手等。交易记录本身的敏感点在于:它能描绘出一个人的行为轨迹。你每天几点买菜、给谁转账、在哪个商户刷卡——全可以被还原。

我做支付风控接口时,发现交易记录里经常带冗余字段,比如商户的收单号、持卡人姓名,甚至明文银行卡号。这种事说白了就是开发没对齐数据字典,结果一个接口返回了不该返回的东西。

3.2.3 信用数据

包括征信报告、借贷记录、逾期情况、信用评分等。这类数据的特殊性在于:它直接影响一个人的金融权益。银行批不批贷款、给多少额度、利率高低——全看它。

信用数据一旦泄露,被冒名贷款、恶意修改记录,后果非常严重。我参与过的一个项目,曾因为信用查询接口的日志里打了明文身份证号,被监管罚款200万。所以,信用数据在我眼里是 最高优先级防护对象。

3.3 分级标准:L1~L4

大多数金融机构通用的分级体系是 四级分类,从L1(公开)到L4(极度敏感)。下面这张表帮你快速定位:

级别 描述 典型字段 防护要求
L1(公开) 可公开传播,无个人特征 银行名称、产品宣传语、行业报告 无特殊要求
L2(内部) 仅限内部使用,泄露影响较小 业务流水号、模糊化后的手机号(138****1234) 内网传输、访问控制
L3(敏感) 可用于识别个人,泄露导致中等风险 姓名+身份证后四位、完整交易记录 传输加密、脱敏展示、权限审批
L4(极度敏感) 一旦泄露,直接造成重大财产或声誉损失 完整身份证号、银行卡号、人脸图像、信用报告全文 加密存储、动态脱敏、审核日志、最小权限

这里有个容易踩的坑:拼接后的字段级别不是算术平均,而是取最高。比如接口返回「姓名+手机号完整」,那就直接上L4,别因为「手机号也算常见」就降级。我曾经因为这个问题跟合规吵了一架,最后数据安全法一翻,人家是对的。

3.4 分类与分级的映射关系

光有分类和分级还不够,你得知道:哪类数据通常会落在哪个级别。我整理了一个映射矩阵,实战中可以当参考用:

数据分类 典型字段示例 默认分级 备注
个人身份信息 身份证号、银行卡号、人脸照片 L4 部分脱敏后可降至L3(如「姓名+手机号后四位」)
个人身份信息 手机号、邮箱、家庭地址 L3 注意:地址如果精确到门牌号,应升级为L4
交易记录 交易时间、金额、商户名称 L3 不含对手信息的消费流水可考虑L2
交易记录 转账对手姓名、完整账号 L4 此类易引发资金关联分析,风险极高
信用数据 征信报告全文、违约记录 L4 不可明文外传
信用数据 信用评分(评分卡结果) L3 输出时需脱敏掉原始特征
避坑提醒: 我见过有人把「交易记录」统一打成L3,结果里头带了完整信用卡CVC码。记住,分级是针对字段的,不是针对整个接口的。同一个接口里不同字段可以有不同的级。

3.5 一个简易分类分级决策流程图

下面这张SVG图,把整个分类分级的决策路径串起来了。你写接口时对着走一遍,基本不会漏:

金融敏感数据分类分级决策流程图 金融敏感数据分类分级决策流程 数据字段 个人身份信息 交易记录 信用数据 是否含直接标识? (身份证号、人脸等) 是 L4 极度敏感 否 L3 敏感 是否含对手信息? (完整账号、姓名) 是 L4 极度敏感 否 L3 敏感 是否完整报告? (或含原始特征) 是 L4 极度敏感 否 L3 敏感 同一字段多条规则时,取最高等级 例:身份证号脱敏前L4,脱敏后L3 注:L1/L2 未在流程图中展开,通常为非敏感或内部数据
我的小习惯: 每次新建接口前,我会先把这个流程图的决策逻辑写成一段Python字典,做成「数据分级检查器」。把字段名和值丢进去,自动输出推荐等级。省了不少跟合规扯皮的功夫。你感兴趣的话,后面章节我会给一个示例代码。

3.6 实战中的几个注意点

  • 别只看数据本身,还要看上下文。一个手机号如果只是用来发验证码,可以算L2;但如果它作为用户登录凭证,泄露后能被撞库,那至少得L3。
  • 历史数据也要重新分级。我遇到一个坑:几年前存的用户交易明细字段只有几个,当时是L2。后来业务系统升级,那个字段里开始带银行卡尾号,但分级文档没更新——结果全量暴露了。所以,每次表结构变更,都应当触发一次分级审计。
  • 接口返回值里不要直接暴露分级标签。我见过有前端直接展示「L4 - 极度敏感」字样的……嗯,这等于告诉攻击者“快来抢我”对吧?
我曾经…… 在一个信用卡申请接口里,返回了内部的分级字段(叫 data_level),结果被合规抓了个典型。后来改成了只在后台日志记录。所以,分级信息只留在线下文档或后台配置,别往JSON里塞。

3.7 小结

金融敏感数据的分类分级,说白了就是「贴标签」——给每个数据字段贴上类别和等级,然后根据等级决定防护强度。个人身份信息、交易记录、信用数据这三类各有特点,分级时重点关注是否含直接标识、是否含对手信息、是否为完整报告。

我个人的经验是:宁可过度防护,也不要偷懒。金融场景下,一次分级错误可能带来千万级罚款和品牌灾难。把这张分类分级表打印出来贴在工位上,写接口时瞄一眼,比事后翻合规文档划算得多。