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