摘要:由于互聯(lián)網(wǎng)所具有的廣泛性和開放性,決定了互聯(lián)網(wǎng)不可避免地存在著信息安全隱,進(jìn)行身份認(rèn)證就是必須的安全措施。本論文比較分析了常見的身份認(rèn)證的方式的優(yōu)缺點(diǎn),并在此基礎(chǔ)上討論了USB Key認(rèn)證方式的原理、特點(diǎn),以及PKI體系的認(rèn)證過程,重點(diǎn)上從軟件設(shè)計和硬件設(shè)計兩個角度完成了基于PKI體系下的USB Key認(rèn)證客戶端,對于提高身份認(rèn)證技術(shù)的安全性具有一定的借鑒意義。
關(guān)鍵詞:身份認(rèn)證;UEB Key;PKI體系;認(rèn)證設(shè)計
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2008)23-930-02
Design Research of Authentication Client Based on USB Key under PKI System
ZHOU Hua-xiang
(Changsha Commerce Tourism College, Changsha 410004, China)
Abstract: Due to universality and opening of the Internet,there're many hidden troubles of information security in the network, so, identity authentication has becomed the necessary measure to ensure the security. This paper compared and analyzed the relative merits of common classes of identity authentication, and on the basis of analysis, the authentication principle and its characteristics, and the authentication processing were also discussed, and after that, the identifying technology of USB Key with PKI system was designed from software and hardware detaily. All these design work and theory analysis is significative for enhance the security of the identifying authentication.
Key words: Identity authentication; USB Key; PKI System; Technology design
1 引言
當(dāng)前,隨著計算機(jī)技術(shù)的飛速發(fā)展,利用因特網(wǎng)高科技手段進(jìn)行經(jīng)濟(jì)商業(yè)犯罪的現(xiàn)象已經(jīng)屢見不鮮了,因此,如何采用更加安全的數(shù)據(jù)保護(hù)及加密技術(shù),成為當(dāng)前計算機(jī)工作者的研究熱點(diǎn)與重點(diǎn)。但是很多身份認(rèn)證技術(shù)由于本身算法的漏洞而不穩(wěn)定或可靠,使得很多不法之徒有機(jī)可乘。因此,發(fā)展更加安全的數(shù)據(jù)加密算法和身份認(rèn)證技術(shù),是關(guān)系到社會經(jīng)濟(jì)穩(wěn)定繁榮發(fā)展的關(guān)鍵,如何采用與設(shè)計更加安全的身份認(rèn)證技術(shù),成為當(dāng)前計算機(jī)安全工作的重點(diǎn)。
現(xiàn)今,計算機(jī)及網(wǎng)絡(luò)系統(tǒng)中最常用到的身份認(rèn)證技術(shù)主要有以下幾種:1)用戶名密碼方式認(rèn)證;2)IC卡認(rèn)證;3)動態(tài)口令認(rèn)證;4)生物特征認(rèn)證。
上述幾種身份認(rèn)證方式,或認(rèn)證方式過于簡單,或認(rèn)證成本過高,或使用方法繁瑣,在推廣應(yīng)用上都存在一定的限制因素;USB Key認(rèn)證技術(shù)是一種方便、安全、經(jīng)濟(jì)的身份認(rèn)證技術(shù),它采用軟硬件相結(jié)合、一次一密的強(qiáng)雙因子認(rèn)證模式,很好地解決了安全性與易用性之間的矛盾。
2 相關(guān)原理概述
2.1 PKI體系概述
PKI(Public Key Infrastructure)是一個用公鑰密碼體制來實(shí)現(xiàn)并提供安全服務(wù)的具有通用性的安全基礎(chǔ)設(shè)施,具有可信任的權(quán)威認(rèn)證機(jī)構(gòu)CA,在公鑰加密技術(shù)基礎(chǔ)上實(shí)現(xiàn)證書的產(chǎn)生、管理、存檔、發(fā)放以及證書作廢管理等功能,并包括實(shí)現(xiàn)這些功能的硬件、軟件、人力資源、相關(guān)政策和操作規(guī)范以及為PKI 體系中的各成員提供全部的安全服務(wù)。如實(shí)現(xiàn)通信中各實(shí)體的身份認(rèn)證、數(shù)據(jù)保密性、數(shù)字完整性以及不可否認(rèn)性服務(wù)等。PKI必須具有認(rèn)證機(jī)構(gòu)CA、證書庫、密鑰備份及恢復(fù)系統(tǒng)、證書作廢處理系統(tǒng)、PKI 應(yīng)用接口系統(tǒng)等主要組成部分。
2.2 USB Key認(rèn)證原理
每個USB Key硬件都具有用戶PIN碼,以實(shí)現(xiàn)雙因子認(rèn)證功能。USB Key內(nèi)置單向散列算法(MD5) ,預(yù)先在USB Key和服務(wù)器中存儲一個證明用戶身份的密鑰,當(dāng)需要在網(wǎng)絡(luò)上驗(yàn)證用戶身份時,先由客戶端向服務(wù)器發(fā)出一個驗(yàn)證請求。服務(wù)器接到此請求后生成一個隨機(jī)數(shù)并通過網(wǎng)絡(luò)傳輸給客戶端,客戶端將收到的隨機(jī)數(shù)提供給插在客戶端上的USB Key,由USB Key使用該隨機(jī)數(shù)與存儲在USB Key中的密鑰進(jìn)行帶密鑰的單向散列運(yùn)算(HMACMD5)并得到一個結(jié)果作為認(rèn)證證據(jù)傳送給服務(wù)器,與此同時,服務(wù)器使用該隨機(jī)數(shù)與存儲在服務(wù)器數(shù)據(jù)庫中的該客戶密鑰進(jìn)行HMAC- MD5運(yùn)算,如果服務(wù)器的運(yùn)算結(jié)果與客戶端傳回的響應(yīng)結(jié)果相同,則認(rèn)為客戶端是一個合法用戶。
3 基于PKI體系的USB Key認(rèn)證客戶端的設(shè)計
3.1 總體設(shè)計
本方案基于USB接口,采用高性能的智能卡進(jìn)行設(shè)計,把智能卡固有的安全性能和USB總線的即插即用、總線供電等優(yōu)點(diǎn)結(jié)合起來,集二者之所長,研制出一種攜帶方便的PKI客戶端設(shè)備,集數(shù)據(jù)加密和數(shù)據(jù)存儲兩大功能為一體,在硬件級安全的基礎(chǔ)上完成身份認(rèn)證、密鑰管理、證書存儲等功能。其系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
由圖1的結(jié)構(gòu)可以發(fā)現(xiàn),本論文研究的客戶端硬件模塊由智能卡和USB 讀卡器組成,采用智能卡芯片作為私鑰安全管理的載體,它包括私鑰的安全生成、存儲和使用。智能卡芯片中含有CPU ,可以通過運(yùn)算來產(chǎn)生公私密鑰對,而且還含有一定的存儲空間,可以存儲私鑰和其它用戶資料。USB 讀卡器的主要功能是完成智能卡與主機(jī)的通信。
由于智能卡的存儲空間畢竟有限,對于需要進(jìn)行密碼運(yùn)算的大文件,無法一次完全導(dǎo)入智能卡設(shè)備中,為此,我們將一部分密碼運(yùn)算的功能放在主機(jī)端的軟件模塊,以提高運(yùn)算速度。
總體的設(shè)計思路是私鑰的密碼運(yùn)算必須在智能卡中進(jìn)行,而將一部分有可能對大文件進(jìn)行的運(yùn)算放在主機(jī)上來完成。這樣既保證了私鑰的生成、保存的高度安全性,又利用了主機(jī)容量大、運(yùn)算快的優(yōu)勢。
3.2 系統(tǒng)硬件設(shè)計
3.2.1 智能卡芯片的設(shè)計
智能卡芯片是USB KEY的核心,采用一個高性能的處理器芯片,除了含有一個MCU 外,還集成有專門進(jìn)行密碼算法的協(xié)處理器,通過它可以提高密碼運(yùn)算的速度。在軟件結(jié)構(gòu)上,我們內(nèi)置了一個卡內(nèi)操作系統(tǒng)(COS) 以管理智能卡的所有軟硬件資源。COS 分為四個模塊:傳輸層模塊、文件管理層模塊、安全控制模塊和算法庫。
從整個安全策略、用戶的方便性、產(chǎn)品的創(chuàng)新性等幾點(diǎn)出發(fā),客戶端的智能卡芯片中需要實(shí)現(xiàn)簽名、解密、RSA 密鑰對的產(chǎn)生、私鑰的保存及證書的驗(yàn)證等主要功能。
驗(yàn)證別人的證書,需要通過信任錨來完成。信任錨就是根CA 的公鑰。通過它,我們可以驗(yàn)證在一個PKI 系統(tǒng)中所有的證書。由于主機(jī)的不安全性,如果將信任錨存儲在主機(jī)端,很容易被黑客替換成一個假的信任錨,這樣用戶就無法驗(yàn)證別人證書的真?zhèn)巍3鲇谶@樣的考慮,我們將信任錨存儲在智能卡中,由于智能卡芯片的硬件特性,駐留在里面的程序具有不可修改性,這樣就使數(shù)據(jù)(私鑰) 的保存和使用達(dá)到了硬件的安全級別,大大提高了PKI 系統(tǒng)的安全。
3.2.2 USB芯片的設(shè)計
由于用戶需要通過駐留在主機(jī)上的用戶程序來使用存儲在智能卡中的私鑰,為了使用的方便,我們將硬件模塊設(shè)計成一個目前流行的USB KEY模型,即通過USB 接口來實(shí)現(xiàn)主機(jī)軟件程序與智能卡的通訊。
USB 接口的設(shè)計由一個USB 芯片來實(shí)現(xiàn)。它主要有兩個功能,一是通過USB 協(xié)議完成與主機(jī)的通信;二是完成與智能卡的通訊。由于智能卡與外界的信息交換遵循ISO781623協(xié)議,所以USB 芯片的CPU 必須模擬一個781623 協(xié)議來實(shí)現(xiàn)兩者的通訊。
考慮到用戶在使用客戶端時的不安全性,如:在用戶使用完USB KEY時,可能忘記將它從主機(jī)上拔下來,這時如果遠(yuǎn)程黑客通過駐留主機(jī)的木馬程序獲得了用戶的PIN ,就會在用戶無察覺的情況下,利用USB KEY來對任意的文件進(jìn)行任意次的簽名,從而對合法用戶造成很大損失。為此,我們在USB 芯片上設(shè)計了一個按鍵,每次USB 芯片檢測到簽名操作的命令,便要求用戶手工按鍵,然后再將命令發(fā)送到智能卡里,由智能卡完成簽名運(yùn)算。這樣合法用戶便可以控制簽名次數(shù),將風(fēng)險降到最低水平。
3.2.3 時間芯片的設(shè)計
無論證書還是私鑰,都有一定的生存期,過期后必須申請新的證書和私鑰。要求PKI 用戶以手工操作的方式來定期更新自己的證書是不現(xiàn)實(shí)的,用戶往往忘記自己證書過期的時間,常在認(rèn)證失敗時才發(fā)現(xiàn)問題。為此,我們在USB 芯片上加載了一個時間芯片,用它來識別證書和私鑰過期的時間。
3.3 系統(tǒng)軟件設(shè)計
系統(tǒng)的軟件設(shè)計采用Client/Server模式,一個標(biāo)準(zhǔn)的服務(wù)流程為:客戶機(jī)提出請求,通過USB接口傳輸給USB接口控制器,USB接口控制器通過模擬7816協(xié)議來和智能卡進(jìn)行通信,智能卡的片上操作系統(tǒng)COS收到該請求后,進(jìn)行命令解釋,調(diào)度相應(yīng)的功能模塊進(jìn)行處理,然后將運(yùn)算結(jié)果返回給USB接口控制器,最終傳遞給客戶機(jī)的應(yīng)用程序,完成一次服務(wù)請求。
軟件程序的流程圖如圖2所示。
4 結(jié)束語
USB認(rèn)證設(shè)備體積小巧、功能強(qiáng)大、價格低廉,可提供極高安全等級的認(rèn)證和加密功能,有力地促進(jìn)了PKI系統(tǒng)的實(shí)施,同時,它也可廣泛應(yīng)用于要求個人身份認(rèn)證、識別、數(shù)據(jù)加密、安全存儲等領(lǐng)域,應(yīng)用前景廣泛。目前,對于身份認(rèn)證技術(shù)的研究方興未艾,很多新的認(rèn)證方式與認(rèn)證技術(shù)正在出現(xiàn),為人們的數(shù)據(jù)安全提供更加可靠的安全認(rèn)證與保護(hù)。
展望將來,除了對基于PKI體系的USB Key認(rèn)證方式繼續(xù)探討新的數(shù)據(jù)加密算法外,其他新的認(rèn)證模式也正在興起,如基于生物特征的生物認(rèn)證技術(shù),以及目前處于研究熱潮的基于線上手寫簽名的身份認(rèn)證技術(shù),這些都將是安全性極高的認(rèn)證手段。
參考文獻(xiàn):
[1] 胡道元,閔京華.網(wǎng)絡(luò)安全[M].北京:清華大學(xué)出版社,2004.
[2] 蔡金清,萬振凱.統(tǒng)一口令網(wǎng)絡(luò)認(rèn)證系統(tǒng)的分析與實(shí)現(xiàn)[J].天津:工業(yè)大學(xué)學(xué)報,2004,23(3):74-76.
[3] 關(guān)振勝.公鑰基礎(chǔ)設(shè)施PKI與認(rèn)證機(jī)構(gòu)CA[M].北京:電子工業(yè)出版社,2002.
[4] 李斌,吳怡,盧家凰.網(wǎng)格用戶身份認(rèn)證方案的新構(gòu)想[J].計算機(jī)工程與設(shè)計,2006,27(10):1789-1792.
[5] 王舜燕,江紅.一種基于加密算法分析的PKI身份認(rèn)證方案[J].鄂州大學(xué)學(xué)報,2005,12(6):12-15.