電子護照安全機制及測試
911事件之后,以安全防偽、航空保安和出入境管制為目標的機讀旅行證件技術不斷發(fā)展,電子護照就是其中之一。目前已有安全措施覆蓋芯片制造、生產印刷和簽發(fā)使用。電子化在帶來便利的同時也帶來了安全防偽抗攻擊的新課題,作為標準化產品,改變安全配置項意味著系統(tǒng)性升級改造。當前狀況適合采用哪種安全機制、如何驗證安全機制是否達到最初設計預期、如何兼容未來技術發(fā)展正成為焦點。本文結合電子護照的多種安全機制,分析其優(yōu)缺點,給出了系統(tǒng)安全測試驗證解決方案,為電子護照產品的測試驗收、逐代推出和升級改造提供參考依據(jù)。
電子護照安全機制
在ICAO制訂的標準DOC9303中,定義了兩類安全機制,即數(shù)據(jù)認證機制和訪問控制機制。數(shù)據(jù)認證機制包括被動認證(Passive Authentication,PA)和主動認證(Active Authentication,AA);訪問控制機制包括基本訪問控制(Basic Access Control,BAC)和擴展訪問控制(Extended Access Control,EAC),最近又基于PACE(Password Authenticated Connection Establishment)協(xié)議,作為BAC的補充制定了SAC(Supplemental Access Control)規(guī)范。在ICAO標準中,對PA/AA/BAC/SAC有明確定義并制定了詳細的測試標準,在歐洲BSI標準中則制訂了EAC相關標準,分別為EAC v1.11和EAC v2.0,另外制定了針對v1.11的測試標準EAC v1.12,EAC作為可選安全選項在荷蘭、比利時、芬蘭等國已使用,美英日尚未使用,默認接受克隆欺詐。
基于以上安全機制,可將電子護照劃分為四代,第一代為明文,僅支持PA;第二代支持BAC/AA;第三代支持SAC;第四代支持EAC。其中第一代實現(xiàn)了電子化,但安全準確性由檢查系統(tǒng)(IS)來保證,明文通信易被偷聽和克?。坏诙尤肓薆AC或AA,BAC基于DES和Hash實現(xiàn)線路保護,AA則實現(xiàn)芯片真?zhèn)悟炞C,能防偷聽克??;第三代引入SAC增強了BAC線路保護低熵特性,基于DH/ECDH算法建立了更強的線路保護;第四代為EAC,實現(xiàn)芯片身份真?zhèn)悟炞C并基于非對稱算法對檢查系統(tǒng)身份真?zhèn)芜M行驗證。目前實際發(fā)行國家多采用第二代BAC,而第四代EAC多在歐洲國家使用,第三代SAC剛出現(xiàn)不久,預計將會逐步取代第二代BAC。
電子護照安全機制的局限性
在安全防偽技術中,有三個要求:身份認證、數(shù)據(jù)保密性、數(shù)據(jù)完整性(見表1)。
BAC通過挑戰(zhàn)應答協(xié)議實現(xiàn),即以MRZ的哈希值為種子進行密鑰分散得到基本訪問密鑰對(KENC,KMAC), 然后通過GetChallenge和Mutual Authentication兩條指令實現(xiàn)挑戰(zhàn)應答協(xié)議,建立會話密鑰并結合包含隨機數(shù)的消息序列計數(shù)器進行基于對稱密鑰算法的線路保護。BAC的缺點是通過MRZ中的證件號、出生日期和有效期來生成共享密鑰,具有有限的隨機性且基于對稱密鑰算法,改進方法包括:MRZ要OCR讀二維條形碼而非目視;增加私鑰計算長度。
SAC基于PACE協(xié)議技術并通過引入非對稱算法建立跟密碼無關的更強的會話密鑰。當卡片既支持PACE又支持BAC時,必須使用PACE,通關檢查系統(tǒng)必須具有PACE功能。PACE協(xié)議中使用了DH或ECDH算法,這種算法也在EAC的CA(Chip Authentication)中使用,可以認為SAC正是ICAO將CA通過PACE協(xié)議形式引入的,這種技術仍是基于芯片運算的(需支持AES),故該功能在電子護照推廣中對芯片運算功能有要求。SAC的特點是采用密鑰交換算法,其有效性依賴于計算離散對數(shù)的難度,需要防重演攻擊和中間人攻擊,SAC采取的措施是通過隨機數(shù)來協(xié)商一個臨時全局參數(shù)用來防重演攻擊,認證令牌用來防中間人攻擊。
EAC的特點是加入了證書期限并進行了管理,包括芯片認證(CA)和終端認證(TA)兩個步驟,其中CA是類似AA的技術,用于驗證電子護照中芯片的真實性,支持算法有:DH算法和ECDH算法,需要讀取DG14中公鑰信息通過密鑰交換算法產生新的加密通道用的密鑰對(KENC,KMAC);
TA則用于認證外部終端并檢查權限是否可訪問敏感數(shù)據(jù),在認證外部終端時通過CVCA-》DV-》IS的證書鏈形式來認證(其中CVCA=國家檢查CA-》發(fā)布DV證書, DV=證件檢查機構-》發(fā)布IS證書,IS=自動化邊防檢查系統(tǒng)-》讀取護照芯片資料并做通關),認證過程中可能會更新芯片中某些信息如最新日期、EF.CVCA中的信任點甚至切換使用算法類型等,支持的算法有:RSA、RSA-PSS和ECDSA等。TA需要外部證書PKI系統(tǒng)甚至ICAO PKD的支持,該功能用于認證通關檢查系統(tǒng)或讀卡設備的合法性,實現(xiàn)了完整的雙向信任評價機制。
電子護照安全機制測試
目前電子護照認證測試仍依賴于國外第三方機構,且隨著CPU技術發(fā)展,破解密鑰所需時間越來越短而護照有效期長達5或10年,安全機制及測試仍需進一步研究和升級。此外,各國部署后支持的特征不太一樣,有的僅支持第一代PA,有的則支持到第二代BAC甚至第四代EAC,這種差異性也造成了安全漏洞。
本文給出的測試系統(tǒng)由RFID電子護照識讀系統(tǒng)、測試平臺軟件、測試套件組成,具體見圖4。其中測試套件分為安全抗攻擊測試、一致性測試、兼容性測試。
安全抗攻擊測試包括:RFID技術導致的近場隱蔽掃描;RFID技術導致的隱蔽跟蹤;14443協(xié)議層面的抗攻擊測試;防克隆防略讀測試;防竊聽測試;持有人生物特征數(shù)據(jù)泄漏導致的安全漏洞;安全算法本身脆弱性測試。
該部分測試在一致性測試套件中并不涉及,與芯片攻擊測試不同,該部分是基于安全機制和經驗分享后的安全漏洞,是針對應用而言的,而芯片攻擊測試是基于硬件的,采用如SPA/DPA、SEMA/DEMA、DFA、時間分析攻擊/差分耗時攻擊等技術。
一致性測試即協(xié)議符合度測試,不同安全機制采用不同的安全測試標準。BAC一致性測試在ICAO測試規(guī)范中有詳細定義,主要包括:(1)Select和Read Binary兩條最小命令集指令(2)BAC保護模式和BAC未保護模式下使用這兩條指令分別讀16個LDS文件測試。在建立BAC會話密鑰中使用的另外兩條基本指令是Get Challenge和External Authentication。SAC尚未定義測試規(guī)范,可參照EAC中CA測試部分,下面重點介紹EAC測試。
如圖5所示,實現(xiàn)EAC由幾個部分組成:PKD、國家電子護照簽發(fā)機構、國家電子護照驗證機構、支持EAC功能的電子護照。EAC測試分為EAC一致性測試、EAC護照和IS兼容性測試、PKD互用性測試。EAC本身不能阻止精確拷貝和芯片替換,有非對稱算法運算功能的芯片提供認證運算,而之外的所有設施均只為提供證書管理和使用,最高層證書是由國家簽發(fā)驗證機構簽發(fā)的自簽名證書且在接收國為信任起點或證書鏈最高端。
在PKD架構下實現(xiàn)的EAC一致性測試架構見圖5,實現(xiàn)了發(fā)證領證-》國內海關(出關)-》國外海關(入關)-》國外海關(出關)-》國內海關(入關)等操作的測試。國家B發(fā)行電子護照,該護照在本國的海關出關通過相應的IS檢查系統(tǒng)包含的證書鏈(CVCA(國家B)-》國內DV-》IS)驗證EAC,完成人臉指紋或虹膜的安全檢查,到國家A,則基于國家A的IS檢查系統(tǒng)的證書鏈(CVCA(國家B)-》國外DV-》IS)驗證EAC,完成人臉指紋或虹膜的安全檢查,返回國內則類似操作。ICAO PKD起到存儲共享作用。
BSI給出的EAC一致性測試結合EAC子過程CA/TA、證書鏈、訪問權限、日期信任點更新等測試點對安全機制進行符合度測試,依據(jù)是測試標準EAC v1.12,主要包括了如下幾個部分(表2)。
測試系統(tǒng)從不同角度給出了安全機制的測試,兼容性測試關注的是卡機兼容問題,安全抗攻擊測試關注的是安全漏洞,而一致性測試則致力于協(xié)議符合度。測試系統(tǒng)需要隨著技術的不斷更新而不斷改進,一個持續(xù)改進的系統(tǒng)對產品的穩(wěn)定性、安全性有積極意義。
本文小結
電子護照作為二代身 份證后的另一個重量級身份識別產品,必然要經歷不同階段的演化,尤其是安全機制,基于第二代BAC已是成熟技術,新引進的SAC作為第三代在實現(xiàn)上也已比較成熟,假以時日必能得到推廣,而歐洲標準EAC作為第四代和一種更為復雜的安全機制,必將引起重視并影響電子護照的發(fā)展和升級換代。