摘 要: 校園服務(wù)器的技術(shù)發(fā)展,要求校園服務(wù)器必須具備極佳的安全性,防止其被侵入導(dǎo)致數(shù)據(jù)丟失或者被破壞。傳統(tǒng)的身份認(rèn)證存在許多弊端,而雙因素認(rèn)證是將記憶性密碼和加強(qiáng)防護(hù)硬件結(jié)合,利用USB Key的不可讀、無法破解、篡改和復(fù)制的特點(diǎn)提高認(rèn)證的強(qiáng)度。研究了基于J2EE平臺與USB Key結(jié)合的雙因素認(rèn)證系統(tǒng),有效地避免了傳統(tǒng)登錄密碼式的安全防護(hù)所帶來的問題,使得校園服務(wù)器的安全防護(hù)更加牢固。
關(guān)鍵詞: J2EE; USB Key; 雙因素認(rèn)證; 校園服務(wù)器
中圖分類號: TN911?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)11?0095?04
Abstract: With the technology development of campus server, the campus server should have excellent security to prevent data loss or damage due to the intrusion. The traditional identity authentication has a lot of disadvantages, so the dual?factor authentication combines the memory password and strengthened protection hardware. The USB Key is unreadable, and unable to crack, tamper and copy, so the characteristics of USB Key is used to improve the authentication intensity. The dual?factor authentication system based on J2EE platform and USB Key is studied. It can effectively avoid the safety protection problem of traditional log?in password method, and strengthen the security of campus server.
Keywords: J2EE; USB Key; dual?factor authentication; campus server
0 引 言
校園服務(wù)器在校園網(wǎng)絡(luò)管理中起著重要的作用。作為校園基礎(chǔ)設(shè)備,校園服務(wù)器的建設(shè)有利于學(xué)??平萄邪l(fā)、信息管理與外部交流合作等各項工作的開展。由于校園服務(wù)器上存儲著學(xué)??蒲匈Y料、教學(xué)資料以及學(xué)生個人信息等許多嚴(yán)格保密的信息,一旦校園服務(wù)器遭到入侵,使得這些信息泄露或者破壞將造成十分嚴(yán)重的后果,并且校園服務(wù)器的安全狀況與學(xué)校各項教學(xué)工作的開展關(guān)聯(lián)性太強(qiáng),對服務(wù)器工作人員的安全技術(shù)要求較高。因此對于校園網(wǎng)絡(luò)安全問題的解決,應(yīng)從問題的根本入手,需要不斷提高管理者的安全意識,將安全問題列入設(shè)計方案,并且不斷提高安全防護(hù)的技術(shù)措施,最大限度發(fā)揮安全措施的功能。目前,校園服務(wù)器的網(wǎng)絡(luò)安全技術(shù),從根本上講都不能十分有效地防止校園服務(wù)被入侵。
雙因素認(rèn)證是對傳統(tǒng)的靜態(tài)密碼系統(tǒng)的創(chuàng)新。該項技術(shù)融入了時間同步技術(shù)系統(tǒng),從事件、密鑰與時間三個維度變量考慮,每次都會生成一個一次性的動態(tài)密碼。與傳統(tǒng)的靜態(tài)密碼相比,這樣的密碼是動態(tài)的,每一次的密碼都是不同的,同時動態(tài)密碼卡的密鑰存儲在服務(wù)器中是惟一的。在認(rèn)證過程中,動態(tài)密碼的生成首先要依靠服務(wù)器與密碼卡中的密鑰,并結(jié)合事件與空間兩大參數(shù),然后在同一個計算方程式的計算下產(chǎn)生,兩個密碼是相同的。在每次登錄中,由于時間和事件兩個維度的變量不同,所以任何兩次登錄之間產(chǎn)生的動態(tài)密碼都會不一樣。另外,動態(tài)密碼是隨機(jī)參數(shù)計算出來的,根本無法預(yù)測,也有效避免傳統(tǒng)的登錄密碼給校園服務(wù)器可能帶來的一系列安全問題。在引入雙因素認(rèn)證方式之前,多數(shù)學(xué)校采用單因素認(rèn)證方式,管理學(xué)校網(wǎng)絡(luò),但其安全性難以得到保證,不能有效避免因口令欺騙、惡意入侵與人為破壞給學(xué)校帶來的經(jīng)濟(jì)損失;因此將雙因素認(rèn)證技術(shù)引入到校園服務(wù)器的安全防護(hù)中,能有效解決單因素認(rèn)證方式帶來的安全隱患問題,同時也能防止口令在網(wǎng)絡(luò)平臺傳輸過程中被別人監(jiān)聽,導(dǎo)致信息泄露的問題,更全面地保證了校園服務(wù)器的正常運(yùn)行。
1 雙因素認(rèn)證
1.1 雙因素認(rèn)證技術(shù)介紹
在計算機(jī)行業(yè)當(dāng)中,有三種使用者身份識別與認(rèn)證方式:一是用戶的主觀記憶,就是用戶記住密鑰的認(rèn)證內(nèi)容,我們經(jīng)常使用的登錄密碼就屬于此類;二是用戶借助特殊的認(rèn)證和加強(qiáng)機(jī)制,這是在記憶的基礎(chǔ)上,再增加一個硬件的防護(hù),人們使用的U盾屬于該類;三是用戶利用客觀存在的惟一特征作為密鑰認(rèn)證內(nèi)容,常使用的指紋和虹膜就是最為普遍的認(rèn)證使用元素。將用戶現(xiàn)實中客觀存在的物體作為客戶自己的密鑰認(rèn)證內(nèi)容,這種認(rèn)證方式的安全性和準(zhǔn)確性都很高,而且十分便捷,不需要刻意地去記憶密碼,但是認(rèn)證硬件的成本很高,無法使用于校園服務(wù)器終端的大面積普及使用。考慮到用戶使用的便捷性和服務(wù)器安全性,目前,校園普遍接受的身份認(rèn)證方式主要采用雙因素特征的身份認(rèn)證系統(tǒng)來開發(fā)。該方式有效性與安全性較強(qiáng),如果將記憶性密碼和加強(qiáng)防護(hù)硬件結(jié)合,可以利用USB Key的不可讀、無法破解、篡改和復(fù)制的特點(diǎn)提高認(rèn)證的強(qiáng)度;或者將現(xiàn)代生物技術(shù)因素與加強(qiáng)防護(hù)硬件相結(jié)合。從理論上看,這種方式是可行的,但在實際研發(fā)過程中受使用環(huán)境、技術(shù)等相關(guān)條件的限制,難以達(dá)到預(yù)期效果,不利于該種結(jié)合方式的普及。因此在雙因素身份認(rèn)證系統(tǒng)的開發(fā)過程中主要將第一與第二要素相互結(jié)合,即USB Key與用戶密碼口令相結(jié)合。
1.2 雙因素安全認(rèn)證協(xié)議的研發(fā)
雙因素認(rèn)證系統(tǒng)在實際使用過程中,系統(tǒng)的使用者首先應(yīng)到CA中心申請一個含私密鑰證書的USB Key并將其置于USB Key中,在服務(wù)器端,公密鑰存儲在密鑰庫中,在私密鑰和公密鑰之間有對應(yīng)的關(guān)系,該關(guān)系存儲在服務(wù)器的登錄數(shù)據(jù)庫中。另外,USB Key中的密碼產(chǎn)生算法必須是經(jīng)過有關(guān)部門審核批準(zhǔn)的,在使用USB Key時用戶需要設(shè)置自己的PIN,用戶在登錄進(jìn)行認(rèn)證時,輸入PIN號,作為調(diào)用算法的口令,使密碼運(yùn)算程序觸發(fā),計算產(chǎn)生一個密碼,并將其發(fā)送給服務(wù)器。服務(wù)器收到該密碼后,利用公密鑰計算,產(chǎn)生一個與USB Key相同的密碼,這樣就完成了登錄認(rèn)證。如果PIN號輸入錯誤,將無法計算生成密碼,也是無法進(jìn)行登入認(rèn)證。允許輸入錯誤的次數(shù)是有限的,超過限制就自動鎖死,只能通過服務(wù)器才可以解除鎖定。
2 校園服務(wù)器雙因素認(rèn)證系統(tǒng)
隨著Internet的迅速發(fā)展,人們從網(wǎng)上獲得越來越多的信息,各式各樣的網(wǎng)絡(luò)服務(wù)器也伴隨著Internet的發(fā)展而迅速成長。對于學(xué)校300多臺計算機(jī)組成的局域網(wǎng)來說,使用現(xiàn)行Internet上的網(wǎng)絡(luò)服務(wù)器有很多不便之處。現(xiàn)在大多數(shù)學(xué)生上網(wǎng)不僅僅局限于聊天、游戲,更多的是想把自己所做的網(wǎng)頁、FLASH動畫、小說、詩歌等作品通過網(wǎng)絡(luò)讓別人看到,能欣賞到質(zhì)量好一點(diǎn)的音樂、電影等。為了實現(xiàn)免費(fèi)空間的提供、在本地網(wǎng)絡(luò)上看電影,聽音樂,校園服務(wù)器一般由Web服務(wù)器、FTP服務(wù)器、流媒體等組成。
2.1 J2EE組件技術(shù)
Java 2 Platform, Enterprise Edition簡稱J2EE,通常情況下J2EE平臺上主要含有四層:分別為Backend Enterprise Information System(即企業(yè)信息系統(tǒng)層),簡稱EIS層,其在后臺系統(tǒng)上;其次是Server端的兩層,Server?Side Business Logic(即企業(yè)營運(yùn)邏輯層),簡稱EJB層,Server?Side Presentation(即使用者服務(wù)呈現(xiàn)層),簡稱Server層;最后是client端的Client?Side Presentation(即使用者界面呈現(xiàn)層),簡稱Client層。
J2EE平臺的優(yōu)勢在于采用了多層分布的應(yīng)用模式,功能實現(xiàn)準(zhǔn)確靈活,軟件的不同組成部分能在不同的層內(nèi)執(zhí)行。同時,平臺上的J2EE Client層還能提供多種Client類別,包含在企業(yè)的防火墻外以及防火墻內(nèi)的Client。Client端可以使用Java applications,Client端還可以結(jié)合JSP pages產(chǎn)生動態(tài)網(wǎng)頁或者配合電腦瀏覽器中的HTML生成靜態(tài)網(wǎng)頁,在Web層的配合下保證了Client處理的順利進(jìn)行。Web層主要為Client處理呈現(xiàn)問是它所使用的通信協(xié)義為HTTP。Client數(shù)據(jù)的呈現(xiàn)采用HTML over HTTP較為合適,Client數(shù)據(jù)的交換使用XML over HTTP比較方便,對于呈現(xiàn)問題Client必須自行處理。在J2EE平臺上,與Client配合使用的還有EJB層,該層主要使用RMI?IIOP通信協(xié)義呈現(xiàn)運(yùn)算軟件所指定的企業(yè)邏輯以及企業(yè)對象的界面,該協(xié)議是一種全方位運(yùn)用協(xié)議,其為Client提供了便捷。通過RMI?IIOP通信協(xié)義的計算,Client可以直接存取EJB層中的服務(wù)。在系統(tǒng)運(yùn)行的整個過程中,EIS層呈現(xiàn)數(shù)據(jù)最原始的觀點(diǎn),隨后Client將實現(xiàn)企業(yè)的規(guī)劃與數(shù)據(jù)呈現(xiàn)工作,最終實現(xiàn)了系統(tǒng)功能的有序運(yùn)行。J2EE體系結(jié)構(gòu)如圖1所示。
2.2 PKCS 11 標(biāo)準(zhǔn)
RSA公司出臺了公開密鑰加密標(biāo)準(zhǔn)(PKCS)來滿足加密安全產(chǎn)品與應(yīng)用程序之間的交互性這一需求;同時為解決軟件開發(fā)者的公開密鑰應(yīng)用與不同服務(wù)器制造商的兼容和交互問題,PKCS系列標(biāo)準(zhǔn)中的PKCS 11標(biāo)準(zhǔn)順勢而生。該類型標(biāo)準(zhǔn)設(shè)計了一個通用的編程接口模型——Cryptoki tokens。目前,我國各大服務(wù)器生存廠商的服務(wù)器產(chǎn)品的PKCS 11接口都符合該公司的PKCS 11標(biāo)準(zhǔn)。
2.3 通用Crypto Ki接口模型的設(shè)計與運(yùn)用。
Crypto Ki接口模型主要用于各種加密設(shè)備與應(yīng)用程式的連接,目前普遍使用在PCMCIA卡、基于智能卡、智能軟盤上。使用Crypto Ki接口能為設(shè)備提供與設(shè)備細(xì)節(jié)無關(guān)的密碼令牌程式,這些設(shè)備在系統(tǒng)中通過大量的槽運(yùn)行。在密碼設(shè)備的操作與執(zhí)行上,該接口模型主要從設(shè)備中單個或多個必須執(zhí)行密碼操作的程序開始,最后在多個或單個密碼設(shè)備上結(jié)束,流程簡單快捷。
2.4 硬件USB Key數(shù)字證書
在Sun公司發(fā)布J2SE 5.0后,建立了PKCS 11與Java的關(guān)系,以全新提供者的形式(Sun PKCS 11 Provider)將PKCS 11標(biāo)準(zhǔn)融入到J2SE 5.0中。與其他提供者不同的是該種形式?jīng)]有提供PKCS 11標(biāo)準(zhǔn)需要的密碼函數(shù),而是建立了傳統(tǒng)PKCS 11 APIs與JCE(Java Cryptography Extension)APIs,JCA(Java Cryptography Architecture)之間的連接橋梁,方便了Java應(yīng)用程序?qū)CE APIs與JCA的調(diào)用,利用Sun PKCS 11 Provider將其轉(zhuǎn)換為PKCS 11的標(biāo)準(zhǔn)函數(shù)(轉(zhuǎn)化需要一定的配置),最后再利用USB Key通信增強(qiáng)操作的安全性。Sun PKCS 11關(guān)系圖見圖2。
USB Key技術(shù)是新一代身份認(rèn)證產(chǎn)品,該產(chǎn)品結(jié)合了現(xiàn)代智能卡技術(shù)、USB技術(shù)與密碼學(xué)技術(shù),硬件與PIN碼是用戶使用USB Key的必要要素,每一個USB Key都會有相對應(yīng)的硬件PIN碼保護(hù)。在使用過程中,產(chǎn)品用戶只有同時有用戶PIN碼與USB Key才能登入用戶界面,同時在USB Key中還設(shè)計了一定量數(shù)據(jù)存儲空間,主要方便用戶存儲用戶密鑰等保密性較強(qiáng)的數(shù)據(jù),并且存儲的用戶密鑰不能導(dǎo)出,避免其他用戶采用復(fù)制等方式盜取用戶身份信息或數(shù)字證書。隨著網(wǎng)絡(luò)技術(shù)的進(jìn)步,現(xiàn)在USB Key還設(shè)置有智能卡芯片或CPU,可以實現(xiàn)PKI體系的各種算法,主要用于數(shù)據(jù)摘要、簽名或數(shù)據(jù)加密解密,由于USB Key中有內(nèi)置CPU,所有運(yùn)算均在USB Key內(nèi)部進(jìn)行,確保用戶的密鑰不會出現(xiàn)在使用的機(jī)器當(dāng)中,有效降低了黑客盜取用戶信息的機(jī)率,目前USB Key中主要支持3DES,SSF33,RSA等算法。
3 雙因素認(rèn)證實現(xiàn)
3.1 認(rèn)證技術(shù)
用戶身份認(rèn)證通常情況下主要有兩種實現(xiàn)方式:一種為采用用戶密鑰認(rèn)證內(nèi)容,如口令或密碼實現(xiàn);另一種則是運(yùn)用特殊認(rèn)證加強(qiáng)機(jī)制來實現(xiàn),例如USB Key或指令令牌。而雙因素認(rèn)證則是將這兩個因素結(jié)合起來使用。簡單來說,雙因素身份認(rèn)證就是通過你所知道再加上你所能擁有的這兩個要素組合到一起才能發(fā)揮作用的身份認(rèn)證系統(tǒng)。
該系統(tǒng)的服務(wù)器端硬件采用IBM PC服務(wù)器,系統(tǒng)是Windows 2003操作系統(tǒng),LDAP服務(wù)器采用OpenLDAP,數(shù)據(jù)庫為Oracle 9i并結(jié)合J2EE (JBOSS 4.0.5)應(yīng)用服務(wù)器;客戶端硬件設(shè)備是聯(lián)想PC工作站,工作站內(nèi)存設(shè)置為DDR 2G,USB Key采用大明五洲卡,CPU為3.4 GHz,軟件運(yùn)用JDK l.5?11。系統(tǒng)安全性主要依賴MD5和RSA算法,因此該系統(tǒng)的簽名使用RSA簽名函數(shù)、摘要值為MD5摘要函數(shù)。為確保系統(tǒng)信息傳輸?shù)陌踩?,避免出現(xiàn)回放現(xiàn)象,簽名數(shù)據(jù)設(shè)置為用戶名加時間,回放時間不會同步;為了確保具有實際操作價值,該系統(tǒng)的認(rèn)證機(jī)構(gòu)是在 USB Key的J2EE雙因素認(rèn)證技術(shù)下設(shè)置的,并在某J2EE支撐平臺測試成功,在多個業(yè)務(wù)的應(yīng)用系統(tǒng)中得到了應(yīng)用。
3.2 身份認(rèn)證過程
基于超混沌理論身份認(rèn)證協(xié)議過程如圖3所示。
(1) 登錄服務(wù)器用戶首先輸入用戶PIN號,運(yùn)行客戶端的USB Key硬件,提取USB Key中存儲的認(rèn)證信息,觸發(fā)運(yùn)算程序,計算出一個動態(tài)密碼;
(2) 用戶向服務(wù)器發(fā)出認(rèn)證請求,發(fā)送自己的認(rèn)證用戶名和靜態(tài)密碼,USB Key向服務(wù)器發(fā)送認(rèn)證信息;
(3) 服務(wù)器首先檢查用戶的用戶名和密碼是否合法,不合法,則認(rèn)證失敗。如果合法,服務(wù)器讀取數(shù)據(jù)庫存儲的公密鑰,利用公密鑰作為初始值計算得到一個密碼,然后再用K密鑰加密得最終的認(rèn)證密碼;
(4) 比較服務(wù)器生產(chǎn)的密碼與USB Key生產(chǎn)的密碼,如果另個密碼相同,則認(rèn)證成功,如果兩個密碼不同,則認(rèn)證失敗。
3.3 系統(tǒng)安全性能分析
(1) 登錄用戶在利用用戶名和靜態(tài)密碼登錄時,首先與手中的USB Key存儲的信息相結(jié)合,然后登錄服務(wù)器。在USB Key中存儲的認(rèn)證信息是不斷更新的,只要登錄成功過一次,服務(wù)器會自動更新一次USB Key中的信息,保證其無法復(fù)制和破解。
(2) 登錄用戶記住的只是自己的用戶名和密碼,真正的服務(wù)器認(rèn)證信息只存儲在USB Key硬件中。USB Key中的信息調(diào)用需要用戶的認(rèn)證信息,若USB Key硬件丟失,在沒有用戶自己的個人用戶名和密碼的同時,無法調(diào)用USB Key的認(rèn)證信息,也就無法登錄服務(wù)器,不會造成對服務(wù)器的入侵;若USB Key硬件和用戶的個人認(rèn)證信息全丟失,由于USB Key的硬件中沒有服務(wù)器中的運(yùn)算參數(shù),也不參與服務(wù)器的運(yùn)算,所以只對用戶個人信息有影響,不會導(dǎo)致服務(wù)器被攻擊和破壞。
(3) USB Key是不可復(fù)制和破譯的。因為每次產(chǎn)生的口令都是一次性,即本次產(chǎn)生的密碼下次將不再使用,這樣的認(rèn)證機(jī)制確保攻擊者即使得到本次的認(rèn)證信息,再次登錄時也無法登錄,必須使用新的認(rèn)證信息。
4 結(jié) 語
校園服務(wù)器的重要性要求校園服務(wù)器必須具備極佳的安全性,防止其被侵入導(dǎo)致數(shù)據(jù)丟失或者被破壞。J2EE平臺結(jié)合USB Key的雙因素認(rèn)證技術(shù),十分有效地避免了傳統(tǒng)登錄密碼式的安全防護(hù)所帶來的問題,使得校園服務(wù)器的安全防護(hù)更加牢固。另一方面,隨著技術(shù)的不斷進(jìn)步,人們對網(wǎng)絡(luò)服務(wù)器安全意識的不斷提高,J2EE平臺和USB Key結(jié)合的雙因素認(rèn)證技術(shù)會越來越多地得到使用。本文在校園服務(wù)器上的實施也可以給未來的應(yīng)用提供一定的參考價值。
參考文獻(xiàn)
[1] 賈英濤,鄭建德. J2EE平臺雙因素認(rèn)證的設(shè)計與實現(xiàn)[J].廈門大學(xué)學(xué)報(自然科學(xué)版),2007(1):43?46.
[2] 陶以政,吳志杰,唐定勇,等.基于USB Key的J2EE雙因素認(rèn)證系統(tǒng)[J].兵工自動化,2009(9):87?91.
[3] 徐亞東,蔣建國,齊美彬,等.基于單片機(jī)的USB安全鑰設(shè)計與實現(xiàn)[J].國外電子測量技術(shù),2007,26(9):66?69.
[4] 李婉婷.基于J2EE的安全中間件的研究與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2005,26(6):1548?1550.
[5] 宗華,李建民,萬長林.基于數(shù)字證書的Web身份認(rèn)證機(jī)制的研究與實現(xiàn)[J].計算機(jī)與現(xiàn)代化,2005(6):117?119.
[6] 褚新.基于USB Key身份識別在VPN中的研究與實現(xiàn)[J].福建電腦,2009(12):117?118.
[7] 郭麗,張亞利.基于USBKEY的安全認(rèn)證網(wǎng)關(guān)的設(shè)計[J].硅谷,2009(14):48?49.
[8] 陶以政,吳志杰,定勇.基于J2EE的應(yīng)用框架技術(shù)研究[J].計算機(jī)工程與設(shè)計,2007,28(2):826?828.
[9] 劉曉華.J2EE企業(yè)級應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2003.
[10] 北京飛天誠信科技有限公司.飛天ePass系列USB Key身份認(rèn)證技術(shù)[J].信息網(wǎng)絡(luò)安全,2004(11):52.