网关调用方字段级加密与敏感字段脱敏落地

日期:2026-08-28

一、项目背景

我们网关透传的调用里带着身份证号、手机号,明文落日志,也进下游系统,合规审计一查一个红。应用层做了脱敏,但网关这层是裸的,请求一进一出,敏感字段全程可见。我们进场时,安全团队最怕的不是攻击,是内部日志里躺着的明文手机号。

更棘手的,是字段来源杂。调用方有老系统直接拼 JSON,有新系统走结构化,敏感字段有的叫 id_card,有的叫 sfz,还有塞进备注里的。安全团队想统一脱敏,发现连字段在哪都数不清,更别说守住。

二、落地场景

我们让调用方对敏感字段做字段级加密再传,网关侧按策略识别并脱敏,下游拿到的已经是去标识的。密钥按字段粒度管理,不同字段不同密钥。脱敏策略动态配置,新增敏感字段不用改代码。所有脱敏动作留痕审计,谁在什么时间脱了什么,可追溯。

网关还接了字段字典,把各调用方五花八门的字段名映射到统一语义(sfz、id_card 都认作身份证)。脱敏策略按调用方维度可覆盖,A 系统要全掩,B 系统只掩中间,互不影响。安全团队能在看板上看每个调用方的脱敏覆盖率和明文泄露点,审计一键导出。

三、关键技术挑战与解决思路

字段识别是最大的坑。我们早期写死规则,只认身份证和手机号两个顶层字段,结果有调用方把身份证塞进嵌套 JSON 里,一处明文漏进日志,审计又红了。后来改深层字段扫描,递归遍历整棵 JSON 树,嵌套的也兜住。密钥粒度也不能粗,早期全站一把密钥,一旦泄露波及全部,我们拆成按字段独立密钥,轮换互不影响。脱敏策略动态化是关键,业务新增敏感字段,配一条规则生效,不用发版。

性能也不能忽视。字段级加密加深层扫描,请求路径多了一道,我们测下来额外开销控制在耗时约百分之三,靠缓存字段字典和批量加解密撑住。审计留痕如果每条都写,日志量爆炸,我们改成按调用方采样加异常全量,既可控又可追溯。

案例片段(已脱敏): 字段级加密与脱敏的核心规则:yaml field_encrypt:  transport: true  key_by_field: true mask:  scan: deep_recursive  field_dict: {id_card: [id_card, sfz], phone: [phone, mobile]}  rules:    - field: id_card      method: mask_middle    - field: phone      method: mask_tail audit:  log_every_mask: true  sample_normal: true上线后明文泄露点从十几处降到零,脱敏覆盖率达到百分之百,加解密额外开销控制在请求耗时的约百分之三,审计通过率从不合格变全绿。

四、效果数据

明文泄露点从十几处降到零,嵌套 JSON 里的身份证也不再裸奔。脱敏覆盖率达到百分之百,审计第一次全绿。加解密额外开销控制在请求耗时的约百分之三,性能几乎无感。策略动态配置后,业务新增敏感字段平均十分钟生效,不用等发版排期。字段字典上线后,各调用方五花八门的字段名终于统一认得了,安全团队不再为字段在哪发愁。安全团队终于敢把网关日志接进集中审计,不用再手动打码。

脱敏体系跑稳后,安全团队把审计从抽检改成全量可视。每个调用方的明文泄露点、脱敏覆盖率、密钥轮换状态,都在看板上,合规季度审查从翻日志变成看报表,半天能出结论。

业务侧也得了便利。新增敏感字段不再发版,配条规则十分钟生效,产品迭代快了。有一次监管临时要求对某类证件加掩,我们十分钟配好推全量,没耽误事。安全不再是业务的绊脚石,反而成了能快速响应的能力。

脱敏体系跑了一阵,我们复盘出一个反直觉的结论,越是严格脱敏,业务反而越敢上数据。以前因为怕泄露,很多含敏感字段的调用干脆不走网关、自己绕道,反而更不可控。现在网关脱敏既合规又省事,那些绕道的调用反而回流到网关,安全团队终于能看见全量流量,治理反而更彻底。

密钥按字段拆分后,轮换也成了日常。哪个字段的密钥疑似泄露,单独换不影响其他,不用全站停服。我们做了密钥年龄看板,超期的自动提醒负责人,再没人等到出事才想起来换。安全从救火变成例行,合规审查从惊吓变成走过场,这状态是团队盼了好久的。

脱敏策略我们还做成了可调的灰度。新上的字段先在小部分调用方试跑,观察有没有误拦正常业务,确认无误再全量。有一次某字段规则写得太狠,把正常订单号也改了,灰度阶段就发现并修正,没波及全站。灰度让安全变更有了缓冲,不会一上线就出事,这比事后救火划算得多。

五、可复用经验总结

网关脱敏不能只靠应用层,请求经过的每一跳都得有防护,我们当初漏了嵌套字段,一处明文就够审计红一片。字段识别要递归扫描,别信调用方会把敏感字段放顶层,实测嵌套是常态。密钥按字段拆,轮换和泄露影响面都小,一把密钥管全站是给自己埋雷。字段字典把混乱的字段名归一,是脱敏能规模化的前提。说到底,数据安全的底线不是不出事,是出事能追到每一处明文是怎么漏的,审计留痕这步省不得。