■ 文/公安部第一研究所 沈孝東
北京市微技術(shù)研究所 葛利軍
關(guān)鍵字:PACE 國(guó)密算法
隨著科學(xué)技術(shù)的進(jìn)步和人們對(duì)安全需求的不斷增加,特別是“9·11”事件之后,全球出于國(guó)家安全和反恐需求,進(jìn)一步提高旅行證件的安全性,國(guó)際民用航空組織(ICAO)提出電子機(jī)讀旅行證件(eMRTD)。我國(guó)順應(yīng)ICAO的要求,從2004年開(kāi)始了旅行證件的電子化工作。eMRTD的安全主要包括物理層安全、通信層安全和協(xié)議層安全三個(gè)層面。物理層安全主要指芯片本身的安全性,即不能通過(guò)芯片的物理特性獲取相關(guān)信息。通信層安全是指保護(hù)芯片與機(jī)具交換信息的安全,防止信息的破解和干擾。協(xié)議層安全是指通過(guò)相應(yīng)的安全協(xié)議保證芯片內(nèi)信息的完整性、真實(shí)性和機(jī)密性。
為了在eMRTD和查驗(yàn)系統(tǒng)(PCD)之間建立一個(gè)安全的通信信道,目前主要采用基本訪問(wèn)控制(BAC)來(lái)認(rèn)證eMRTD和PCD的合法性,并且建立會(huì)話密鑰,用于兩者之間通信的加密,從而保證交互信息的機(jī)密性。由于BAC協(xié)議會(huì)話密鑰由隨機(jī)性非常有限的打印數(shù)據(jù)生成,為了解決BAC協(xié)議會(huì)話密鑰熵偏低的問(wèn)題,2015年ICAO發(fā)布了第七版Doc 9303號(hào)文件,提出了PACE協(xié)議,與BAC協(xié)議相似,但采取非對(duì)稱密碼來(lái)建立會(huì)話密鑰,其強(qiáng)度與所使用的口令的熵?zé)o關(guān),所以可以為eMRTD和PCD之間的通信建立了安全環(huán)境。
PACE協(xié)議主要包括派生密鑰、執(zhí)行密鑰協(xié)商和相互認(rèn)證。派生密鑰主要功能是根據(jù)口令派生出加解密所需要的密鑰,即PACE使用的KDFπ口令派生出來(lái)的,對(duì)于有全球互操作性的eMRTD,可以下列兩種口令:機(jī)讀區(qū)(MRZ)和卡訪問(wèn)號(hào)(CAN)。MRZ由證件號(hào)碼、出生日期和截止日期串聯(lián)構(gòu)成,并包括各自的校驗(yàn)位。CAN是印在數(shù)據(jù)頁(yè)正面的數(shù)字,必須隨機(jī)或者偽隨機(jī)選擇。口令的16個(gè)字節(jié)SHA-1散列值用作密鑰種子,通過(guò)密鑰派生函數(shù)生成證件加解密所需密鑰。
PACE協(xié)議密鑰協(xié)商是整個(gè)協(xié)議重要的一部分,通常包括通用映射、合成映射和芯片認(rèn)證映射,每種映射又包含基于ECDH密鑰交換協(xié)議和基于DH密鑰交換協(xié)議兩種。對(duì)于ECDH密鑰交換協(xié)議,選擇<G>中的H,使得logGH未知。H點(diǎn)應(yīng)由匿名Diffie-Hellman密鑰協(xié)商進(jìn)行計(jì)算,對(duì)于DH協(xié)議,函數(shù)被定義為選擇<g>中的h,使得未知。群元素h應(yīng)按照由匿名Diffie-Hellman密鑰協(xié)商進(jìn)行計(jì)算。
設(shè)PCD為發(fā)起方,eMRTD的芯片(IC)為響應(yīng)方。PACE協(xié)議過(guò)程如下:
(1)PCD獲取eMRTD的MRZ,由密鑰派生函數(shù)KDFπ派生出加解密密鑰Kπ;
在生成會(huì)話密鑰時(shí),因?yàn)镵DF僅使用第一個(gè)坐標(biāo)派生會(huì)話密鑰,所以僅需要共享秘密K的x坐標(biāo),認(rèn)證算法MAC使用AES的CMAC模式。
圖1 PACE協(xié)議流程圖
從整個(gè)協(xié)議角度來(lái)看, PACE協(xié)議相對(duì)于BAC協(xié)議更為安全,但是PACE協(xié)議加解密密鑰由隨機(jī)性非常有限的打印字符的派生出來(lái)。由于PACE協(xié)議中隨機(jī)數(shù)s主要用于放大會(huì)話密鑰熵和防止重放攻擊,一旦攻擊者獲得密鑰,便獲得了隨機(jī)數(shù)s,就顯然地降低了會(huì)話密鑰熵,使整個(gè)協(xié)議安全性受到威脅。2017年,Marc Stevens等人在文獻(xiàn) [2]中創(chuàng)造出第一個(gè)碰撞實(shí)例,這是長(zhǎng)期以來(lái)在理論研究上證明SHA-1算法存在風(fēng)險(xiǎn)之后,在具有實(shí)際意義的攻擊實(shí)例SHA-1碰撞試驗(yàn)也取得了成功,在碰撞攻擊的影響下攻擊者能夠構(gòu)造出PACE協(xié)議的派生密鑰,SHA-1的碰撞試驗(yàn)對(duì)基于這個(gè)算法的密鑰產(chǎn)生機(jī)制變得不再安全。
為此,本文提出了基于國(guó)產(chǎn)密碼算法的改進(jìn)的PACE協(xié)議,國(guó)產(chǎn)密碼是指國(guó)家密碼局認(rèn)定的國(guó)產(chǎn)商用密碼算法,簡(jiǎn)稱國(guó)密,目前主要使用公開(kāi)的SM2、SM3和SM4三類算法,分別對(duì)應(yīng)非對(duì)稱密碼算法、哈希算法和對(duì)稱密碼算法。SM2算法全稱為橢圓曲線算法,該算法用三次方程來(lái)表示的,并且與計(jì)算橢圓周長(zhǎng)的方程相似,所以稱為橢圓曲線算法。SM3密碼摘要算法是中國(guó)商用密碼雜湊算法標(biāo)準(zhǔn),算法采用Merkle-Damgard結(jié)構(gòu),消息分組長(zhǎng)度為512位,摘要值長(zhǎng)度為256位,適用于商用密碼應(yīng)用中的數(shù)字簽名和驗(yàn)證。SM4為分組密碼算法,分組長(zhǎng)度為128比特,密鑰長(zhǎng)度為128比特,密文為128比特。在改進(jìn)的協(xié)議中PCD和IC之間交換的隨機(jī)數(shù)不參與密鑰協(xié)商過(guò)程,有效保護(hù)了會(huì)話密鑰的熵,提高了攻擊難度增強(qiáng)了協(xié)議的安全性。
設(shè)PCD和IC協(xié)商獲得密鑰數(shù)據(jù)的長(zhǎng)度為klen比特,PCD為發(fā)起方,IC為響應(yīng)方。
PCD和IC為了獲得相同的密鑰,應(yīng)實(shí)現(xiàn)如下運(yùn)算步驟:
PCD:
IC:
圖2 改進(jìn)的PACE協(xié)議流程圖
BAC協(xié)議所用的會(huì)話密鑰由隨機(jī)性非常有限的打印數(shù)據(jù)生成,即生成密鑰的數(shù)據(jù)包括證件號(hào)、出生日期和截止日期,因此所得的密鑰熵偏低,安全強(qiáng)度較低。PACE協(xié)議采用橢圓曲線算法,其安全性依賴于橢圓曲線上離散對(duì)數(shù)問(wèn)題困難性,PACE協(xié)議通過(guò)引入隨機(jī)數(shù)s協(xié)商一個(gè)臨時(shí)參數(shù)來(lái)提高會(huì)話密鑰熵和防止重放攻擊,認(rèn)證令牌用來(lái)防中間人攻擊。PACE協(xié)議解決了BAC協(xié)議中會(huì)話密鑰熵低的問(wèn)題,但由于PACE協(xié)議的加解密密鑰是由有限打印字符的口令的SHA-1值派生出來(lái)的,加密密鑰也面臨密鑰熵偏低的問(wèn)題,隨著對(duì)SHA-1算法研究發(fā)展,由SHA-1值派生出來(lái)的加密密鑰的安全機(jī)制受到威脅,進(jìn)而用于協(xié)商密鑰的隨機(jī)數(shù)s也容易被攻擊,PACE協(xié)議的安全性受到威脅。
在改進(jìn)的PACE協(xié)議中,加密密鑰是由SM3算法派生出來(lái)的,目前沒(méi)有對(duì)SM3算法有效的攻擊,并且密鑰協(xié)商過(guò)程中PCD和IC產(chǎn)生的隨機(jī)數(shù)不參與密鑰協(xié)商過(guò)程,第三方無(wú)法獲得用于密鑰協(xié)商的隨機(jī)數(shù),這既保護(hù)了會(huì)話密鑰熵,又無(wú)法進(jìn)行重放攻擊,所以改進(jìn)的PACE協(xié)議是安全的。
本文介紹了PACE協(xié)議,并深入研究了PACE協(xié)議存在的一些安全問(wèn)題,針對(duì)這些問(wèn)題提出了改進(jìn)的PACE協(xié)議方案。隨著技術(shù)的進(jìn)步,目前的安全機(jī)制也逐漸暴露不足。本文提出改進(jìn)的PACE協(xié)議方案,在兼容最新國(guó)際通用技術(shù)標(biāo)準(zhǔn)的基礎(chǔ)上支持了國(guó)密算法,在算法層面保證了協(xié)議的安全,豐富了安全算法體系內(nèi)容,為提升eMRTD安全自主可控水平打下了基礎(chǔ),對(duì)提高eMRTD的安全性有重要意義,對(duì)于其他證件安全機(jī)制的研究也有很好的借鑒意義。