張利華,沈友進(jìn)
(華東交通大學(xué)電氣與電子工程學(xué)院,江西 南昌 330013)
基于ECC和指紋USBKey的身份認(rèn)證協(xié)議
張利華,沈友進(jìn)
(華東交通大學(xué)電氣與電子工程學(xué)院,江西 南昌 330013)
分析了現(xiàn)有網(wǎng)絡(luò)身份認(rèn)證方案的不足,給出了一種指紋識別技術(shù)與USBKey技術(shù)相結(jié)合的身份認(rèn)證方案。利用載有指紋特征的指紋USBKey改進(jìn)現(xiàn)有的USBKey認(rèn)證技術(shù)。利用橢圓曲線密碼算法ECC(elliptic curve cryption),提高身份認(rèn)證協(xié)議的安全性。采用挑戰(zhàn)與應(yīng)答的認(rèn)證機制,實現(xiàn)了雙向身份認(rèn)證。使用含指紋特征的數(shù)字證書,防止非法用戶篡改指紋特征。給出的身份認(rèn)證協(xié)議實現(xiàn)了USBKey對用戶權(quán)限的驗證及遠(yuǎn)程服務(wù)器對用戶身份的實體認(rèn)證。能夠有效抵御竊聽攻擊、假冒攻擊、重放攻擊及DoS攻擊。
身份認(rèn)證;USBKey;指紋;橢圓曲線密碼算法
遠(yuǎn)程身份認(rèn)證是保障網(wǎng)絡(luò)安全的重要手段。常見的身份認(rèn)證方式有靜態(tài)口令認(rèn)證、動態(tài)口令認(rèn)證、智能卡認(rèn)證、USBKey認(rèn)證及生物認(rèn)證。靜態(tài)口令認(rèn)證易遭受口令猜測攻擊與字典攻擊,且口令明文傳輸易被竊聽[1]。動態(tài)口令認(rèn)證,由于時間漂移的存在導(dǎo)致時間機制的失步和維護(hù)事件同步的復(fù)雜性[2]。智能卡認(rèn)證存在智能卡丟失/復(fù)制攻擊,且智能卡的加解密計算能力有限[3-4]?,F(xiàn)有的基于USBKey的身份認(rèn)證協(xié)議,使用PIN碼對USBKey的使用權(quán)限進(jìn)行驗證,然而一旦用戶的PIN碼被盜或被木馬竊取,則非法入侵者將會輕而易舉地控制USBKey進(jìn)行身份認(rèn)證[5]。Ge Xiaomin等[6]提出了一種基于指紋特征的身份認(rèn)證,但是該方案將指紋特征在不安全的網(wǎng)絡(luò)上傳輸,這會使得非法入侵者在網(wǎng)絡(luò)傳輸過程中,竊取指紋圖像,進(jìn)行重放攻擊。為此,學(xué)者們提出了一些改進(jìn)措施,將靜態(tài)/動態(tài)口令認(rèn)證、智能卡認(rèn)證、USBKey認(rèn)證及生物認(rèn)證等方法融合,形成多因子身份認(rèn)證,增加身份認(rèn)證協(xié)議的安全性,如文獻(xiàn)[7-9],但由于身份認(rèn)證的復(fù)雜性與網(wǎng)絡(luò)攻擊的多樣性,簡單物理融合的認(rèn)證方案,并不能完全解決網(wǎng)絡(luò)身份認(rèn)證的難題。
針對網(wǎng)絡(luò)身份認(rèn)證中存在的問題,提出一種基于ECC(elliptic curve cryptography)密碼算法的指紋USB?Key身份認(rèn)證方案。通過將含有指紋特征的數(shù)字證書嵌入USBKey,利用指紋代替PIN碼驗證USBKey的使用權(quán)限,且將指紋融入用戶遠(yuǎn)程身份認(rèn)證。通過ECC對身份認(rèn)證中的交互信息進(jìn)行加密,保障數(shù)據(jù)的傳輸安全。采用挑戰(zhàn)—應(yīng)答認(rèn)證機制,融合指紋與USBKey身份認(rèn)證技術(shù),實現(xiàn)雙因子的雙向認(rèn)證,提高網(wǎng)絡(luò)身份認(rèn)證的安全性。
ECC是一種基于橢圓曲線離散對數(shù)難題的密碼算法,比傳統(tǒng)的對稱密碼算法AES安全性高[10]。比目前使用廣泛的基于大數(shù)因式分解難題的RSA密碼算法,有著明顯的安全優(yōu)勢,并且在同等的安全保密能力下,ECC的密鑰長度比RSA密鑰長度要小得多,從而運算速度更快、效率更高。ECC密碼算法是利用橢圓曲線E(Fq)(q>3)上階為n的基點G,選擇私鑰x(x<n),計算公鑰K=xG。利用公私鑰對可進(jìn)行加解密簽名運算。
指紋USBKey身份認(rèn)證方案,是將ECC密碼算法、指紋識別技術(shù)與USBKey技術(shù)相結(jié)合,構(gòu)造新型的指紋USBKey。指紋USBKey是一種集指紋傳感器、指紋處理芯片、信息安全芯片、內(nèi)嵌COS(chip operation system)等的USB接口設(shè)備。指紋傳感器與指紋處理芯片構(gòu)成指紋USBKey的指紋處理模塊,信息安全芯片及內(nèi)嵌COS構(gòu)成信息安全模塊,其結(jié)構(gòu)如圖1所示。
圖1 指紋USBKeyFig.1 Fingerprint USBKey
指紋USBKey內(nèi)置ECC加密簽名算法,存儲含指紋特征的數(shù)字證書、用戶信息及用戶私鑰。指紋USB?Key可用于數(shù)字簽名與加解密計算。由于指紋USBKey存儲的私鑰保存于USBKey密鑰存儲區(qū)內(nèi),不能導(dǎo)出USBKey,所有的加解密簽名運算都在USBKey中進(jìn)行,保證了私鑰的安全。
利用指紋特征改進(jìn)傳統(tǒng)USBKey采用PIN碼保護(hù)的方式,防止PIN碼被盜或被木馬竊取,使得USBKey與用戶實體身份構(gòu)成一一對應(yīng)關(guān)系,實現(xiàn)USBKey對用戶的實體驗證。并且利用含指紋特征的數(shù)字證書證書,實現(xiàn)遠(yuǎn)程服務(wù)端對用戶的實體認(rèn)證。
為了使用戶的指紋特征不被篡改或復(fù)制,USBKey的公鑰與持有者身份綁定,需通過可信認(rèn)證中心生成含紋特征的數(shù)字證書。在USBKey初始化時,將數(shù)字證書固化在USBKey中。含指紋特征的數(shù)字證書含有用戶某手指的指紋特征(記為Mark),指紋特征Mark既用于USBKey使用權(quán)限的驗證,又用于遠(yuǎn)程身份認(rèn)證,具體作用流程如下:
1)指紋特征代替PIN碼,實現(xiàn)USBKey對用戶的實體身份驗證。每當(dāng)用戶使用USBKey時,用戶必先輸入指紋,利用指紋處理芯片生成指紋特征,與指紋特征Mark進(jìn)行匹配。特征匹配成功后,用戶才有USBKey的使用權(quán)限。
2)利用指紋特征證書,實現(xiàn)遠(yuǎn)程服務(wù)端對用戶的實體認(rèn)證。當(dāng)且僅當(dāng)用戶獲得USBKey的使用權(quán)限,USBKey才釋放與指紋特征證書相對應(yīng)的指紋特征序列號fid,用于遠(yuǎn)程身份認(rèn)證。
遠(yuǎn)程身份認(rèn)證的主體包括用戶(記為User)、指紋USBKey及遠(yuǎn)程服務(wù)端的訪問控制中心(記為AS)。AS負(fù)責(zé)用戶注冊、證書簽發(fā)、以及對用戶進(jìn)行身份認(rèn)證。只有通過身份認(rèn)證的用戶,才能訪問服務(wù)器端。本協(xié)議包括用戶注冊申請階段與身份認(rèn)證階段。
假設(shè)AS在ECC密碼算法下,輸出其密鑰對(xas,Kas),并公開公鑰Kas、單向強安全Hash函數(shù)h(·)。所有注冊用戶均可獲得Kas及h(·)。AS維護(hù)由USBKey唯一序列號Numx組成的USBKey序列表Ux。
1)USBKey利用內(nèi)置的ECC密碼算法,生成一對密鑰(xu,Ku),并將私鑰xu保存在USBKey中的私鑰存儲區(qū),私鑰將無法改寫或?qū)С鯱SBKey。User利用指紋USBKey輸入指紋圖像,并提取指紋特征Mark。USB?Key計算C1=EKas[h(Mark)||Mark]||Ku||Numi||h(xu),其中Numi為USBKey的唯一序列號。USBKey將C1發(fā)送至AS。
2)AS接收到C1后,利用其私鑰解密C1,驗證Numi的真實性,若Numi不屬于某個USBKey序列表Ui,則終止注冊。若Numi真實合法,則AS頒發(fā)由Mark、指紋序列號fid、Ku、Numi及AS的數(shù)字簽名Singas組成的數(shù)字證書,即Certi=EKu[Mark||fid]||Ku||Numi||Singas。AS將h(fid)、h(xu)及Certi添加到序列表Ui中,作為用戶標(biāo)識。為了對指紋序列號fid的安全保密,AS銷毀fid。最后AS將Certi發(fā)送給用戶的USBKey。USBKey將Certi下載至USBKey的數(shù)字證書存儲區(qū)。注冊階段完成。
遠(yuǎn)程身份認(rèn)證具體過程如下:
1)User請求接入服務(wù)器端時,將指紋USBKey插入PC機的USB接口,并利用USBKey的指紋傳感器,輸入指紋圖像。USBKey獲取用戶的指紋特征,與Certi中的指紋特征模板Mark比較,若指紋特征不一致,則終止身份認(rèn)證。否則用戶取得該指紋USBKey的使用權(quán),用于遠(yuǎn)程身份認(rèn)證。用戶取得USBKey的使用權(quán)后,USBKey計算C2=EKas{Exu[Numi,n]}||Numi,其中n為隨機數(shù)。USBKey將C2發(fā)送給AS。
2)AS接收到C2后,利用Numi,查找到User的序列表Ui,獲取User的公鑰Ku,并利用自己的私鑰xas解密C2。得到隨機數(shù)n,計算C3=EKu{Exas[h(xu)||n||c]},其中c為與n不同的隨機數(shù)。AS將C3發(fā)送給USBKey。
3)指紋USBKey接收到C3后,利用自己的私鑰xu及AS的公鑰Kas解密C3,得到h'(xu)、n'及c。USBKey驗證h'(xu)是否等于H=h(xu),n'是否等于n,若兩者驗證不都相等,則AS未通過身份認(rèn)證,終止此次身份認(rèn)證。否則AS通過身份認(rèn)證,USBKey計算C4=EKas[h(fid)||c||r]||Numi(其中r為不同于c的隨機數(shù)),將C4發(fā)送給AS。
4)AS接收到C4后,利用自己的私鑰xas解密C4,得到h'(fid)、c'及r。驗證h'(fid)是否等于h(fid),驗證c'是否等于c,若兩者驗證不都相等,則指紋USBKey未通過身份認(rèn)證,即用戶User未通過身份認(rèn)證。否則指紋USBKey通過身份認(rèn)證,即用戶通過身份認(rèn)證。至此,實現(xiàn)了雙向身份認(rèn)證,本次身份認(rèn)證過程結(jié)束。
1)抗竊聽攻擊。假設(shè)攻擊者C監(jiān)聽USBKey與AS的認(rèn)證信息。在遠(yuǎn)程身份認(rèn)證階段的過程1)和3)中,攻擊者監(jiān)聽到C2=EKas{Exu[Numi,n]}||Numi或C4=EKas[h(fid)||c||r]||Numi,但由于C缺乏AS的私鑰xas,所以根本無法進(jìn)行解密運算,無法進(jìn)行攻擊。在認(rèn)證階段2)中,攻擊者C監(jiān)聽到C3=EKu{Exas[h(xu)||n||c]},但由于C缺乏指紋USBKey的私鑰xu,根本無法進(jìn)行解密運算,所以攻擊者C無法達(dá)到竊聽攻擊的目的。
2)抗重放攻擊。由于指紋USBKey與AS進(jìn)行身份認(rèn)證時,認(rèn)證信息都使用了隨機數(shù),保證了信息的新鮮性,攻擊者無法進(jìn)行重放攻擊,當(dāng)攻擊者獲取到C2、C3或C4后,進(jìn)行重放時,由于C2、C3及C4都插入隨機數(shù),收到消息的認(rèn)證主體對隨機數(shù)進(jìn)行驗證判定,使得該攻擊方式無效。
3)抗假冒攻擊。攻擊者C在指紋USBKey與AS的身份認(rèn)證中,假冒認(rèn)證實體USBKey或AS,但由于攻擊者C沒有認(rèn)證雙方的私鑰,所以無法進(jìn)行假冒攻擊進(jìn)行身份認(rèn)證。當(dāng)攻擊者C假冒指紋USBKey時,發(fā)起與AS的身份認(rèn)證,由于C無User的指紋,則無法使用指紋USBKey,更無法使用指紋特征完成與AS的身份認(rèn)證。當(dāng)攻擊者假冒AS時,可以獲取C2=EKas{Exu[Numi,n]}||Numi,但由于沒有AS的私鑰,也無法得到n,更無法利用n進(jìn)行身份認(rèn)證。
4)抗Dos攻擊。在認(rèn)證階段過程1)中,所有發(fā)向AS的認(rèn)證請求,必須包含正確的指紋USBKey序列號Numi及正確的私鑰xu對n的加密,否則AS拒絕本次認(rèn)證會話,有效抵御Dos攻擊。同樣,在認(rèn)證過程4)中,AS接收到C4=EKas[h(fid)||c||r]||Numi,只有解密出的C4含有正確的h(fid)及隨機數(shù)c,AS才認(rèn)證User合法,通過身份認(rèn)證,否則立即關(guān)閉認(rèn)證會話,抵御DoS攻擊。
將指紋識別技術(shù)與USBKey技術(shù)相結(jié)合,利用ECC密碼算法對認(rèn)證信息進(jìn)行加密,構(gòu)造含指紋特征的數(shù)字證書存儲在USBKey中,形成雙因子身份認(rèn)證,解決了現(xiàn)有身份認(rèn)證方案存在的缺陷。利用挑戰(zhàn)與應(yīng)答的認(rèn)證機制,實現(xiàn)用戶與服務(wù)器端的雙向認(rèn)證。指紋特征代替USBKey的PIN碼能有效抵御因PIN被盜帶來的口令攻擊行為,實現(xiàn)了USBKey對用戶的驗證。利用指紋特征序列號fid避免了指紋特征直接在開放的網(wǎng)絡(luò)中直接傳輸帶來的安全威脅,實現(xiàn)了遠(yuǎn)程服務(wù)端對用戶的生物認(rèn)證。指紋USBKey存儲用戶私鑰,保障了用戶私鑰的安全性。構(gòu)建含指紋特征的數(shù)字證書,能防止攻擊者篡改USBKey中的指紋特征進(jìn)行假冒攻擊。經(jīng)安全性分析,本方案有較高的安全性。
[1]方恩博,劉嘉勇,肖豐霞.一種適于受限資源環(huán)境的遠(yuǎn)程用戶雙向身份鑒別方案[J].四川大學(xué)學(xué)報:工程科學(xué)版,2011,43(5):140-145.
[2]劉瀟,劉巍然,李為宇.一種改進(jìn)的動態(tài)口令生成算法及重同步方案[J].計算機研究與發(fā)展,2012,49(12):2611-2618.
[3]LI CHUNTA,HWANG MINSHIANG.An efficient biometrics-based remote user authentication scheme using smart cards[J].Journal of Network and Computer Applications,2010(33):1-5.
[4]余卿斐,楊曉元,周宣武.基于ECC的遠(yuǎn)程用戶智能卡認(rèn)證方案[J].計算機工程,2009,35(5):142-143.
[5]陳學(xué)禮,馮姝雯.基于USBKEY的身份管理與認(rèn)證系統(tǒng)的研究及實施[J].信息系統(tǒng)工程,2013,20(1):74.
[6]GE XIAOMIN,WU CUIHONG.Analysis and research for multi-mode identity authentication of E-commerce[C]//Proceedings of 2010 The 3rd International Conference on Computational Intelligence and Industrial Application,Wuhan:Springer-Verlag,2011:507-513.
[7]劉懷蘭,侯昕,王佳.改進(jìn)的基于USBKey的動態(tài)身份認(rèn)證方案[J].華中科技大學(xué)學(xué)報,2010,38(11):41-43.
[8]鄭建德,鄭杭杰,楊靜.一種口令、令牌與生物認(rèn)證技術(shù)通用集成框架[J].廈門大學(xué)學(xué)報:自然科學(xué)版,2011,50(1):42-46.
[9]黃朝陽.基于指紋和智能卡的PKI雙向認(rèn)證系統(tǒng)[J].計算機系統(tǒng)應(yīng)用,2012,21(10):198-200.
[10]殷愛菡,王勝凱.基于改進(jìn)的AES算法的EPON安全方案研究[J].華東交通大學(xué)學(xué)報,2013,30(4):35-39.
A Novel User Authentication Scheme Based on ECC and Fingerprint USBKey
Zhang Lihua,Shen Youjin
(School of Electrical and Electronic Engineering,East China Jiaotong University,Nanchang 330013,China)
Network user authentication schemes are analyzed in this paper,and then a new authentication model combining the fingerprint recognition technology with USBKey technology is proposed,which uses fingerprint US?BKey with fingerprint characteristics to improve the existing USBKey authentication.The ECC(Elliptic Curve Cryptography)algorithm is utilized to improve the security of user authentication protocol.The challenge/response authentication mechanism is adopted to achieve the mutual authentication.The digital certificate with fingerprint characteristic is exploited to prevent unauthorized users from tampering with fingerprint characteristics.The user authentication scheme presented in this paper may judge the user authority by USBKey,realize the remote server authentication,and effectively resist the eavesdropping attack,impersonation attack,replay attack and DoS attack as well.
user authentication;USBKey;fingerprint;ECC(elliptic curve cryptography)algorithm
TP309
A
1005-0523(2014)02-0095-04
2013-11-06
國家863計劃項目(2006AA04A134)
張利華(1972—),男,副教授,博士,主要研究方向為電氣信息技術(shù),通信網(wǎng)絡(luò)信息安全。