3. 隐私计算中的身份标识与去标识化

在隐私计算场景中,参与方往往既要确认“你是谁、有没有权限”,又要避免把真实身份暴露给其他参与方。身份标识与去标识化正是解决这一矛盾的基础设施:它决定了主体在系统内以什么名字出现、这个名字能否跨域使用、能否被验证、以及是否会被重新关联回真实身份。理解本地标识、全局标识、匿名凭证、假名机制以及标识映射与关联风险控制,是设计隐私计算身份权限体系的第一步。

一、四类标识的基本定位

本地标识(Local Identifier)是某个参与方在自己域内为主体分配的标识,例如某医院给患者分配的院内病历号 PID-2024-08731,或某企业给员工分配的工号。它只在本地命名空间内唯一,跨机构没有意义,也不应直接对外暴露。本地标识的优点是管理简单、与本地业务系统天然绑定;缺点是跨域协作时必须经过映射或转换。

全局标识(Global Identifier)是在多个参与方之间共享同一含义的标识,例如统一社会信用代码、手机号、身份证号,或由联盟共同维护的主体编号。它解决了跨域识别问题,但风险也最大:一旦全局标识与业务数据同时泄露,攻击者可以直接完成跨库关联。因此在隐私计算中,全局标识通常不直接参与计算,而是作为映射的锚点,或经过哈希、加盐、加密后再使用。

匿名凭证(Anonymous Credential)允许主体证明自己满足某个属性,而不暴露身份本身。例如用户可以向计算节点证明“我已通过实名认证且年龄大于18岁”,但节点不知道用户是谁。其典型实现基于盲签名、BBS+ 签名或零知识证明:颁发方对一组属性签名,持有者出示时只披露必要属性,甚至只披露“属性满足条件”的证明。匿名凭证适合“一次颁发、多次出示、最小披露”的场景。

假名机制(Pseudonym)是为主体在不同上下文分配不同别名,使同一主体在不同场景中不可直接关联。例如同一用户在医疗协作中使用 PSN-MED-7f3a,在金融风控中使用 PSN-FIN-91c2,两者之间没有可直接对应的字段。假名可以是随机生成并登记的,也可以由主标识通过带密钥的伪随机函数(PRF)派生,从而在需要时由授权方恢复关联。

二、标识映射与关联风险

跨域协作离不开标识映射:把 A 方的本地标识转换为 B 方能识别的标识。映射表本身是高风险资产,因为它直接建立了“谁是谁”的对应关系。常见风险包括:映射表泄露导致全量关联;映射粒度太粗导致同一假名被多处复用;映射日志被滥用导致行为轨迹被拼接;以及通过准标识符(如出生日期、邮编、就诊时间)进行统计式重识别。

控制关联风险的核心思路是“最小映射、最小披露、可审计”。具体做法包括:映射表加密存储并分权访问;映射只在必要时段内有效,过期即失效;使用带密钥的假名派生,使不同业务线得到不同假名;对输出结果做 k-匿名、差分隐私或泛化处理;记录映射查询日志并设置异常检测。

身份标识与去标识化:从本地标识到可验证假名 同一主体在不同域中以不同标识出现,映射与凭证控制关联边界 真实主体 自然人 / 机构 身份证号 · 统一信用代码 全局标识 跨域锚点 · 高关联风险 哈希/加盐后使用 本地标识 A 医院 PID-2024-08731 仅域内唯一 本地标识 B 银行 CIF-88201 仅域内唯一 标识映射服务 加密映射表 · 分权访问 查询日志 · 时效控制 假名派生 PRF(K, 主标识, 域) 不同域 → 不同假名 匿名凭证 盲签名 / BBS+ / ZKP 只证明属性,不暴露身份 隐私计算节点 MPC / TEE / FL 仅见假名与凭证 登记 分配 分配 查询 查询 锚定 派生 颁发 出示假名 出示凭证 关联风险控制 最小映射 · 时效失效 k-匿名 · 差分隐私 实线:标识流转与凭证出示路径 虚线:风险控制作用点

三、一个可操作的映射与假名派生示例

假设某医疗联合体有两家医院 A、B 和一个科研计算平台 C。A 院患者本地标识为 PID-A-08731,B 院为 PID-B-55210,联合体为同一患者分配全局标识 GID-9f2c。科研平台需要在不获取患者真实身份的前提下完成联合统计。

一种可落地的做法是:由联合体密钥管理中心持有主密钥 K,对每个业务域 d 计算假名 PSN = HMAC-SHA256(K, GID || d),再截取前 16 字节的十六进制作为对外假名。例如:

K        = 联合体主密钥(仅密钥中心持有)
GID      = GID-9f2c
域标识 d = "research-2024"

PSN = HMAC-SHA256(K, "GID-9f2c" || "research-2024")
    = 3a7f...c91d(截取前16字节)

A院映射:PID-A-08731 → PSN-3a7f...c91d
B院映射:PID-B-55210 → PSN-3a7f...c91d

这样,A、B 两院在科研平台中看到的是同一个假名,可以完成联合统计;但该假名与医疗域、金融域使用的假名不同,无法跨域拼接。若科研项目结束,密钥中心只需停止该域密钥的派生或销毁映射记录,假名即失效。

四、匿名凭证的出示与验证

匿名凭证解决的是“证明属性而不暴露身份”。以“已实名且年满18岁”为例,颁发方(如身份认证机构)对属性集合 {实名=是, 年龄≥18} 进行 BBS+ 签名,用户持有凭证。向计算节点出示时,用户生成零知识证明,节点验证签名有效且属性满足条件,但不知道用户姓名、身份证号或具体出生日期。

验证方需要关注三点:一是凭证是否由可信颁发方签发;二是凭证是否在有效期内、是否被撤销;三是出示的证明是否绑定当前会话,防止重放。常见做法是要求证明中包含随机挑战值 nonce,并由验证方一次性下发。

匿名凭证适合“属性门槛”类授权,例如“仅允许三甲医院且具备伦理批件的机构参与计算”。它不替代身份认证,而是把“身份认证”升级为“属性认证”。

五、关联风险控制的检查要点

在实际系统中,建议把以下检查点纳入身份权限治理流程:

  • 映射表是否加密且分权:映射表不应以明文存储,查询应经过审批或策略引擎,避免单点全量泄露。
  • 假名是否按域隔离:同一主体在不同业务域应得到不同假名,禁止跨域复用同一假名。
  • 全局标识是否最小暴露:全局标识只在映射服务内部使用,不进入计算节点和结果输出。
  • 输出是否做泛化或加噪:统计结果应满足 k-匿名或差分隐私预算,防止通过多次查询反推个体。
  • 映射日志是否可审计:记录谁在何时查询了哪条映射,设置异常频率告警。
  • 凭证是否可撤销:匿名凭证应支持撤销列表或短有效期,避免离职、过期主体继续通过验证。
需要特别注意:假名化不等于匿名化。如果假名派生密钥泄露,或映射表与业务数据同时泄露,攻击者仍可恢复关联。因此密钥管理与映射表保护必须与假名机制同等重要。

总结来看,本地标识负责域内管理,全局标识负责跨域锚定,假名机制负责隔离关联,匿名凭证负责最小披露,映射服务负责受控转换。五者配合,才能在隐私计算中既完成身份权限判断,又把关联风险控制在可接受范围内。