Presidio遗漏220余种GDPR实体:欧盟覆盖缺口
2026年更新版
微软Presidio默认附带约40个实体识别器。对于美国部署场景,这基本够用——涵盖社会安全号码(SSN)、美国护照、驾照、信用卡和电子邮件。
对于欧盟部署场景,缺口相当大。GDPR覆盖所有欧盟个人数据,无论数据主体的国籍如何。欧盟团队需要Presidio默认不提供的识别器。
Presidio的默认覆盖范围
Presidio的默认识别器分为四大类。
以美国为中心的ID:
- 美国社会安全号码(SSN)
- 美国护照号码
- 美国驾照号码
- 美国银行账号
- 美国个人纳税识别号(ITIN)
- 美国医疗执照号码
通用ID:
- 电子邮件地址
- 电话号码
- IP地址
- 信用卡号码
- 加密钱包地址
- URL
基于NER的文本实体:
- PERSON(人名)
- LOCATION(地名)
- ORGANIZATION(机构名)
- DATE_TIME(日期时间)
有限的国际支持:
- 英国NHS号码
- 英国国民保险号(NINO)
- 部分金融标识符
合计:约40个识别器。
欧盟团队的实际需求
金融ID
IBAN出现在大多数欧盟商业文件中,见于付款通知、发票和薪资单,遵循ISO 13616标准。Presidio无IBAN识别器。
以德国一家金融科技公司为例,每份付款文件都包含IBAN。没有IBAN检测,工具只能识别信用卡号,欧盟主流支付标识符就此遗漏,意味着一类关键的GDPR覆盖数据永远不会被发现。
国家税号
以下税号均不在Presidio的默认支持范围内:
- 德国税号(Steueridentifikationsnummer): 11位数字
- 法国社会保障号(NIR): 15位数字含校验码
- 意大利财政代码(Codice Fiscale): 16位字符含校验和
- 西班牙国家身份证号(NIF/NIE): 9位字符含字母
- 荷兰公民服务号(BSN): 9位数字含elfproef校验
欧盟薪资团队处理多个成员国的文件时,若缺少这些识别器,将错过记录中最敏感的身份标识。
国家医疗ID
英国NHS号码已被支持,但以下ID不在覆盖范围内:
- 法国社会保障号(NIR,同时也是医疗ID)
- 德国法定医保号(Krankenkassennummer)
- 意大利财政代码(Codice Fiscale,同时也是医疗ID)
- 荷兰公民服务号(BSN,用于医疗保险)
欧盟医疗团队需要这些ID才能实现GDPR级别的数据保护。
欧盟驾照
欧盟驾照受2006/126/EC指令约束,每个成员国格式各异,字母数字结构因国而异。Presidio仅有美国驾照识别器,不支持欧盟驾照格式,导致欧盟驾照数据在处理中无法被检测到。
增值税号(VAT)
欧盟增值税号出现在每笔B2B交易中,格式为2位国家代码加8—12位数字,Presidio无VAT识别器。VAT号关联公司及其所有者,在GDPR框架下属于个人数据。
更多GDPR合规义务相关信息,参阅GDPR合规资源。
自定义识别器的成本
当欧盟团队发现这一缺口时,往往选择自行构建识别器,这需要付出真实的时间代价。
每个识别器的时间估算(粗略):
- 研究格式规范:1—2小时
- 编写Python类:2—4小时
- 构建正则表达式和校验逻辑:2—4小时
- 添加上下文关键词:1—2小时
- 编写测试:2—3小时
- 部署和验证:1—2小时
每个识别器约需9—17小时,以上为粗略估算。
示例:德国金融科技公司需要四个识别器
IBAN、德国税号(Steuer-ID)、欧盟驾照、德国增值税号。
- 4个识别器 × 每个约13小时 = 52小时工作量
- 按每小时100欧元计算:约5,200欧元
这只是初次构建的成本。格式会随时间变化,新的边缘情况会出现,Presidio API更新可能导致已有代码失效,每次变更都需要开发人员介入审查和修复,年复一年累积额外成本。
托管实体库
anonym.legal在Presidio基础上扩展至285种以上实体类型,由团队持续维护,欧盟标识符从第一天起即可使用。
超出Presidio默认支持的部分包括:
- 所有欧盟成员国格式的IBAN
- 成员国税号:Steuer-ID、NIR、Codice Fiscale、NIF/NIE、BSN、PESEL等
- 欧盟国家医疗ID
- 欧盟格式增值税号
- 欧盟驾照格式
- 欧洲护照格式
- 支持的48种语言下的实体变体
当德国更新税号格式时,更新随服务同步发布,无需团队提交Pull Request。
对于库中未包含的ID类型,自定义实体构建器允许添加自定义规则,无需编写Python代码。
参阅安全与合规详情,了解更新机制和审计追踪的工作方式。
德国金融科技公司示例
某德国金融科技公司需要在客户文件中检测IBAN、BIC、Steuer-ID和商业登记号(Handelsregisternummer)。
Presidio对这四种类型的默认检测率:0%。
这四种类型均不在默认库中。这不是精准率低的问题,而是零检测——工具不是部分遗漏这些数据,而是完全看不见它们。
成本对比:
| 方案 | 第一年成本 |
|---|---|
| 自定义识别器(4个 × 13小时 × 100欧元/小时) | ~5,200欧元,另加持续维护成本 |
| 托管实体库(专业版计划) | 180欧元/年,四种类型均已覆盖 |
第一年差距约为29倍,此后每年的自定义维护成本持续累积,而托管服务价格保持不变。
结语
Presidio的默认配置能够很好地服务美国用例,但对于GDPR框架下的欧盟部署,覆盖明显不足。弥补这一缺口要么需要自定义识别器开发工作,要么需要使用托管服务。
对于合规要求明确、工程资源有限的欧盟团队,预构建的欧盟实体库免去了50余小时的开发工作量,文件从第一天起即可处理,无需事先编写任何自定义代码。