摘要:隨著網(wǎng)絡(luò)應(yīng)用的迅速發(fā)展,網(wǎng)絡(luò)安全訪問控制應(yīng)用越來越重要,在了解和掌握常用訪問控制技術(shù)的基礎(chǔ)上,運用密碼學(xué)的相關(guān)技術(shù)及其算法,并結(jié)合智能卡在網(wǎng)絡(luò)訪問控制技術(shù)實現(xiàn)上的優(yōu)勢,設(shè)計了一種實用、高效的基于智能卡技術(shù)的網(wǎng)絡(luò)安全訪問控制模型。
關(guān)鍵詞:智能卡;網(wǎng)絡(luò)安全;訪問控制
中圖法分類號:TP39308文獻標識碼:A
文章編號:1001-3695(2006)09-0133-03
隨著網(wǎng)絡(luò)的迅速普及,人們的實際生活和工作對網(wǎng)絡(luò)的依賴越來越高,基于網(wǎng)絡(luò)的數(shù)據(jù)傳輸和交互越來越重要,隨之而來的安全保密問題也越來越突出,其中需要解決的一個關(guān)鍵問題就是如何進行有效的訪問控制以確保用戶的合法訪問。傳統(tǒng)的訪問控制技術(shù)都是建立在簡單的口令識別的基礎(chǔ)之上,這種訪問控制機制很容易導(dǎo)致用戶賬戶和秘密被竊取、口令被修改,以及在信息傳輸過程中重要信息被竊取等問題。
用戶身份認證是網(wǎng)絡(luò)安全領(lǐng)域最古老而又最重要的課題之一。當前,用戶身份認證技術(shù)主要采取口令、數(shù)字證書、生物特征(指紋、虹膜)等識別技術(shù)[1,2]。基于Web的用戶身份認證服務(wù)大都是建立在簡單的口令識別的基礎(chǔ)上,且許多口令傳輸均采用簡單的明文傳輸,很難保證高的安全需求。本文提出采用智能卡與一次性口令認證技術(shù)相結(jié)合的方法,充分利用智能卡的存儲和計算功能,由智能卡計算用戶與服務(wù)器端的一次性口令,避免了用戶在選取口令中存在弱口令的缺陷,同時,智能卡對計算出的一次性口令進行加密傳輸,防止非法竊聽[3,4]。本方案已經(jīng)在實際系統(tǒng)中實現(xiàn),能夠很好地防止針對口令的各種攻擊。
1符號描述
在我們設(shè)計的遠程訪問控制系統(tǒng)總體方案中,將采用下列數(shù)學(xué)符號:
(1)a∈RZ2512,∈R表示從某一集合中隨機選擇[5];本式表示隨機選擇一個正的不大于2512的大整數(shù)a。
(2)H∶{0,1}*→{0,1}60,表示某個碰撞自由的單向散列函數(shù)[6],一般可簡寫為H(·)。
(3)‖表示二進制位串連接,如H2=H(Username‖Password),其中,Username表示用戶名,Password表示某個隨機數(shù),即H2是Username與Password串連接后Hash運算產(chǎn)生的散列值(Hash值)。
(4)a=?b表示檢測a與b是否相等,若不相等,則認證協(xié)議終止,否則執(zhí)行下一步。
(5)SHA1是本文中采用的Hash算法[7],其輸出的散列值大小為160bits。
2基于智能卡的遠程訪問控制方案
為了加強遠程訪問控制,進行有效的用戶身份認證,確保用戶賬號、密碼數(shù)據(jù)傳輸?shù)陌踩院捅C苄裕疚尼槍Υ诵枨螅ㄟ^智能卡技術(shù)并結(jié)合服務(wù)器和客戶端的控制與認證程序來實現(xiàn)有效的訪問控制。服務(wù)器端主要由認證服務(wù)器、認證數(shù)據(jù)庫、服務(wù)器后臺程序、發(fā)卡程序、發(fā)卡服務(wù)器等組成。客戶端主要由智能卡、客戶端后臺程序、瀏覽器等組成。
2.1系統(tǒng)初始化
(1)建立智能卡認證服務(wù)器
智能卡認證服務(wù)器用于注冊和記錄用戶,然后建立用戶的智能卡資料,將資料保存到數(shù)據(jù)庫。智能卡認證服務(wù)器選擇一個單向散列函數(shù)H(·)作為整個認證系統(tǒng)的核心算法,同時選擇一個偽隨機數(shù)產(chǎn)生算法。
(2)智能卡初始化階段
由智能卡初始化程序?qū)ψ杂脩舻目ㄟM行初始化。根據(jù)用戶提供的資料擬定用戶名,設(shè)定初始密碼,然后經(jīng)過智能卡產(chǎn)生隨機數(shù)w并計算用戶卡個人信息H2=H(Username‖Password),H1=H(H2‖w),將注冊用戶所持卡的個人信息Username和散列算法H(·)以及散列值H1存入智能卡的防竄改存儲載體中。
2.2遠程訪問控制系統(tǒng)的總體設(shè)計
在整個廣域網(wǎng)內(nèi),遍布各地的企業(yè)用戶通過各自的PC機連接入Internet,然后通過Internet遠程訪問認證服務(wù)器,認證服務(wù)器與企業(yè)內(nèi)部網(wǎng)Intranet連接。
各地的用戶通過自己持有的合法智能卡與PC機建立聯(lián)系,通過用戶輸入的用戶名和密碼驗證該用戶是否是合法用戶,如果是合法用戶才能在登錄頁面進行下一步操作。只有智能卡驗證用戶的合法性后才能訪問與Internet連接的企業(yè)認證服務(wù)器。認證服務(wù)器通過計算驗證該用戶能否訪問企業(yè)的內(nèi)部網(wǎng),同時根據(jù)用戶傳送的信息查詢數(shù)據(jù)庫得到用戶的訪問權(quán)限,然后用戶根據(jù)其被授予的權(quán)限對其訪問權(quán)限范圍內(nèi)的企業(yè)內(nèi)部資源進行訪問。
根據(jù)上述的遠程訪問控制系統(tǒng)的總體框架,可設(shè)計如圖1所示的系統(tǒng)總體方案。圖中后臺程序分別表示客戶端和認證服務(wù)器上的應(yīng)用程序組件。
2.3認證算法描述及系統(tǒng)運行流程
以下描述分別用H1與H2表示H(H2‖w)和H(Username‖Password)。
(1)當持有智能卡的合法用戶需要登錄訪問企業(yè)的內(nèi)部網(wǎng)Intranet時,在終端插入智能卡。用戶打開瀏覽器,在瀏覽器相應(yīng)控件上輸入自己的Username和Password。同時瀏覽器將用戶輸入的Username,Password發(fā)送到PC機。(2)PC機再將用戶輸入的Username,Password發(fā)送到智能卡。
(3)智能卡操作系統(tǒng)根據(jù)傳送過來的Username和Password進行Hash運算,計算H2′=H(Username‖Password),并將H2′與智能卡中存放的H2進行比較,驗證其合法性,返回相關(guān)的驗證信息給PC機。
(4)智能卡將相關(guān)的驗證信息返回給瀏覽器。
(5)瀏覽器判斷返回的驗證信息,如果驗證返回的狀態(tài)為Ture,則瀏覽器發(fā)送Username給遠程認證服務(wù)器;如果驗證返回的狀態(tài)為False,則顯示錯誤信息,指示用戶輸入的Username和Password錯誤。
(6)如果遠程認證服務(wù)器接收到驗證通過的信息,認證服務(wù)器產(chǎn)生一個隨機數(shù)a,此隨機數(shù)a也同樣是512位,隨后認證服務(wù)器發(fā)送隨機數(shù)a給用戶端的瀏覽器,同時根據(jù)用戶端傳送過來的Username檢索數(shù)據(jù)庫,獲得用戶注冊時已存儲的Hash值H1。
(7)用戶端的瀏覽器將遠程認證服務(wù)器傳送來的a經(jīng)過后臺程序發(fā)送給智能卡。
(8)智能卡接收到a后,計算HU=H(H1‖a),并將其經(jīng)后臺程序、瀏覽器,發(fā)送給遠程認證服務(wù)器。
(9)認證服務(wù)器接收到用戶端傳送過來的HU后,認證服務(wù)器計算HS=H(H1‖a),檢驗HS=?HU,如果認證服務(wù)器計算的Hash值HS與客戶端發(fā)送來的Hash值HU相同,則可以讓用戶進行訪問;如果不相同,則返回相關(guān)的錯誤信息到用戶端的瀏覽器。同時,驗證服務(wù)器端根據(jù)用戶輸入的用戶名檢索數(shù)據(jù)庫中存放的用戶權(quán)限,讓用戶在授予的用戶權(quán)限的范圍內(nèi)對企業(yè)的內(nèi)部資源進行訪問。
3系統(tǒng)安全性分析
3.1智能卡及系統(tǒng)的安全性分析
智能卡和電腦的結(jié)構(gòu)很類似,它有CPU,ROM,RAM和EEPROM。其中CPU與電腦的CPU的作用是完全一樣的;ROM中存放的就是卡的操作系統(tǒng),有如Windows或DOS操作系統(tǒng);RAM的作用類似電腦中的內(nèi)存;EEPROM的作用類似電腦中的硬盤。智能卡在系統(tǒng)中扮演著兩個重要的角色,即身份性和安全性。身份性就是指一張智能卡代表著一個系統(tǒng)的使用者,從智能卡提供的ID號,系統(tǒng)就能方便地識別出誰在使用系統(tǒng)。同時,由于智能卡的存儲數(shù)據(jù)的穩(wěn)定性和其物理的可攜帶性,所以智能卡是一個很好的個人身份模塊。安全性是智能卡的另一優(yōu)勢是:只有擁有智能卡PIN碼的用戶才能使用該卡。
由于在智能卡及系統(tǒng)中,智能卡是數(shù)據(jù)存儲和傳遞的載體,因此智能卡的數(shù)據(jù)存儲安全性是需要著重予以考慮的。
在智能卡及系統(tǒng)中所使用的均是集成電路卡(智能卡),集成電路卡的核心是采用集成電路芯片來進行數(shù)據(jù)的存儲。目前廣泛使用的智能卡使用的是電可擦除數(shù)據(jù)存儲芯片(EEPROM),這種芯片讀寫速度快,掉電后數(shù)據(jù)可以長期保存,并且數(shù)據(jù)可以反復(fù)進行擦寫。
由于智能卡是在將EEPROM芯片封裝在卡片上的同時,將微處理器芯片(CPU)也封裝在卡片上,外部讀寫設(shè)備只能通過CPU與智能卡內(nèi)的EEPROM進行數(shù)據(jù)交換,在任何情況下均不能再訪問到EEPROM中的任何一個單元。同時在智能卡中封裝了微處理器芯片(CPU),這樣EEPROM的數(shù)據(jù)接口在任何情況下均不會與智能卡的對外數(shù)據(jù)線相連接,智能卡在具有數(shù)據(jù)判斷能力的同時,也具備數(shù)據(jù)分析處理能力。外部讀寫設(shè)備在與智能卡進行數(shù)據(jù)交換時,首先必須發(fā)指令給CPU,由CPU根據(jù)其內(nèi)部ROM中存儲的卡片操作系統(tǒng)(COS)對指令進行解釋,并進行分析判斷,在確認讀寫設(shè)備的合法性后,允許外部讀寫設(shè)備與智能卡建立連接。之后的數(shù)據(jù)操作仍然要由外部讀寫設(shè)備發(fā)出相應(yīng)的指令,并且CPU對指令進行正確解釋后,允許外部讀寫設(shè)備與智能卡中的數(shù)據(jù)存儲區(qū)(RAM)進行數(shù)據(jù)交換。數(shù)據(jù)交換成功后,在CPU的控制下,利用智能卡中的內(nèi)部數(shù)據(jù)總線將內(nèi)部RAM中的數(shù)據(jù)與EEPROM中的數(shù)據(jù)進行交換。可以看到,在數(shù)據(jù)處理過程中,外部讀寫設(shè)備只是和CPU打交道,同時也只能與數(shù)據(jù)緩存區(qū)RAM進行數(shù)據(jù)交換,根本無法實現(xiàn)對智能卡中EEPROM數(shù)據(jù)的直接訪問。這樣就實現(xiàn)了對智能卡EEPROM中數(shù)據(jù)的安全保護,因此智能卡也具備數(shù)據(jù)安全性保護措施。
綜合上面的因素,安全性是我們設(shè)計智能卡首要考慮的因素,而且從多方面考慮到可能會對智能卡的安全性產(chǎn)生隱患的因素,因此我們也設(shè)計了相應(yīng)的解決安全隱患的安全機制,主要是從防止盜用卡、破解卡,即使有卡想超越權(quán)限的訪問等方面考慮,并設(shè)計綜合的解決方案。除以上的幾種情況外,其他的方法不可能對智能卡的安全性造成危害。
(1)智能卡在初始化時具有唯一性,密碼是6bits~16bits的字符,至少要有6bits,以加強智能卡的安全強度,當然密碼越長,安全性越高。但考慮到便于記憶,我們最多允許輸入16bits的密碼,這樣也降低了破解密碼的可能性。
(2)在遺失卡后,他人試圖盜用,在不知道密碼的情況下,最多只能輸入三次密碼進行破解,否則智能卡將自動鎖定,在6bits~16bits的密碼情況,限在三次內(nèi)試圖破解密碼幾乎是不可能的。
(3)在智能卡端和認證服務(wù)器端產(chǎn)生的隨機數(shù)都是隨機的512bits,這樣可以有效地防止字典攻擊,字典攻擊是最常用的密碼攻擊類型之一。在通過單向Hash算法后,密碼被存儲在WindowsNTSAM和ActiveDirectory中,這種算法類型是不可逆的。因此,正確密碼的唯一方法就是通過同樣的單向Hash算法與結(jié)果進行比較。
(4)用戶即使有合法的智能卡,如果想超越權(quán)限進行訪問,這種情況也不可能。首先智能卡在初始化時,給定了用戶名和密碼,這時智能卡中已經(jīng)存放了由Username和Password進行Hash運算產(chǎn)生的Hash值,即使他知道具有更高訪問權(quán)限的用戶的智能卡的密碼,他在輸入Username和Password后,智能卡進行Hash運算的Hash值H′2不可能與卡中原來存放的Hash值H2相同。進而也就不可能訪問到遠程數(shù)據(jù)庫中的H1。
(5)整個訪問過程中,進行了雙重驗證,共進行了三次Hash運算,如果在訪問過程中有任意一次驗證或者任意一次Hash運算出現(xiàn)不吻合的情況,均不可能通過遠程認證服務(wù)器的驗證,從而不可能對企業(yè)的內(nèi)部資源進行訪問。
3.2認證系統(tǒng)性能分析
性能分析主要是從卡驗證的有效性。驗證過程中可能發(fā)生的瓶頸兩方面出發(fā)進行分析,在通過反復(fù)測試后,表明智能卡的性能是非常良好的。
(1)試驗測試表明,智能卡進行單次Hash計算的時間平均為0.18ms,驗證服務(wù)器進行單次Hash計算的時間平均為0.05ms,這就意味著智能卡和認證服務(wù)器在進行運算是幾乎不占訪問時間的。
(2)在成功訪問過程中,完成一次登錄驗證需要進行三次Hash運算,其中智能卡先后在用戶進行本地登錄及在接收到認證服務(wù)器傳送來的隨機數(shù)后進行兩次Hash運算;另外一次Hash運算是認證服務(wù)器在接收到客戶端傳來的Username后,三次Hash運算的時間總共為0.37ms。
(3)遠程認證服務(wù)器在等待用戶端的傳送信息期間,智能卡需要進行兩次Hash運算,所需的時間是0.31ms。
(4)在局域網(wǎng)環(huán)境下,訪問過程中的信息交互量不大,在200Bytes之內(nèi),所需的時間也是ms級別。
(5)在局域網(wǎng)實驗條件下,驗證時間與信息傳輸?shù)臅r間相當,完成一次成功登錄的時間很短。在廣域網(wǎng)的條件下,由于信息傳輸延遲時間遠大于局域網(wǎng)的信息傳輸延遲,因此驗證時間將會遠遠小于信息的實際傳輸時間。因而在驗證過程中,系統(tǒng)運行的瓶頸不可能發(fā)生在Hash運算的過程中,從而說明了本文設(shè)計的基于智能卡的遠程訪問控制系統(tǒng)的性能是良好的。
4結(jié)論
本文對網(wǎng)絡(luò)環(huán)境下的安全訪問控制進行了介紹,在對網(wǎng)絡(luò)環(huán)境分析的基礎(chǔ)上,結(jié)合智能卡技術(shù)提出了一種新的網(wǎng)絡(luò)安全訪問控制模型,并對該模型的方案、安全及性能進行了闡述和分析,最后通過實例驗證本文設(shè)計的基于智能卡的安全訪問控制模型是良好的,能夠很好地防止對口令的各種攻擊。
參考文獻:
[1]唐禮勇,段云所,陳忠.身份認證技術(shù)[J].網(wǎng)絡(luò)安全技術(shù)及應(yīng)用,2001,(6):5964.
[2]盧開澄.計算機密碼學(xué)——通信中的保密與安全[M].北京:清華大學(xué)出版社,1990.
[3]吳克忠.智能卡技術(shù)[J].中國計算機用戶,1994,(4):112.
[4]宋延海,楊肇敏.智能卡技術(shù)概述[J].微計算機信息,1997,(13):315.
[5]AlvinTSChan.WWW+SmartCard:TowardsaMobileHealthCareManagementSystem[J].InternationalJournalofMedicalInformation,2000,57:127137.
[6]PUrien.InternetCard:ASmartCardasaTrueInternetNode[J].ComputerCommunications,2000,23(17):16551666.
[7]JeromeSvigals.SmartCard:TheUltimatePersonalComputer[M].NewYork:MacmillanPublishingCompany,1985.
作者簡介:
朱廣堂(1974),男,江蘇揚州人,博士后,主要研究方向為計算機安全、計算機網(wǎng)絡(luò)、地理信息系統(tǒng);
陳汭新(1973),男,廣東南海人,主任,工程師,碩士,主要研究方向為地理信息系統(tǒng)、計算機應(yīng)用集成。