911事件之后,以安全防伪、航空保安和出入境管制为目标的机读旅行证件技术不断发展,电子护照就是其中之一。目前已有安全措施覆盖芯片制造、生产印刷和签发使用。电子化在带来便利的同时也带来了安全防伪抗攻击的新课题,作为标准化产品,改变安全配置项意味着系统性升级改造。当前状况适合采用哪种安全机制、如何验证安全机制是否达到最初设计预期、如何兼容未来技术发展正成为焦点。本文结合电子护照的多种安全机制,分析其优缺点,给出了系统安全测试验证解决方案,为电子护照产品的测试验收、逐代推出和升级改造提供参考依据。
电子护照安全机制
在ICAO制订的标准DOC9303中,定义了两类安全机制,即数据认证机制和访问控制机制。数据认证机制包括被动认证(Passive Authentication,PA)和主动认证(Active Authentication,AA);访问控制机制包括基本访问控制(Basic Access Control,BAC)和扩展访问控制(Extended Access Control,EAC),最近又基于PACE(Password Authenticated Connection Establishment)协议,作为BAC的补充制定了SAC(Supplemental Access Control)规范。在ICAO标准中,对PA/AA/BAC/SAC有明确定义并制定了详细的测试标准,在欧洲BSI标准中则制订了EAC相关标准,分别为EAC v1.11和EAC v2.0,另外制定了针对v1.11的测试标准EAC v1.12,EAC作为可选安全选项在荷兰、比利时、芬兰等国已使用,美英日尚未使用,默认接受克隆欺诈。
基于以上安全机制,可将电子护照划分为四代,第一代为明文,仅支持PA;第二代支持BAC/AA;第三代支持SAC;第四代支持EAC。其中第一代实现了电子化,但安全准确性由检查系统(IS)来保证,明文通信易被偷听和克隆;第二代加入了BAC或AA,BAC基于DES和Hash实现线路保护,AA则实现芯片真伪验证,能防偷听克隆;第三代引入SAC增强了BAC线路保护低熵特性,基于DH/ECDH算法建立了更强的线路保护;第四代为EAC,实现芯片身份真伪验证并基于非对称算法对检查系统身份真伪进行验证。目前实际发行国家多采用第二代BAC,而第四代EAC多在欧洲国家使用,第三代SAC刚出现不久,预计将会逐步取代第二代BAC。
电子护照安全机制的局限性
在安全防伪技术中,有三个要求:身份认证、数据保密性、数据完整性(见表1)。
%%%%%%%%%%2
BAC通过挑战应答协议实现,即以MRZ的哈希值为种子进行密钥分散得到基本访问密钥对(KENC,KMAC), 然后通过GetChallenge和Mutual Authentication两条指令实现挑战应答协议,建立会话密钥并结合包含随机数的消息序列计数器进行基于对称密钥算法的线路保护。BAC的缺点是通过MRZ中的证件号、出生日期和有效期来生成共享密钥,具有有限的随机性且基于对称密钥算法,改进方法包括:MRZ要OCR读二维条形码而非目视;增加私钥计算长度。