通过国际民航组织(ICAO)和近场通信(NFC)进行身份验证

根据国际民航组织9303标准对身份文件进行全面核验。包括MRZ扫描、NFC芯片读取、PACE/BAC/CAN验证、SOD验证、被动认证、主动认证和芯片认证。

为什么需要ICAO/NFC身份验证?

ProjectAssistant集成了完整的ICAO 9303标准实现方案,用于护照和身份证的验证。通过MRZ扫描和NFC芯片通信技术,系统可直接从安全芯片中读取姓名、出生日期、国籍、证件号及照片等信息。此举确保了身份证明文件符合WID/WKA要求的真实性验证标准。

  • 无需手动输入——所有数据均自动从DG1和DG2中获取
  • 根据国际民航组织9303安全标准进行检查
  • 通过SOD和哈希链检测伪造品
  • 支持PACE、CAN、BAC
  • 照片与文件数据的质量控制

第一步:MRZ扫描

检查从扫描身份证或护照的机器可读区(MRZ)开始。该移动应用程序使用实时摄像头叠加层,自动检测:

  • MRZ类型(TD1、TD2、TD3)
  • 校验和验证
  • PACE的CAN导出
  • 文件编号、出生日期、到期日期

基于MRZ计算BAC或PACE的密钥,并启动NFC读取。

步骤 2:NFC 访问(PACE/BAC/CAN)

该应用程序始终优先尝试使用PACE——这是更现代、更安全、更快的方案。如果文档不支持PACE,系统将回退到BAC或CAN。

协议顺序

  • PACE(首选)——现代协议,ECDH/ECDSA,更安全
  • CAN– 通过卡访问号码(适用于欧盟身份证)
  • BAC– 旧护照和身份证件

PACE 流量(GA1 → GA4)

  1. GA1:启动密钥协商(映射 OID → 曲线)
  2. GA2:ECDH交换
  3. GA3:随机数映射 + 双向认证
  4. GA4:安全消息密钥导出

结果:ENC密钥和MAC密钥,用于保护所有后续APDU。

步骤3:读取数据组(DG1-DG15)

该应用程序会读取芯片中所有必要的数据组。在您的实施中,将根据国家和可用性读取DG1、DG2、DG7、DG11和DG12等数据组。

  • DG1- 机器可读数据(姓名、出生日期、文件编号)
  • DG2- 面部扫描/照片
  • DG7- 签名(某些国家)
  • DG11- 附加个人数据
  • DG12- 文档信息
  • SOD- 文档安全对象(哈希值与签名根)

数据映射会自动完成到你的员工身份模型。

步骤4:SOD验证与被动认证

SOD包含每个数据组的哈希值以及发布国的数字签名。ProjectAssistant进行验证:

  • 哈希链:DG1哈希 = SOD哈希
  • 签名:使用CSCA和DS证书的PKI签名
  • 证书有效性与撤销

如果SOD检查成功,则该文件具有加密真实性。

步骤 5:主动身份验证

如果文档支持,应用程序将执行主动认证。通过此操作,我们可验证芯片是否为原装且未被克隆。

  • 挑战 → 回应
  • ECDSA/RSA验证
  • 防复制安全检查

如果签名正确,则芯片是唯一的且未被复制。

步骤 6:芯片认证

芯片认证取代了现代电子身份证中的主动认证。它通过新的ECDH交换来确认芯片的真实性。

  • ECDH与芯片私钥
  • 新的会话密钥
  • 完整真伪证明

与员工关联

成功验证后,所有数据将自动关联至该员工:

  • 姓名、出生日期、国籍
  • 文件编号,到期日期
  • DG2的照片
  • 检查日志,包括PACE/BAC/CAN详细信息

该文件将自动出现在员工文件系统中。