电子护照通用读取流程设计

2014-03-03 08:04程三伟盛钢冯翔张宁上海通用识别技术研究所
警察技术 2014年3期
关键词:私钥护照证书

程三伟 盛钢 冯翔 张宁 上海通用识别技术研究所

电子护照通用读取流程设计

程三伟 盛钢 冯翔 张宁 上海通用识别技术研究所

介绍并分析了电子护照当前和今后可能会出现的护照类型,在此基础上设计了一种电子护照通用读取流程,并针对第二代电子护照信息量大的特点,增加了加速读取设计。

电子护照 被动认证 基本访问控制 主动认证 扩展访问控制 补充访问控制

一、引言

国际民航组织(ICAO)在ICAO9303文档中规定了电子护照芯片应采取的安全机制[1],主要有用于证明芯片内容真实性的被动认证协议(PA)、用于防止不当读取和滥用的基本访问控制协议(BAC)、用于防止芯片被替换的主动认证协议(AA)和用于防止对敏感生物特征(指纹或虹膜)非授权访问的扩展访问控制协议(EAC)。其中EAC协议具体实现分为新加坡和欧盟两种实现方式[2]。新加坡的EAC协议通过将指纹数据进行3DES加密,加密密钥经过非对称加密算法计算后存放在护照的DG13数据区,授权方需获得非对称加密私钥后通过私钥解密获取3DES密钥,通过3DES密钥解密加密后的指纹数据。欧盟的EAC协议主要通过类似于PA认证的PKI体系进行实现。该协议主要通过DVCA证书、DV证书和IS证书三级证书的逐级认证,并结合IS私钥完成芯片认证(CA)和终端认证(TA)后,通过证书中被授予的读取权限读取敏感生物特征数据(指纹和虹膜)。当前已经被ICAO接受的EAC标准为版本1,版本2中针对BAC低熵值问题设计的密码认证连接建立协议(PACE)于2010年11月被ICAO采用作为替代BAC协议的补充访问控制协议(SAC)[3]。欧盟EAC主要采用了用于验证芯片真实性的芯片认证协议(CA)和用于验证终端合法授权的终端验证协议(TA)。

二、电子护照类型

结合当今已发行电子护照和未来的趋势,根据电子护照采用安全协议上的不同,大致分为如表1所示的以下几种类型。其中,1-1、1-2、1-3和1-4为目前已发行的电子护照。2-1、2-2、2-3和2-4为今后可能发行的电子护照。

?

(一)第一代电子护照

1. 基本特征

如表1所示,目前已经发行的第一代电子护照为1-1(如早期美国和比利时)、1-2(如美国)、1-3(如荷兰、澳大利亚),其特点是只有脸像生物特征数据,采用的安全机制包括BAC协议、PA协议、AA协议。有的国家签发的电子护照没有AA协议和BAC协议。

2. 读取流程

第一代电子护照的读取流程如图1所示,首先将电子护照放在读写器上,电子护照读写器首先选择电子护照芯片应用,然后直接选择读取EF.COM,若读取EF.COM成功则说明此护照芯片不需要进行BAC协议认证,否则需要通过读写器OCR识别或手工输入机读码(MRZ)信息,在读写器和电子护照芯片之间采用BAC协议建立安全通讯会话连接。随后再读取EF.COM,通过EF.COM可以获得写入电子护照的目录信息,并按照目录信息直接选择并读取护照其他各区域数据。护照各区域数据读取完成后,进行PA验证,验证护照各区域数据的完整性和真实性。PA验证完成后,需要判断EF.DG15文件是否存在,如果存在还需要进行AA认证,以验证芯片的真实性。

(二)已发行的第二代电子护照

1. 基本特征

如表1所示,目前已经发行的第二代电子护照为1-4,其特点是采用了EAC协议对指纹敏感生物特征数据进行了保护。完整读取该类型的电子护照需要签发国家的私钥或者签名授权证书的支持。目前发行的护照包括新加坡EAC电子护照和欧盟EAC版本1电子护照。

新加坡EAC电子护照的主要特点是敏感指纹生物特征数据加密,且加密密钥经过非对称加密计算存放在DG13数据区。欧盟EAC版本1电子护照的特点是电子护照芯片本身增加了很多和数据安全相关的文件。这些数据文件包括EF.CVCA、EF.DG14、CA认证私钥及算法参数等文件。

2. 新加坡EAC护照读取流程

新加坡电子护照前期的读取流程与第一代电子护照的读取流程完全相同。AA认证结束后,如果系统具有被授予的读取权限非对称解密私钥,则需将EF.DG13区域对应的EAC加密密钥采用非对称私钥解密后,采用EAC加密密钥进行EF.DG3区域的数据解密,获取EF.DG3指纹敏感数据。

3. 欧盟EAC版本1电子护照读取流程

和第一代电子护照读取EF.COM的流程相同,读取完成后通过EF.COM可以获得写入电子护照的目录信息,根据EF.COM判断是否有EF.DG14文件,如果DG14文件存在则首先读取EF.DG14文件。因为EF.DG14文件是EAC版本1协议中规定存放芯片认证公钥的文件,考虑到读取的良好兼容性,首先进行协议中规定的芯片认证流程。有些国家的护照芯片在芯片认证不通过时,拒绝读取其他非敏感数据区数据。芯片认证通过后,启动新的增强会话密钥,继续读取EF.COM中存在的EF.DG1、EF.DG2、EF.CVCA、EF.SOD等非敏感数据文件。读取完成后,进行除敏感生物特征区域数据的PA认证。在终端证书链和终端私钥完整的情况下,继续进行证书链(DV证书、IS证书)的完整性和终端私钥(IS私钥)的验证,终端验证通过后,方可读取指纹/虹膜等敏感指纹信息。

(三)今后的电子护照

针对BAC协议低熵值的弱点,ICAO引入了PACE替代协议。PACE协议需要相应的配置文件支持,该配置文件存放在EF.CardAccess文件中。PACE协议支持CAN、PIN、PUK、MRZ等多种形式。将来的电子护照可能会发展成为PACE协议逐渐取代BAC协议的局面。为方便读取流程上的分析,将表1中2-1、2-2定义为第一代电子护照PACE升级版、2-3为欧盟EAC版本1的PACE升级版,2-4定义为欧盟EAC版本2电子护照。

1. 第一代电子护照PACE升级版读取流程

电子护照读写器首先读取EF.CardAccess文件,随后输入相对应的CAN或MRZ等密码通过PACE算法建立安全通讯会话连接。随后再读取EF.COM,通过EF.COM可以获得写入电子护照的目录信息,并按照目录信息直接选择并读取护照其他各区域数据。护照各区域数据读取完成后,进行PA验证,验证护照各区域数据的完整性和真实性。PA验证完成后,需要判断EF.DG15文件是否存在,如果存在还需要进行AA认证。

2. 欧盟EAC版本1 PACE升级版电子护照读取流程

电子护照读写器首先读取EF.CardAccess文件,随后输入相对应的CAN或MRZ等密码通过PACE算法建立安全通讯会话连接。 随后读取EF.COM,并按照EAC版本1电子护照一致的读取流程完成EF.DG14文件的读取、CA认证、其他区域非敏感数据读取、TA认证和敏感指纹/虹膜生物特征的读取。

3. 欧盟EAC版本2电子护照读取流程

电子护照读写器首先读取EF.CardAccess文件,随后输入相对应的密码通过PACE算法建立安全通讯会话连接。接着选择电子护照应用后进行EAC版本2的终端认证,终端认证同样需要完整证书链(DV证书、IS证书)和终端私钥(IS私钥)的支持。终端认证完成后,读取EF.CardSeucrity文件,进行EAC版本2的芯片认证,芯片认证完成后读取EF.COM及电子护照其他各区域文件内容,并进行PA认证。

三、电子护照通用读取流程设计

电子护照协议的不断完善与发展给电子护照的兼容性读取带来了很大的挑战。尤其是PACE协议的加入,使得未来的电子护照的芯片数据结构和安全通讯协议算法复杂度发生了很大的变化,读取方法也要随之作出相应的改变和调整。

(一)流程设计

通过对以上不同类型电子护照的分析,可以得出以下结论:

(1)由于PACE协议本身的复杂性和算法多样性,必须有EF.CardAccess文件方可执行。所以可以通过电子护照芯片中是否有EF.CardAccess文件来区分电子护照是否采用了PACE协议。

(2)由于采用BAC协议的电子护照不允许直接读取EF.COM文件,所以可以通过直接读EF.COM文件并通过该命令的执行结果来判断电子护照是否采用了BAC协议。

(3)EF.DG15文件存放的是主动认证公钥,可以通过判断该文件是否存在来判断是否采用主动认证协议。

(4)新加坡电子护照典型特点是在EF.DG3文件为加密数据,且加密密钥经非对称加密后存放再EF.DG13中。所以,可以通过EF.DG3、EF.DG13文件是否存在来判断是否为新加坡EAC护照。

(5)欧盟电子护照若采用PACE协议,则可以通过EF.CardAccess文件内的具体内容来区分是采用的EAC版本2、EAC版本1,还是未采用EAC协议。

(6)若欧盟电子护照采用BAC协议,则可以通过EF.DG14文件是否存在来判断是否为EAC版本1电子护照。

综合以上结论并充分考虑到通用性和兼容性,设计电子护照通用读取流程如图2所示,具体如下:

首先,读取EF.CardAccess 文件,若读取成功,则启动PACE协议。并通过EF.CardAccess文件判断采用的EAC版本类型。若为版本1,则采用文中EAC版本1PACE升级版后续读取流程。若为版本2,则采用EAC版本2后续读取流程。如果未采用扩展访问控制协议,则采用第一代电子护照PACE版本后续读取流程。

如果读取EF.CardAccess 文件失败,则直接选择读取EF.COM文件,如果读取EF.COM文件成功,则说明该护照未采用BAC协议。如果采用BAC协议,则通过光学扫描或人工输入MRZ,建立安全通讯会话。然后直接读取EF.COM 文件。通过该文件目录判断是否有EF.DG3/EF.DG4 文件。如果没有,则进入第一代电子护照后续读取流程。如果有EF.DG3/EF.DG4文件,则再进行EF.DG13文件是否存在的判断,如果文件存在,则进入新加坡EAC护照后续读取流程。如果EF.DG13文件不存在,则再进行EF.DG14文件是否存在的判断,如果EF.DG14文件存在则进入欧盟EAC版本1后续读取流程,否则就尝试直接进入第一代电子护照后续读取流程。

(二)加速读取设计

在电子护照的通关过程中,电子护照的读取速度是制约实际通关效率的重要因素。早期的电子护照芯片由于不支持扩展长度,每次加密传送和返回命令的字节长度都不超过256,这就在一定程度上降低了电子护照的读取速度。支持欧盟EAC协议的护照芯片由于加密计算的需要(如传递证书、公钥和签名),采用了扩展长度的APDU 命令。采用扩展长度的APDU 命令在每次读取时读取长度大大超过256字节的限制,提高了读取电子护照芯片数据的速度[4]。

本读取流程在读取电子护照时,增加了加速读取流程设计,读取过程中首先主动尝试采用扩展的APDU命令,在芯片支持该命令时,扩展的APDU命令会在读取内容时采用芯片能够支持的最大长度读取数据,从而减少读卡机和电子护照芯片的通讯次数以加速读取电子护照生物特征数据,从而提高实际的通关效率。

四、结束语

电子护照通用读取流程的设计基于对电子护照安全访问控制协议进行较为全面的分析基础之上,该流程为电子护照协议类型的自动判别和芯片数据内容的自动读取提供了一定的借鉴参考。随着电子护照各方面技术的不断发展,电子护照安全性仍将得到不断提高,新的安全访问控制协议可能在不久的将来继续推出,该流程仍需在今后的实际应用中不断完善。

[1] ICAO. Machine Readable Travel Documents-Part 1: Machine Readable Passport,Volume 2: Specifications for Electronically Enabled Passports with Biometric Identification Capabilities[M]. ICAO Doc 9303,6th Edition,2006.

[2] NTWG. Extended Access Control[C].NTWG, Seventeenth Meeting,2007.

[3] ICAO. Supplemental Access Control for Machine Readable Travel Documents[R]. Technical Report, ICAO, 2010.

[4] ISO/IEC. Identification Cards Integrated Circuit Cards Part 4: Organization, Cecurity and Commands for Interchange[S], ISO/IEC 7816-4:2005,2005.

猜你喜欢
私钥护照证书
清扫机器人避障系统区块链私钥分片存储方法
WJCI 收录证书
CSCD收录证书
比特币的安全性到底有多高
收录证书
基于改进ECC 算法的网络信息私钥变换优化方法
收录证书
一种基于虚拟私钥的OpenSSL与CSP交互方案
如果护照快过期,如何保住有效签证?各国规定有不同
2016全球护照排行榜