翟建東,張翔立,周培源,侯 昕,劉怡晨
?
基于USBkey的虛擬實驗平臺動態身份認證方案設計及實現
翟建東,張翔立,周培源*,侯昕,劉怡晨
(華中科技大學 信息與系統技術研究所,湖北 武漢 430074)
本文提出了一種基于USBkey的動態身份認證方案,該方案利用公鑰密碼算法和USBKey的硬件保護特性,使密鑰能夠安全方便的分發和保存,避免了使用時間戳帶來的重放攻擊的潛在風險,并能抵抗假冒攻擊和口令攻擊。該動態身份認證方案很好地滿足了虛擬實驗平臺身份認證系統的實際需求。
身份認證;公鑰算法;USBkey
虛擬實驗平臺運行在開放的網絡環境中,存在著相當數量的安全漏洞和安全威脅。因此,對平臺的訪問者進行合法的身份認證尤其關鍵。虛擬實驗平臺的身份認證系統對平臺環境中的學校、學生、實驗資源提供方之間的客戶關系實現完善的信用體系管理和統一的認證管理,實現對平臺的用戶、角色其權限的統一管理。
在現有的實際應用中,常用的身份認證方式主要有以下幾種:
(1)基于用戶名和密碼的身份認證:隨著網絡技術的迅速發展,由于用戶名和密碼均是靜態數據,由于其在網絡傳輸過程中是以明文形式,很容易被木馬和網絡監聽設備截獲,因此這種認證方式是極不安全的。
(2)基于數字證書的身份認證:身份認證系統利用用戶的數字證書來實現對用戶的身份識別與權限控制,用戶數字證書是由第三方頒發用于代表用戶的身份,數字證書保存在USB KEY中,可以實現移動辦公。同時,由于與數字證書對應的用戶私鑰保存在USB KEY中不能被導出,保證身份認證的安全。
(3)基于生物特征的身份認證:生物識別技術利用人的生物特征,比如指紋和聲音等來進行身份識別,其代價一般較高。
2.1利用ELGamal數字簽名方案生成公私鑰對
ELGamal數字簽名方案中公私鑰的生成過程簡述如下[1]:設p是一個大素數,g為GF(p)域的一個本原元素,p和g公開。簽名者隨機選擇一個密鑰x作為私鑰,這里x∈(1,p-1),且gcd(x,p-1)=1,公鑰y=gx mod p。
2.2身份認證協議設計
該方案包括三個階段:初始化階段、申請USBKey階段和認證階段。
2.2.1初始化
在本文方案中,設計存在一個認證權威CA。CA選擇一個大素數p和GF(p)域的一個本原元素g,選擇一個安全Hash函數h(*)。CA選擇一個隨機數x作為其私鑰,滿足x∈(1,p-1) ,且gcd(x,p-1)=1,CA公鑰y=gx mod p,{h(*)、p、g、y}作為CA的安全參數,保存在公共文件中,所有用戶均可從該公共文件中獲得這些參數。服務器AS也按照類似方法分別生成其公鑰pkAS和xAS,將xAS安全保存并公開pkAS,所有注冊用戶均可獲得其公鑰pkAS。
2.2.2申請USBKey
(1)每一個用戶Ui選擇一個隨機數xUi作為私鑰,滿足xUi∈(1,p-1),且gcd(x,p-1)=1,從CA的公共文件中獲得p、g和,計算用戶公鑰pkUi≡gxi mod p,計算HU=h(Uid)并公開pkUi,Uid為用戶身份標識。
(2)USBKey計算HU=h(Uid),向服務器AS提交用pkAS加密的EpkAS (HU,h(pwi)),pwi為用戶口令。AS建立Uid序列表,存儲形式如表a,收到EpkAS (HU,h(pwi))后用解密得到HU,并添加入Uid序列表中,設置對應的N值為初始值null,N用來建立HU計數器,計算h(Uid)的出現頻率。CA將{ h(*)、pkAS、pkUi、xUi、HU、h(pwi)}寫入USBKey。
2.2.3認證階段
(1)用戶插入USBKkey,輸入Uid和pwi,USBKey計算h(Uid)和h(pwi)并驗證,若通過,則U向AS發送EpkAS (h(Uid),N1),N1為隨機數。
(2)AS收到EpkAS (h(Uid),N1)并解密得到
(3)AS產生隨機數rAS,計算HAS=h(rAS),SAS(rAS),其中SAS(rAS)為AS用其私鑰xAS加密rAS結果。AS向Ui發送用用戶公鑰pkUi 加密的EpkUi (HAS,SAS(rAS))。U收到EpkUi (HAS,SAS(rAS))后,用xUi解密得到HAS和SAS(rAS),再用pkAS對SAS(rAS)運算得到rAS,并哈希得h(rAS),判斷h(rAS)?=HAS,若相等則認為服務器身份合法,為目標服務器,否則終止會話。
3.1假冒攻擊
(1)攻擊者冒充服務器AS:在認證階段的步驟③中,攻擊者即使截獲到EpkUi (HAS,SAS(rAS)),由于解密所需的用戶私鑰xUi安全的存儲在客戶端的USBKey中,并沒有在網絡間傳輸,由于USBKey的硬件不可讀性,攻擊者無法從Key內導出用戶xUi,因而無法解密EpkUi (HAS,SAS(rAS)),冒充服務器攻擊不能進行[2]。
(2)攻擊者冒充用戶:當非法用戶,即沒有合法Uid的攻擊者,因為在網絡傳輸中的Uid均經過哈希運算和公鑰加密,攻擊者無法獲得對應的私鑰而不能解密,而Uid在AS端也以h(Uid)的形式保存,攻擊者即使竊取h(Uid),由于Hash為單向運算也不能得到Uid,無法冒充合法用戶;當一合法用戶冒充另外一合法用戶時,可能截獲AS發送的EpkUi (HAS,SAS(rAS)),但由于沒有對應的私鑰,不能恢復HAS,因為無法攻擊。
3.2口令猜測攻擊
口令猜測攻擊可分為在線口令猜測攻擊和離線口令猜測攻擊[3]。由于USBKey的PIN碼保護,可以限定口令的輸入次數,一旦超過限定值即可鎖定USBKey,這樣可以防止因為USBKey丟失而造成的在線口令猜測攻擊;用戶的口令pwi全部經過單向Hash運算存儲在USBKey中,攻擊者無法獲得pwi明文,因而無法進行離線口令猜測攻擊。
3.3重放攻擊
本方案中,網絡傳輸的隨機數rUi、rAS和N1,均經過Ui或AS 的公鑰加密,攻擊者因無法獲得私鑰而無法解密來進行隨機數的重放攻擊。AS端的Uid計數器中,雖然N1為明文保存,但攻擊者即使截獲了EpkAS (h(Uid),N1),也無法獲得明文N1來置換已經存在的該用戶對應的N1,重放攻擊無法進行。
3.4Dos攻擊
AS端的Uid計數器中,AS可以記錄前后兩次隨機數N到達的時間,求出該h(Uid)的到達頻率,若小于某個經驗值f次/秒,可拒絕該用戶繼續登錄,防止Dos攻擊。記錄N到達時間不需要網絡間設備的時鐘同步,因而不需要占用額外開銷。
依據本文提出的基于USBkey動態身份認證方案,同時結合虛擬實驗平臺身份認證系統的實際需求,設計并實現了平臺的身份認證系統,該身份認證系統采用B/S架構,實現對平臺合法用戶與非法用戶的訪問控制,同時實現對用戶的權限控制。
4.1平臺身份認證系統的架構
根據平臺的身份認證需求,身份認證系統的框架圖如圖1所示:

圖1 身份認證系統集成框架圖

圖2 身份認證和訪問控制流程圖
(1)在用戶B/S架構系統Web服務器上,配置服務器的可信CA為用戶根CA,只有平臺CA認證體系下的用戶證書才能訪問平臺系統[4];
(2)平臺用戶端(即用戶使用的瀏覽器)必須從平臺CA認證系統申請用戶證書,才能登錄到平臺系統。申請的用戶證書代表了用戶的身份,登錄時必須提交用戶證書;在用戶向平臺提交敏感數據,如成績時,必須使用該用戶證書的私鑰進行數字簽名;為了實現用戶的移動辦公,保證用戶證書及其私有的安全,采用USB KEY來保存用戶的證書和私鑰;
(3)平臺系統服務器上配置服務端功能模塊——CVM(證書解析模塊),作為服務器的功能插件安裝在平臺系統服務器上,解析用戶證書,獲用戶信息,根據用戶信息查詢平臺系統配置的訪問控制列表(ACL),獲取用戶的訪問權限,實現平臺的訪問控制;
(4)用戶端配置功能模塊——PTA(個人信任代理),以COM控件的方式提供,配置在需要保證數據安全的Web頁面上,隨Web頁面下載并注冊,它使用用戶證書的私鑰對提交的表單數據進行數字簽名;
(5)平臺系統服務器上配置服務端功能模塊——SVM(簽名驗證模塊),以插件的方式提供給平臺系統服務器,實現對用戶提交的數字簽名的驗證;
4.2平臺身份認證系統的工作流程
根據虛擬實驗平臺的實際需求,采用基于數字證書+數字簽名的身份認證系統方案,用戶登錄平臺系統的流程如圖2所示:
(1)用戶在計算機中插入保存有用戶證書的USB KEY,輸入用戶名與密碼進行平臺系統登錄;
(2)平臺系統將用戶名與密碼與后臺數據庫比對,若正確,則向用戶端發送平臺服務器產生的隨機數[5]。
(3)用戶端瀏覽器利用PTA模塊,利用USB KEY中的私鑰對隨機數進行數字簽名
(4)用戶選擇保存在USB KEY上的用戶證書以及隨機數的簽名結果,進行提交;
(5)平臺系統服務器調用簽名驗證模塊SVM中的函數SVM.verifySignature()驗證用戶對隨機數的簽名,調用證書驗證模塊CVM中的函數CVM. VerifyCertificate()對證書的有效性進行驗證。如果驗證成功返回結果result=0,否則返回結果result=1。
(6)用戶身份驗證通過后,平臺服務器解析用戶證書,調用證書解析模塊中的cert.getSubjectNames()解析出證書的主題信息,包括證書序列號、用戶平臺代碼等。獲得用戶信息,根據用戶信息,查詢平臺系統的訪問控制列表(ACL),獲取用戶的訪問授權;
(7)獲得用戶的訪問權限后,用戶可以訪問到相應權限內請求的平臺資源,身份認證和訪問控制流程結束,用戶成功登錄平臺系統。
本文設計了一種基于USBkey的動態身份認證方案,詳細介紹了方案的實現,并對公開網絡環境中的各種攻擊手段進行了安全性分析,此方案能較好地抵御了現有的各種攻擊手段,從而保證了身份認證系統的安全。同時根據虛擬實驗平臺對身份認證系統的需求,依據本文提出的方案,設計并實現了平臺的身份認證系統,滿足了虛擬實驗平臺的安全身份認證需求。
[1] 荊繼武,林璟鏘,馮登國. PKI技術[M]. 北京:科學出版社,2008.
[2] 張席,林強.一種基于不可否認數字簽名的用戶認證方案[J].計算機工程,2000,26(8):146-147.
[3] 沈昌祥.基于可信平臺構筑積極防御的信息安全保障框架[J].信息安全與通信保密,2004, (9):17-19.
[4] 楊宇.基于PKI身份認證技術的研究與實現[D].成都:電子科技大學, 2006.
[5] Chen Y C,Yeh L Y.An efficient nonce-based authentication schemewith key agreement[J].Applied Mathematics and Computation,2005,169(2):982-994.
[6] V.tosic, W.Ma, B.Pagurek. Web service offerings infrastructure-a management Infrastructure for XML web services[J].IEEE/IFIP Network Operations and Management SymPosium,2004.
[7] M Thompson, A Essiari, S Mudumbai. Certificate-based authorization policy in a PKI environment [J]. ACM Transactions on Information and System Security, 2003,6(4):566-588.
[8] Y.Zhao, J.Q.Liu, et al. An Operating System Trusted Security Model for Important Sensitive Information System[C]. In the proceedings of IsDPE 2007, 2007. 465-468.
[9] Li MeiHong, Liu JiQiang. USB key-based approach for software Protection[J]. IEEE,Digital Object Identifier:10.1109/ ICIMA.2009. 5156582. 2009. 151-153.
[10]Polk.W.T,Hastings.N.E.,MalPani.A. Public key infrastructures that satisfy security goals Internet Computing[J].IEEE, 2003, 7(4): 60-67.
[11]Young-SukShin. Virtual experiment environment’s design for science education[J]. IEEE,2004, v2,n3: 62-67.
[12]Dawei Zhang. Network Security Middlewate Based on USB Key[Z]. IEEE Digital Object Identifier:10.1109/sec.2008. 77-81.
[13]史創明,王立新. 數字簽名及PKI技術原理與應用[J]. 微計算機信息,2005 ,21( 8):122-124.
[14]劉知貴,楊立春,蒲潔,等. 基于PKI技術的數字簽名身份認證系統[J]. 計算機應用研究,2004,(9):158-160.
[15]鐘元生.電子商務信任管理模型研究[M].合肥:中國科學技術大學出版社,2005.
[16]馬曉陽. 基于網絡的虛擬電子實驗室的構建與應用[J].電子科技,2008,(11):72-75.
Design and Implementation of Dynamic Authentication Scheme Based on USBKey for Virtual Experiment Platform
ZHAI Jian-dong, ZHANG Xiang-li, ZHOU Pei-yuan, HOU Xin, LIU Yi-chen
(Institute of Information & System Technology, Huazhong University of Science & Technology, Wuhan Hubei 430074, China)
This paper designs a dynamic authentication scheme based on USBkey. The public key and the USBKey hardware protection make it safe and convenient to distribute and save key. It has avoided the risk of message replay attack, and the disguised attack and password attack are also avoided. It is greatly satisfied with the actual demand of the virtual experiment platform authentication system.
Authentication; Public Key; USBkey
TP309
A
1009-5160(2011)03-0087-04
國家科技支持計劃項目(2008BAH29B00).
*通訊作者:周培源(1965-),男,副教授,研究方向:嵌入式系統與信息安全.