?

基于移動設備的USB Key身份認證方案

2015-12-02 20:40卞雪雯劉健任奕豪
現代電子技術 2015年22期
關鍵詞:身份認證數字證書信息安全

卞雪雯+劉健++任奕豪

摘 要: 提出一種基于移動設備的USB Key身份認證方案,主要用于解決在移動設備端傳統身份認證技術中存在的安全問題。在移動設備端使用USB Key身份認證技術可以很好地提高移動設備對用戶身份認證的安全性。主要從兩方面進行論述:移動設備端是如何獲取USB Key中的數字證書并進行身份認證,從而保證移動設備環境下的安全;移動設備端的用戶是如何進行身份認證,從而保證應用服務的安全性。通過安全性分析和實驗可得出,這種身份認證技術可有效地抵御移動設備端賬戶和服務攻擊。

關鍵詞: USB Key; 身份認證; 信息安全; 數字證書

中圖分類號: TN958?34; TP391.4 文獻標識碼: A 文章編號: 1004?373X(2015)22?0051?04

0 引 言

目前,身份認證技術是信息安全技術領域中一個熱門的研究問題,如何解決傳統身份認證技術中的難題,直接關系到用戶能否在各種應用的服務上得到安全性、可靠性和可用性的保障。USB Key身份認證技術是近年來快速發展的一門身份認證、識別技術[1],它采用軟硬件結合的方式,在各個領域中都得到了廣泛的應用。在移動設備端,現有的身份認證方式已經包含了用戶名密碼、動態口令、USB Key和生物識別等多種身份認證技術。表1是USB Key身份認證技術與各種認證技術基于移動設備端在易用性、安全性、經濟性和可接受性上的比較。生物識別首次應用在了蘋果的iPhone手機上,采用了指紋識別的身份認證技術,這種方式安全性和易用性高,但是經濟成本較高,必須配備一定的硬件予以輔助,推廣程度不是很廣泛。用戶名密碼是每個移動設備端都基本具有的功能,其安全性比較低。動態口令在移動設備端雖然安全性很高,但是易用性較低,給用戶帶來的不便也較明顯。所以基于經濟性、安全性和可靠性的基礎上,選擇了在移動設備端使用USB Key進行身份認證。

表1 身份認證技術對比

基于移動設備的USB Key的身份認證技術可以很好地保證移動設備端以及其應用服務的安全性,主要從兩個方面進行論述:用戶在使用移動端應用服務時,移動設備端是如何識別USB Key,并且如何獲取USB Key中的數字證書進行身份認證;移動設備端的用戶在使用應用服務時是如何對用戶身份進行認證,從而保證應用服務在移動設備環境下的安全性。

1 相關技術

1.1 移動設備

這里使用的移動設備以安卓系統為實驗環境,安卓系統是一種基于Linux的自由及開放源碼的操作系統,作為一種開放式的操作系統,以Linux系統為核心,使用Java作為其主要的編程語言。安卓系統最初主要用于支持智能手機,后逐步擴展到平板電腦及其他領域上,如智能電視、數碼相機以及游戲設備等。

安卓系統在結構上采用分層的架構,分為四個層次,從高到低分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層[2]。安卓具有開源的特性,使得軟件成本問題得到解決,也可以在安卓系統上實現USB Key身份認證技術。

1.2 USB Key身份認證

身份認證是指系統對登錄用戶身份進行驗證的過程,驗證用戶的身份是否合法,是否具有訪問及使用某種資源的權限,保護登陸用戶的物理身份與數字身份相對應[3]。USB Key是數字證書和用戶密鑰的安全載體,USB Key身份認證技術與傳統的用戶名加口令的認證方式相比較,其安全性和保密性更強;與生物特征識別技術相比較,USB Key身份認證技術操作簡單,技術成熟,推廣應用成本低。簡單易用、便于攜帶、安全可靠是USB Key最顯著的特點[4?5]。

每一個USB Key都具有硬件、PIN碼保護,PIN碼和硬件構成了用戶使用USB Key的兩個必要因素,即所謂“雙因子認證”[6]。用戶只有同時取得了USB Key和用戶PIN碼,才可以登錄系統。即使用戶的PIN碼被泄漏,只要用戶持有的USB Key不被盜取,合法用戶的身份就不會被仿冒;如果用戶的USB Key遺失,拾到者由于不知道用戶的PIN碼,也無法仿冒合法用戶的身份。從而最大限度的保護了合法用戶的權利[7]。USB Key具有一定的安全數據存儲空間,可以存儲用戶密鑰、數字證書等秘密數據,對該存儲空間的訪問操作必須通過特定的程序來實現,且其中存儲的用戶私鑰是不能導出的,這就杜絕了非法用戶盜取用戶密碼和仿冒身份的可能。通過與智能卡技術相結合,嵌入了智能卡芯片的USB Key不但可以存儲數據,還可以在USB Key內進行加/解密運算和生成隨機密鑰,從而密鑰不必出現在客戶端內存中,降低了密鑰在客戶端泄漏的可能性[8]。USB Key身份認證系統主要有兩種應用模式,一種模式為沖擊?響應的認證模式;另一種模式為公鑰基礎設施,即PKI體系認證模式[9?10]。

2 USB Key身份認證

2.1 基于移動設備的USB Key身份認證方案

為了提高移動設備端身份認證的安全性,設計了一種適用于移動設備端的USB Key身份認證方案。用戶在訪問移動設備應用前首先需要進行身份認證,認證通過后,認證服務器通過匹配信息,決定用戶是否有權利調用該移動設備應用服務?;赨SB Key的移動設備身份認證模型,如圖1所示,保證了用戶在使用移動設備應用時能夠具有惟一的身份標識,并通過這一身份標識保證用戶身份的合法性得到驗證,從而保證了移動設備應用服務的安全性。

移動設備應用服務的身份認證具體過程如下:

(1) USB Key通過轉換接口與安卓設備相連接,移動設備首先對USB Key進行識別,識別通過后,移動設備提取存儲在USB Key中的應用程序PID并驗證。

(2) 請求用戶輸入PIN碼,驗證通過后提取USB Key中存儲的數字證書、私鑰信息PK和對稱密鑰K,同時USB Key產生一個非重復隨機數R標記此次會話,通過3DES加密算法加密應用服務信息和非重復隨機數R,3DES的對稱密鑰K存儲于USB Key中,通過私鑰PK簽名加密對稱密鑰K。

(3) 根據PKCS#7標準將原始信息(即非重復隨機數R和密文)、簽名后的密文、加密后的密文信息以及數字證書打包發送給認證服務器。

(4) 認證服務器驗證證書有效性并使用證書中的公鑰對密文進行解密,得到3DES對稱密鑰K,并使用3DES解密密文。

(5) 將解密后的信息與原始信息進行匹配,相同則進行該移動設備應用服務的調用。

從上述過程中可得出,認證過程主要分兩部分進行:移動設備端的加密以及數字簽名過程和認證服務器端的身份驗證過程。

2.2 移動設備端

移動設備端在向認證服務器端發送應用認證請求時,首先需要檢測USB Key是否插入,當USB Key成功與移動設備相連接,移動設備會對USB Key進行識別,識別通過后,需要移動設備確認需要進行身份認證的應用程序,提取USB Key中存儲的應用程序PID,并進行識別驗證。驗證后將應用程序信息通過USB Key中加密算法進行加密,提取USB Key中的數字證書,并打包密文和證書發送至認證服務器端,請求調用應用程序。認證服務器端在接收到認證請求后進行認證,認證通過后使合法用戶調用移動設備應用程序。移動設備端請求應用認證的流程圖如圖2所示。

移動設備端主要包括加密模塊、證書獲取模塊和進程監控模塊3部分。

證書獲取模塊:主要負責提取存儲在USB Key中數字證書的相關信息。移動設備端需要請求數字證書對用戶身份進行標識,并實現私鑰對信息的加密簽名,傳送給認證服務器端。在進程監控模塊讀取到相應應用服務的PID后,移動設備端調用證書獲取模塊提取USB Key中的數字證書信息,保證數字證書信息與應用服務用戶身份信息的對應。

進程監控模塊:主要負責監控移動設備的應用程序服務,這是移動設備端的核心部分,需要負責加密模塊和證書獲取模塊之間信息交流,協調其完成信息處理。在設備檢查到USB Key的連接狀態后,讀取USB Key的PID識別應用程序服務,識別成功后調用證書獲取模塊和加密模塊進行信息處理。

加密模塊:主要負責加密應用服務中的原始認證信息,包括了對認證信息的加密和數字證書信息的加密。對于認證信息和數字證書信息,采用已經發展成熟的對稱加密算法3DES。其中3DES的對稱加密密鑰K使用數字證書中的私鑰SK進行簽名封裝發送至認證服務器端。如果只是單方面采用非對稱性加密算法,有兩種方式:第一種是簽名,使用私鑰加密、公鑰解密,用于讓所有公鑰所有者驗證私鑰所有者的身份并且用來防止私鑰所有者發布的內容被篡改,但是不用來保證內容不被他人獲得;第二種是加密,用公鑰加密、私鑰解密,用于向公鑰所有者發布信息,這個信息可能被他人篡改,但是無法被他人獲得。這里對于對稱密鑰K使用第一種加密方式[11]。

2.3 認證服務器端

認證服務器中的證書認證模塊在接收到經過PKCS#7處理的報文后,證書驗證模塊對移動設備端提供的數字證書的有效期、證書鏈進行驗證,并檢查證書是否存在于CA證書庫,失敗則直接放棄。在通過數字證書驗證后,認證服務器使用數字證書的公鑰對傳送的密文進行解密處理。將解密后的信息與原始信息進行匹配,如果信息匹配成功,則獲取應用程序服務。認證服務器端驗證流程如圖3所示。認證服務器端主要包括解密模塊和證書驗證模塊2個部分。

證書驗證模塊:主要負責驗證數字證書的有效期、證書鏈等信息。數字證書代表了移動設備端的惟一身份標識,證書驗證模塊通過驗證證書的有效其、證書鏈、是否位列黑名單以確保證書的可靠性和安全性。

解密模塊:主要負責解密應用的用戶信息和數字證書信息。首先在證書驗證成功后,獲取到證書中的公鑰PK解密3DES加密算法的對稱密鑰K,然后對稱密鑰K解密收到的密文序列,解密應用服務信息和非重復隨機數R。將由對稱密鑰K解密得到的信息與原始信息進行比較,最后認證服務器返回相應信息。

3 安全性分析

隨著移動設備的不斷發展,移動設備簡單易攜、功能強大的特性,使得越來越多的用戶對其青睞有加,移動設備端用戶身份認證的安全性問題也越來越受到關注。對于移動設備而言,普遍的認證方式還僅限于用戶名密碼,給用戶的身份安全性問題帶來極大的風險。移動設備的安全問題主要在于用戶賬戶和應用服務攻擊,而USB Key在經濟許可以內很好地解決了這個問題。

(1) 選擇密文攻擊和密鑰猜測攻擊。移動客戶端與認證服務器端在每次交互式時,USB Key和認證服務器都會產生不同的密鑰(即一對公鑰和私鑰)。這(2) 重放攻擊。移動設備端與認證服務器端進行交互時,USB Key會產生一個非重復的隨機數和時間戳簽名信息。時間戳可以解決時間同步帶來的問題,同時可以保證消息的實時性。當攻擊者實施重放攻擊時,認證服務器端收到消息的時間戳與消息實際的時間戳相差較大,可以判斷消息的不可信。所以本方案可以應對重發攻擊。

(3) 拒絕服務攻擊。認證服務器端的證書驗證模塊可以判斷請求的身份,如果對方不能通過數字證書的校驗,則不給予公鑰。所以本方案可以應對拒絕服務攻擊。

(4) 中間人攻擊。移動客戶端與認證服務器端進行的是雙向證書驗證,攻擊者無法冒充其中之一對認證消息進行查看、修改和轉發等操作。

4 仿真實驗

實驗軟硬件平臺如下:

Phone:SAMSUNG SHV?E120S;OS:Android 4.1.2;USB Key:UKey2000;Server:LENOVO M820E;OS:Windows Sever 2008 R2,Oracle。USB Key身份認證安卓平臺實現效果圖見圖4。

5 結 語

本文提出了一種基于移動設備的USB Key身份認證方案,解決了在移動設備端傳統身份認證方式缺失的安全問題,提高了用戶使用移動設備應用服務時的安全性和可靠性。移動設備應用服務的不斷發展,用戶身份認證所帶來的安全問題也逐漸得到重視,僅靠用戶名密碼的傳統方式已經出現很大的安全漏洞。對于用戶而言,USB Key在移動設備的應用可以對用戶身份信息得到很好地驗證,經濟性也可以接受,但并不簡單易攜。因此,對于移動設備端的身份認證方式還有很多待于探索的領域,何種認證方式既能在帶來安全性的同時,經濟性、易用性、可接受性也能滿足用戶的需求,是移動設備身份認證領域研究的重點。

參考文獻

[1] 吳永英,鄧路,肖道舉,等.一種基于USB Key的雙因子身份認證密鑰交換協議[J].計算機工程與科學,2007,29(5):56?59.

[2] 李培林.安卓系統應用及發展趨勢展望[J].計算機光盤軟件與應用,2012(18):161?162.

[3] 張鑫.USB Key在PKI體系中的應用研究[J].軟件導刊,2013,12(3):39?41.

[4] 汪濤.基于USB Key的遠程身份認證系統的設計與實現[D].武漢:武漢科技大學,2012.

[5] 馮登國.電子商務中的安全認證問題[R].北京:中國科技大學研究生院,1997.

[6] 曹喆,王以剛.基于USB Key的身份認證機制的研究與實現[J].計算機應用與軟件,2011,28(2):284?286.

[7] 王帥,常朝穩,魏彥芬.基于云計算的USB Key身份認證方案[J].計算機應用研究,2014,31(7):2130?2134.

[8] 趙會洋,王爽,魏士偉.網格安全模型中認證策略的研究[J].計算機技術與發展,2010,20(4):171?174.

[9] ADAMS C, LLOYD S.公開密鑰基礎設施:概念、標準和實施[M].馮登國,譯.北京:人民郵電出版社,2001.

[10] 周曉斌,許勇,張凌.一種開放式PKI身份認證模型的研究[J].國防科技大學學報,2013,35(1):171?174.

[11] 王權,楊琳,劉偉,等.基于USB Key的訪問控制方法研究[J].計算機工程與設計,2008,29(11):2727?2729.

猜你喜歡
身份認證數字證書信息安全
保護信息安全要滴水不漏
高校信息安全防護
校園網云盤系統存在的安全問題及對策
基于指紋身份認證的固定通信臺站干部跟班管理系統設計
當心黑客利用數字證書的漏洞
基于數字證書的軍事信息系統安全防護方案
Kerberos身份認證協議的改進
保護個人信息安全刻不容緩
基于USB存儲設備的透明監控系統
管理好系統中的數字證書
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合