通过国际民航组织(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)
- GA1:启动密钥协商(映射 OID → 曲线)
- GA2:ECDH交换
- GA3:随机数映射 + 双向认证
- 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详细信息
该文件将自动出现在员工文件系统中。
