本發(fā)明屬于無線安全領(lǐng)域,把一次性密碼技術(shù)應(yīng)用到無線局域網(wǎng)登錄上。
背景技術(shù):
作為一種公共移動(dòng)數(shù)據(jù)接入方式,PWLAN(公共無線局域網(wǎng))的安全問題成為商業(yè)用戶最關(guān)心的問題,包括合法用戶身份信息(假冒)的安全,敏感商業(yè)信息的安全,防止黑客的攻擊等等,成為影響人們使用PWLAN業(yè)務(wù)信心的關(guān)鍵問題。
目前無線局域網(wǎng)在全球快速發(fā)展,網(wǎng)絡(luò)建設(shè)所采用的方法也都不盡相同,在某種程度上可以說是混亂的,在公共區(qū)域中尤為如此。根據(jù)Wi-Fi聯(lián)盟的資料顯示,目前最普遍接入方式是基于瀏覽器認(rèn)證,亦稱作通用接入方法(UAM)。通過瀏覽器認(rèn)證,接入控制器將用戶的瀏覽器重定位到一個(gè)本地Web服務(wù)器,其過程受TLS保護(hù)。用戶到UAM登陸頁面進(jìn)行身份認(rèn)證,在發(fā)送到Web服務(wù)器的表格中輸入用戶名和密碼。這種方法的顯著優(yōu)點(diǎn)是配置簡單,并且事實(shí)上移動(dòng)用戶只需支持Web瀏覽就可以訪問接入系統(tǒng)。
雖然UAM簡單并且易于采用,它有一些嚴(yán)重的缺陷。1)用戶的經(jīng)驗(yàn)。若用戶的目的是使用諸如e-mail客戶端的其它一些應(yīng)用程序,進(jìn)行網(wǎng)絡(luò)訪問的第一步,也就是打開瀏覽器,就并不習(xí)慣。2)企業(yè)用戶經(jīng)常需要進(jìn)行VPN的配置,這與訪問一個(gè)本地的Web服務(wù)器是相沖突的。3)典型的,UAM把用戶的認(rèn)證信息暴露給所訪問網(wǎng)絡(luò)的Web服務(wù)器。這一特征對(duì)于不愿暴露用戶數(shù)據(jù)庫的運(yùn)營商而言是無法接受的,即使是暴露給合法的漫游伙伴。4)除非用戶手工檢查服務(wù)器使用的證書以保護(hù)頁面(用戶極少這樣做),用戶的認(rèn)證信息可能在不經(jīng)意間透露給一個(gè)運(yùn)行惡意無線接入點(diǎn)(AP)的攻擊者。
有線局域網(wǎng)通過固定線路連接組建,計(jì)算機(jī)終端通過網(wǎng)絡(luò)接入固定位置物理端口,實(shí)現(xiàn)局域網(wǎng)接入,這里沒有直接控制到端口的方法,也不需要控制到端口,這些固定位置的物理端口構(gòu)成有線局域網(wǎng)的封閉物理空間。但是,由于無線局域網(wǎng)的網(wǎng)絡(luò)空間具有開放性和終端可移動(dòng)性,因此很難通過網(wǎng)絡(luò)物理空間來界定終端是否屬于該網(wǎng)絡(luò)。隨著無線局域網(wǎng)的廣泛應(yīng)用,如何通過端口認(rèn)證來實(shí)現(xiàn)用戶級(jí)的接入控制就成為一項(xiàng)非?,F(xiàn)實(shí)的問題。802.1X正是基于這一需求而出現(xiàn)的一種認(rèn)證技術(shù),也就是說,對(duì)于有線局域網(wǎng),該項(xiàng)認(rèn)證沒有存在的意義。
IEEE 802.1X協(xié)議,稱為基于端口的訪問控制協(xié)議(Port Based Network Access Control Protocol)是由IEEE于2001年6月提出的,符合IEEE 802協(xié)議集的局域網(wǎng)接入控制協(xié)議,主要目的是為了解決無線局域網(wǎng)用戶的接入認(rèn)證問題,能夠在利用IEEE 802局域網(wǎng)優(yōu)勢(shì)的基礎(chǔ)上提供一種對(duì)連接到局域網(wǎng)用戶的認(rèn)證和授權(quán)手段,達(dá)到接受合法用戶接入,保護(hù)網(wǎng)絡(luò)安全的目的。
目前,IEEE 802.1X認(rèn)證協(xié)議作為業(yè)界最新的標(biāo)準(zhǔn)認(rèn)證協(xié)議已經(jīng)得到了很多網(wǎng)絡(luò)設(shè)備制造商的重視,Cisco、3Com、Avaya、D-Link等紛紛組織研發(fā)力量進(jìn)行基于802.1X協(xié)議相關(guān)產(chǎn)品的開發(fā)。作為軟件廠商,微軟在Windows XP中已經(jīng)整合了IEEE 802.1X客戶端軟件,無需要另外安裝客戶端軟件。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種一次性密碼登錄無線局域網(wǎng)的方法,進(jìn)行路由器登錄認(rèn)證,實(shí)施過程相對(duì)簡單,密碼時(shí)效短,安全性較高,適用于支持802.1x的路由器。
本發(fā)明采用的技術(shù)方案為:一種一次性密碼登錄無線局域網(wǎng)的方法,客戶端根據(jù)共享密鑰、路由器SSID和客戶端的UNIX時(shí)間戳,使用一次性密碼生成算法生成一個(gè)一次性密碼,然后在登錄路由器時(shí)輸入用戶名及該一次性密碼,路由器把用戶名傳給認(rèn)證服務(wù)器,認(rèn)證服務(wù)器根據(jù)用戶名在數(shù)據(jù)庫中取到共享密鑰,然后再根據(jù)路由器SSID及認(rèn)證服務(wù)器的UNIX時(shí)間戳也生成一個(gè)密碼,比較客戶端發(fā)送的密碼與認(rèn)證服務(wù)器生成的密碼是否一致,一致則認(rèn)證成功。
如圖1所示,所述一次性密碼生成算法如下:
第一步,客戶端和認(rèn)證服務(wù)器由無線局域網(wǎng)系統(tǒng)的密鑰管理中心頒布一個(gè)共享密鑰K,客戶端和認(rèn)證服務(wù)器Radius分別保存;
第二步,計(jì)算時(shí)間參數(shù)T,T=(CurrentUnixTime-T0)/X,CurrentUnixTime為當(dāng)前系統(tǒng)的UNIX時(shí)間戳,即從1970年1月1日到當(dāng)前時(shí)間的秒數(shù),T0為起始時(shí)間,可設(shè)為0,X為步長,即一次性密碼有效時(shí)間,T的長度為8字節(jié);
第三步,計(jì)算SM3(K+T+SSID),SSID為路由器名稱,先把共享密鑰K、時(shí)間參數(shù)T和SSID連在一起組成一串字符串,然后對(duì)字符串做SM3算法,即國家密碼標(biāo)準(zhǔn)算法,SM3算法輸出是一個(gè)長為256bit的二進(jìn)制串;
第四步,利用DT()函數(shù)將SM3(K+T+R)截短、變換,輸出一個(gè)8位數(shù)字,即TOTP(基于時(shí)間的一次性密碼)值。
本發(fā)明的有益效果是:現(xiàn)在商用領(lǐng)域,基于時(shí)間的一次性密碼基本上只由共享密鑰和時(shí)間決定,而且在路由器認(rèn)證方面基本沒有人使用基于時(shí)間的一次性密碼,大多是給手機(jī)發(fā)送一個(gè)驗(yàn)證碼,來完成一次性密碼登錄。而本發(fā)明首先把基于時(shí)間的一次性密碼應(yīng)用到無線局域網(wǎng)認(rèn)證,而且在傳統(tǒng)的基于時(shí)間的一次性密碼的基礎(chǔ)上,本發(fā)明加入了路由器的名稱SSID作為算法的第三個(gè)變量,使得本發(fā)明的一次性密碼更加靈活安全。本發(fā)明技術(shù)原理和實(shí)施過程均相對(duì)簡單,密碼時(shí)效短,安全性較高。
附圖說明
圖1為一次性口令生成算法示意圖;
圖2為認(rèn)證流程示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、原理、技術(shù)方案和優(yōu)點(diǎn)更加清晰明白,以下結(jié)合具體實(shí)施例,并參照附圖對(duì)本發(fā)明做詳細(xì)的說明。
本發(fā)明實(shí)施例把區(qū)域分為客戶端(PC、移動(dòng)端)、設(shè)備端和認(rèn)證服務(wù)器三部分。
客戶端系統(tǒng),稱作申請(qǐng)者,一般為一個(gè)用戶終端系統(tǒng),該終端系統(tǒng)通常要安裝一個(gè)客戶端軟件,當(dāng)用戶有上網(wǎng)需求時(shí),通過啟動(dòng)這個(gè)客戶端軟件發(fā)起IEEE 802.1X協(xié)議的認(rèn)證過程。為了支持基于端口的接入控制,客戶端系統(tǒng)需支持EAPOL協(xié)議。
設(shè)備端,在WLAN中就是無線接入點(diǎn)(wireless access point),在認(rèn)證過程中只起到透?jìng)鞯墓δ?,所有的認(rèn)證工作在申請(qǐng)和認(rèn)證服務(wù)器上完成。
認(rèn)證服務(wù)器,通常采用遠(yuǎn)程接入用戶認(rèn)證服務(wù)(Remote Authentication Dial-In Service,RADIUS)的服務(wù)器,該服務(wù)器可以存儲(chǔ)有關(guān)用戶的信息,通過檢驗(yàn)客戶端發(fā)送來的信息來判別用戶是否有權(quán)使用網(wǎng)絡(luò)系統(tǒng)提供的網(wǎng)絡(luò)服務(wù)。
本發(fā)明按以下步驟實(shí)現(xiàn),如圖2所示:
第一步,客戶端利用密碼生成工具執(zhí)行一次性密碼生成算法,先把共享密鑰K、時(shí)間參數(shù)T和路由器名稱SSID連在一起組成一串字符串,然后對(duì)字符串做SM3算法,輸出一個(gè)長為256bit的二進(jìn)制串,利用DT()函數(shù)將SM3(K+T+R)截短、變換,輸出一個(gè)8位數(shù)字,即為臨時(shí)密碼TOTP_client。
第二步,用戶連接設(shè)備端,輸入用戶名及密碼。
第三步,設(shè)備端收到客戶端發(fā)來的用戶名后,把用戶名發(fā)送給Radius服務(wù)器。
第四步,Radius服務(wù)器將該信息與數(shù)據(jù)庫中的用戶名列表中對(duì)比,找到該用戶名,得到共享密鑰,由于可能存在傳輸延遲或本地時(shí)間不同步,同時(shí)計(jì)算時(shí)間參數(shù)為T-2到T+2的一次性密碼,得到5個(gè)密碼,并用隨機(jī)生成的一個(gè)MD5Challenge(隨機(jī)生成的一個(gè)字符串,用于與密碼串在一起做MD5算法)消息對(duì)這5個(gè)密碼都進(jìn)行加密處理,然后將此MD5Challenge消息發(fā)送給設(shè)備端。
第五步,設(shè)備端把MD5Challenge消息轉(zhuǎn)發(fā)給客戶端。
第六步,客戶端在收到由設(shè)備端傳來的MD5Challenge消息后,用該Challenge消息對(duì)密碼部分進(jìn)行加密處理,然后把加密后的密碼發(fā)送給設(shè)備端。
第七步,設(shè)備端又將收到的加密后的密碼發(fā)送給Radius服務(wù)器。
第八步,Radius服務(wù)器將收到的已加密的密碼信息,與第三步在本地經(jīng)過加密運(yùn)算后的5個(gè)密碼信息進(jìn)行對(duì)比,如果有一個(gè)相同則認(rèn)為為合法用戶,并向設(shè)備端發(fā)送認(rèn)證通過報(bào)文。
第九步,設(shè)備收到認(rèn)證通過報(bào)文后,將端口改為授權(quán)狀態(tài),允許用戶通過端口訪問網(wǎng)絡(luò)。
以上所述實(shí)施例僅為更好的說明本發(fā)明的目的、原理、技術(shù)方案和有益效果。所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。