郭 麗 張亞利
[摘要]在分析SSL等認(rèn)證網(wǎng)關(guān)不足的基礎(chǔ)上,提出一個(gè)基于USB KEY的安全認(rèn)證網(wǎng)關(guān)的設(shè)計(jì)方案,然后給出其身份認(rèn)證協(xié)議,并對(duì)其安全性進(jìn)行分析。
[關(guān)鍵詞]USB KEY 認(rèn)證網(wǎng)關(guān) PKI SSL
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2009)0720048-02
一、引言
隨著網(wǎng)絡(luò)應(yīng)用的普及,網(wǎng)絡(luò)安全越來(lái)越受到人們的重視,網(wǎng)絡(luò)身份認(rèn)證作為網(wǎng)絡(luò)安全的重要組成部分,一直是受關(guān)注的熱點(diǎn)。
安全認(rèn)證網(wǎng)關(guān)是一個(gè)認(rèn)證服務(wù)器,對(duì)受保護(hù)網(wǎng)絡(luò)提供身份認(rèn)證支持,對(duì)于網(wǎng)絡(luò)外的訪問(wèn)者進(jìn)行統(tǒng)一的身份認(rèn)證。傳統(tǒng)的基于用戶名和口令的認(rèn)證方式過(guò)于簡(jiǎn)單,極易被竊取,已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足實(shí)際安全需求,為了提高認(rèn)證的安全性,現(xiàn)在的認(rèn)證網(wǎng)關(guān)一般采用PKI(公鑰基礎(chǔ)設(shè)施)體系,使用數(shù)字證書(shū)的方式對(duì)用戶身份進(jìn)行認(rèn)證。
在PKI框架下,安全認(rèn)證網(wǎng)關(guān)需要相應(yīng)認(rèn)證協(xié)議支持來(lái)完成用戶的認(rèn)證,現(xiàn)在比較常見(jiàn)的認(rèn)證協(xié)議是SSL協(xié)議,但是SSL是一種基于端到端的安全協(xié)議,與具體應(yīng)用綁定緊密,對(duì)于多種應(yīng)用支持作得不好。另外一種方式是采用IPSEC協(xié)議,在IP層做工作來(lái)完成對(duì)上層應(yīng)用的支持,這種方式需要在操作系統(tǒng)內(nèi)核層加入代碼,實(shí)現(xiàn)復(fù)雜,容易造成系統(tǒng)不穩(wěn)定。
本文提出了一種在應(yīng)用層實(shí)現(xiàn),在不與應(yīng)用程序綁定的情況下,透明地實(shí)現(xiàn)對(duì)多應(yīng)用地支持,并基于USB KEY進(jìn)一步保障了用戶身份的真實(shí)性。
二、USB KEY技術(shù)分析
用戶的數(shù)字證書(shū)和私鑰等機(jī)密信息可以以文件的形式存儲(chǔ)在磁盤(pán)上,但為了安全起見(jiàn),證書(shū)和私鑰一般存放于物理載體中,最常見(jiàn)的載體便是USB KEY。
一個(gè)典型的USB KEY的內(nèi)部結(jié)構(gòu)如圖1所示:
USB KEY內(nèi)部主要分為兩大部分:智能卡芯片和USB芯片。智能卡芯片是USB KEY的核心,通過(guò)內(nèi)置卡內(nèi)操作系統(tǒng)來(lái)完成卡內(nèi)資源的管理,其一方面實(shí)現(xiàn)了證書(shū)、密鑰的安全存儲(chǔ),另一方面還實(shí)現(xiàn)了多種加解密算法。USB芯片負(fù)責(zé)完成智能卡芯片與用戶主機(jī)通訊,是核心的智能卡芯片與用戶主機(jī)溝通的橋梁。
使用USB KEY有以下好處:
1.實(shí)現(xiàn)了雙因子認(rèn)證。用戶只有同時(shí)擁有USB KEY以及知道其PIN碼才能使用USB KEY。
2.密鑰不出卡。USB KEY當(dāng)中自帶了各種密碼算法,在密鑰不出卡的前提下,能夠進(jìn)行各種基于密鑰的加解密運(yùn)算,防止了密鑰的泄漏。
3.加解密速度快。在USB KEY當(dāng)中,基于硬件實(shí)現(xiàn)了加解密算法,相對(duì)于軟件實(shí)現(xiàn)方式,其加解密速度更快。
三、安全認(rèn)證網(wǎng)關(guān)的技術(shù)方案
(一)安全認(rèn)證網(wǎng)關(guān)體系結(jié)構(gòu)
如圖2所示,安全認(rèn)證網(wǎng)關(guān)位于受保護(hù)的企業(yè)網(wǎng)絡(luò)出口處,負(fù)責(zé)對(duì)訪問(wèn)本網(wǎng)絡(luò)企業(yè)服務(wù)的用戶進(jìn)行認(rèn)證。防火墻位于認(rèn)證網(wǎng)關(guān)之外,負(fù)責(zé)對(duì)一些基于網(wǎng)絡(luò)的攻擊進(jìn)行過(guò)濾。用戶終端裝有終端認(rèn)證代理程序,啟動(dòng)終端認(rèn)證代理程序,并插入U(xiǎn)SB KEY才能夠與安全認(rèn)證網(wǎng)關(guān)進(jìn)行通信。
LDAP(輕量級(jí)目錄服務(wù)器)上存放了用戶證書(shū),安全認(rèn)證網(wǎng)關(guān)通過(guò)檢索LDAP可以獲取用戶證書(shū),利用CRL(證書(shū)撤銷列表),對(duì)用戶證書(shū)的有效性進(jìn)行驗(yàn)證。
網(wǎng)絡(luò)內(nèi)部的WEB服務(wù)器、EMAIL服務(wù)器、辦公自動(dòng)化服務(wù)器等應(yīng)用均位于安全認(rèn)證網(wǎng)關(guān)之后,安全認(rèn)證網(wǎng)關(guān)通過(guò)規(guī)則庫(kù)來(lái)判斷對(duì)哪些應(yīng)用提供身份認(rèn)證服務(wù)。
(二)認(rèn)證證書(shū)的頒發(fā)
為了提高認(rèn)證的安全性,安全認(rèn)證網(wǎng)關(guān)基于PKI體系架構(gòu),通過(guò)證書(shū)對(duì)用戶進(jìn)行認(rèn)證。系統(tǒng)通過(guò)CA(證書(shū)中心)為參與認(rèn)證的各實(shí)體頒發(fā)證書(shū),證書(shū)和密鑰分發(fā)情況如下:
認(rèn)證網(wǎng)關(guān):擁有網(wǎng)關(guān)證書(shū)和網(wǎng)關(guān)私鑰,同時(shí)為了驗(yàn)證用戶證書(shū)的頒布者,其還要擁有CA根證書(shū);
USB KEY:擁有用戶證書(shū)和用戶私鑰和CA的根證書(shū);
LDAP:存放系統(tǒng)所有的證書(shū)以及CRL列表。
(三)安全認(rèn)證規(guī)則
對(duì)于受保護(hù)網(wǎng)絡(luò)來(lái)說(shuō),并不是所有服務(wù)都需要認(rèn)證的,比如企業(yè)或政府部門(mén)中對(duì)外服務(wù)的網(wǎng)站系統(tǒng)等,在認(rèn)證網(wǎng)關(guān)上可以配置對(duì)網(wǎng)絡(luò)中的哪些服務(wù)進(jìn)行身份認(rèn)證防護(hù),對(duì)服務(wù)的區(qū)分可以通過(guò)提供服務(wù)器的IP地址和服務(wù)開(kāi)放的端口進(jìn)行,所以安全認(rèn)證規(guī)則通過(guò)IP+端口進(jìn)行。對(duì)于未配置的端口,采取放過(guò)的措施。
四、安全身份認(rèn)證協(xié)議
安全認(rèn)證網(wǎng)關(guān)的核心是身份認(rèn)證協(xié)議,身份認(rèn)證協(xié)議的安全性與易用性直接影響到了安全認(rèn)證網(wǎng)關(guān)的安全性和可用性。SSL和IPSEC協(xié)議雖然在安全性上強(qiáng)度較高,但是其易用性不足。本系統(tǒng)的身份認(rèn)證協(xié)議充分考慮了其易用性,采用了挑戰(zhàn)應(yīng)答的方式進(jìn)行了協(xié)議流程的設(shè)計(jì),協(xié)議流程如圖3所示。
具體步驟如下:
1.客戶端程序連接服務(wù)器的端口,請(qǐng)求訪問(wèn)服務(wù)。
2.安全認(rèn)證網(wǎng)關(guān)捕獲客戶端程序?qū)Ψ?wù)器受保護(hù)端口的請(qǐng)求,并阻塞該請(qǐng)求。然后安全認(rèn)證網(wǎng)關(guān)向安全認(rèn)證客戶端發(fā)起挑戰(zhàn)消息。該消息中包含的是一個(gè)隨機(jī)數(shù)。
3.安全認(rèn)證客戶端收該隨機(jī)數(shù)后,將轉(zhuǎn)發(fā)該隨機(jī)數(shù)給USBKEY。
4.USBKEY利用其私鑰將該隨機(jī)數(shù)進(jìn)行加密,并將加密后的密文返回給安全認(rèn)證客戶端。
5.安全認(rèn)證客戶端將USBKEY中返回的消息,連同客戶端的ID標(biāo)識(shí)發(fā)送給認(rèn)證網(wǎng)關(guān)。
6.認(rèn)證網(wǎng)關(guān)收到該消息后,根據(jù)客戶端的ID從LDAP上查詢用戶證書(shū),將證書(shū)中的用戶公鑰提取出來(lái),利用公鑰將該消息解密,如果解密得到的消息中的隨機(jī)數(shù)與之前其產(chǎn)生的隨機(jī)數(shù)相同,則認(rèn)為用戶合法,否則認(rèn)為用戶非法。
7.如果判斷用戶合法,則放開(kāi)第2步中阻塞的用戶請(qǐng)求,否則拒絕用戶的請(qǐng)求。
上述協(xié)議通過(guò)采用挑戰(zhàn)應(yīng)用的方式,不傳遞用戶私鑰即可完成認(rèn)證,有效地防止的常用的攻擊,下面通過(guò)對(duì)常用的攻擊形式進(jìn)行分析,來(lái)說(shuō)明本協(xié)議的安全性。
1.密鑰嗅探。通過(guò)對(duì)用戶發(fā)送數(shù)據(jù)包的監(jiān)測(cè),解析出其中的密碼。這從理論上是不可行的,因?yàn)樵诒緟f(xié)議中,用戶并沒(méi)有將其密鑰直接發(fā)送到認(rèn)證網(wǎng)關(guān)進(jìn)行認(rèn)證,而是發(fā)送的加密后的隨機(jī)數(shù)消息,根據(jù)公鑰密碼算法理論,攻擊者是不可能破解出來(lái)密鑰的。
2.重放攻擊。即對(duì)以前用戶認(rèn)證的消息包進(jìn)行重放,使安全網(wǎng)關(guān)接受該用戶。但這也是無(wú)法做到的,因?yàn)橛脩裘看伟l(fā)送的消息都是根據(jù)網(wǎng)關(guān)的隨機(jī)數(shù)加密而來(lái)的,而隨機(jī)數(shù)會(huì)以很低的概率重復(fù)的,攻擊者得到的以前消息在之后的認(rèn)證中是不能使用的。
3.在客戶端植入木馬程序,盜取用戶的私鑰。從上面協(xié)議可以看出,用戶的私鑰放在USB KEY中,USB KEY只返回給安全認(rèn)證客戶端加密后的消息,并沒(méi)有返回其私鑰,而USB KEY中的私鑰從硬件設(shè)計(jì)上是不出USB KEY的,所以木馬程序也無(wú)法獲取用戶的私鑰。
4.USB KEY丟失。USB KEY實(shí)現(xiàn)的雙因子認(rèn)證,除了擁有USB KEY多點(diǎn),還需要知道PIN碼才能打開(kāi),所以即使KEY丟失了,攻擊者也無(wú)法使用該用戶登錄。
通過(guò)以上分析,可以看出該協(xié)議能夠抵擋常見(jiàn)的攻擊,具有一定的安全性,在協(xié)議的易用性上,相對(duì)于SSL、IPSEC協(xié)議要簡(jiǎn)單許多,其完全可以在操作系統(tǒng)應(yīng)用層工作,便于實(shí)現(xiàn),另外認(rèn)證客戶端并沒(méi)有和具體的應(yīng)用客戶端程序相綁定,是獨(dú)立客戶端,可以方便地用于多種客戶端的場(chǎng)合。
五、結(jié)論
本文針對(duì)于SSL、IPSEC等認(rèn)證網(wǎng)關(guān)的缺點(diǎn),提出了基于USBKEY的認(rèn)證網(wǎng)關(guān)的技術(shù)方案,給出了其身份認(rèn)證協(xié)議,并對(duì)其進(jìn)行安全性進(jìn)行了分析。該協(xié)議不但具有一定的安全性,使用用起來(lái)也比較簡(jiǎn)單,具有一定的實(shí)用價(jià)值。
參考文獻(xiàn):
[1]關(guān)振勝,公鑰基礎(chǔ)設(shè)施PKI與認(rèn)證機(jī)構(gòu)CA[M].北京:電子工業(yè)出版社,2002.
[2]卿斯?jié)h,認(rèn)證協(xié)議兩種形式化分析方法的比較,軟件學(xué)報(bào)[J].2004,14.
[3]李中獻(xiàn)、詹榜華、楊義先,認(rèn)證理論與技術(shù)發(fā)[J].展.電子學(xué)報(bào),1999,7.
[4]趙戰(zhàn)生、馮登國(guó)、戴英伙、荊繼武,信息安全技術(shù)淺談[M].北京:科學(xué)出版社,1999.
作者簡(jiǎn)介:
郭麗(1981-),女,漢族,河南南陽(yáng)人,學(xué)士學(xué)位,河南省工業(yè)設(shè)計(jì)學(xué)校,助教;張亞利(1981-),女,漢族,河南焦作人,學(xué)士學(xué)位,河南省工業(yè)設(shè)計(jì)學(xué)校,助教。