文/王雁軍
基于開源軟件打造無感知認(rèn)證無線網(wǎng)
文/王雁軍
隨著通訊技術(shù)的飛速發(fā)展以及筆記本、IPad、手機(jī)等智能移動終端的普及,校園網(wǎng)用戶對無線網(wǎng)的使用需求越來越強(qiáng)烈。為了給廣大用戶提供基于移動信息服務(wù)的學(xué)習(xí)、生活環(huán)境,學(xué)校加大了校園無線網(wǎng)的建設(shè)力度,實現(xiàn)了教學(xué)、辦公、生活區(qū)域的無線網(wǎng)全覆蓋,校園無線網(wǎng)擴(kuò)建的同時在線用戶數(shù)也呈現(xiàn)出爆發(fā)式的增長。
出于校園網(wǎng)安全保障的考慮,學(xué)校對校園無線網(wǎng)采取了準(zhǔn)入認(rèn)證模式,但是由于無線覆蓋區(qū)域廣,覆蓋樓宇相對獨(dú)立而且用戶數(shù)量龐大,無線網(wǎng)建設(shè)過程中采取了分區(qū)域建設(shè)的原則,這就為統(tǒng)一管理、統(tǒng)一認(rèn)證,帶來了難度。
基于Web Portal的準(zhǔn)入認(rèn)證
目前比較常用的校園無線網(wǎng)認(rèn)證模式是采用Web Portal的認(rèn)證方式,該方式用戶終端無需安裝客戶端,兼容性較好。Web Portal認(rèn)證的原理如圖1所示,未認(rèn)證用戶訪問網(wǎng)絡(luò)時,HTTP請求會被重新定向到Portal Server的認(rèn)證界面,用戶手動輸入認(rèn)證信息后,由接入控制服務(wù)與AAA認(rèn)證服務(wù)器通過Radius協(xié)議進(jìn)行通信,用戶信息正確,則通過認(rèn)證,否則就拒絕登錄。
Web Portal認(rèn)證遇到的問題
圖1 Web Portal認(rèn)證流程
Web Portal認(rèn)證雖然具有良好的兼容性,但其缺點也很明顯。用戶每次接入都需要進(jìn)行登錄認(rèn)證,對手機(jī)、智能平板等屏幕較小、輸入不方便的終端設(shè)備的易用性不高,尤其是帶有休眠或鎖屏斷網(wǎng)功能的手機(jī),需要頻繁地登錄認(rèn)證,非常繁瑣。另外,由于校內(nèi)不同區(qū)域的無線網(wǎng)由不同的無線控制器管理,跨區(qū)域漫游也會要求重復(fù)認(rèn)證,影響了用戶的體驗效果。
無感知認(rèn)證模式
隨著接入認(rèn)證技術(shù)的發(fā)展,無感知認(rèn)證作為一種全新的具有良好用戶體驗的認(rèn)證方式,有非常廣闊的應(yīng)用前景。無感知認(rèn)證,是指用戶首次成功登錄后,系統(tǒng)自動關(guān)聯(lián)用戶賬號與終端信息,當(dāng)用戶再次登錄時自動識別身份提供服務(wù)的認(rèn)證方式。
實現(xiàn)原理
在校園內(nèi),用戶之間對智能設(shè)備的使用能力和應(yīng)用水平差異較大,這就對無線接入認(rèn)證方式的易用性和便捷性提出了較高的要求。無論是PC、筆記本還是移動終端,通訊都是基于MAC地址實現(xiàn)的,如果對接入終端的MAC進(jìn)行認(rèn)證,可以在用戶較少的操作下實現(xiàn)接入認(rèn)證。具體認(rèn)證的流程如下:用戶首次登錄,自動彈出認(rèn)證界面,用戶輸入認(rèn)證信息并且選擇是否綁定設(shè)備;用戶再次登錄時,系統(tǒng)自動判斷用戶是否已經(jīng)進(jìn)行綁定,若已經(jīng)綁定,則自動登錄;若未綁定,則彈出認(rèn)證界面。使用無感知認(rèn)證后,終端無需安裝客戶端程序即可實現(xiàn)自動登錄,認(rèn)證過程對用戶透明,具有良好的兼容性,另外也可以有效地解決用戶在跨AC漫游時重復(fù)彈出認(rèn)證界面的困擾。
圖2 無線網(wǎng)無感知認(rèn)證示意流程
圖3 用戶首次登陸認(rèn)證界面
基于開源軟件的無感知認(rèn)證實現(xiàn)
要實現(xiàn)上述的校園網(wǎng)無感知認(rèn)證功能,主要是對Radius協(xié)議認(rèn)證部分進(jìn)行更改,實現(xiàn)用戶信息與終端MAC地址的綁定。本文采用開源軟件TinyRadius來實現(xiàn)需求功能。TinyRadius是基于Java語言實現(xiàn)的簡單、小巧、強(qiáng)大的Radius類庫,能夠非常方便的實現(xiàn)在應(yīng)用程序中發(fā)送和接收所有類型Radius數(shù)據(jù)包的功能,同時還支持PAP和CHAP認(rèn)證類型。
實現(xiàn)本文所述無線網(wǎng)無感知認(rèn)證的流程如圖2所示,當(dāng)移動終端A發(fā)起網(wǎng)絡(luò)連接請求后,由無線控制器利用終端的MAC地址與Radius認(rèn)證程序進(jìn)行數(shù)據(jù)交互,若Raidus認(rèn)證程序在數(shù)據(jù)服務(wù)器中查到終端的綁定信息,則返回登錄成功包給無線控制器,并且在數(shù)據(jù)服務(wù)器中記錄本次登錄信息;若Radius認(rèn)證程序沒有找到終端的綁定信息,則向無線控制器返回登錄失敗包,無線控制器將終端的請求重定向到Portal服務(wù)器,發(fā)起Portal認(rèn)證流程,用戶輸入用戶名和密碼后再由無線控制器向Radius認(rèn)證程序發(fā)起認(rèn)證,Radius認(rèn)證程序?qū)邮盏降男畔⑦M(jìn)行認(rèn)證,并且對登錄成功的終端進(jìn)行綁定。
在認(rèn)證實現(xiàn)過程中,用戶名、密碼、登錄IP地址、終端MAC地址等是最重要的屬性,我們通過TinyRadius中提供的方法可以非常容易獲取到,示例代碼如下:
//構(gòu)造Radius包AccessRequest方法
AccessRequest accessRequest = new AccessRequest ();
//獲取登錄用戶名
String userName = accessRequest.getUserName();
//獲取登錄密碼
String password = accessRequest.getUserPassword();
//獲取登錄終端MAC
Stringlogin Mac=access Request. getAttributeValue("Calling-Station-Id");
//獲取登錄終端IP地址
String loginIP = accessRequest.getAttributeValue("Framed-IP-Address");
為了實現(xiàn)用戶自主選擇是否啟用無感知登錄的功能,我們擴(kuò)展了Radius協(xié)議的161屬性,當(dāng)屬性值為1時啟用無感知,當(dāng)屬性值為0時不啟用無感知,示例代碼如下:
int isNoPerception =
access Request.get Vendor Attribute(6339). getSubAttribute(161).getAttributeValue().toString();
If(isNoPerception==1){
//此處進(jìn)行無感知登錄處理
}else{
//此處進(jìn)行非感知登錄處理
}
運(yùn)行效果
校園無線網(wǎng)無感知認(rèn)證程序上線以來,得到了廣大用戶的認(rèn)可,上線首日綁定用戶數(shù)超過500人,上線一個月綁定用戶數(shù)達(dá)到4932人。圖3為用戶首次登錄時,彈出的認(rèn)證界面,用戶可以選擇輸入用戶密碼直接登錄,也可以勾選“下次免認(rèn)證”的選框,實現(xiàn)綁定終端登錄信息。
圖4是后臺監(jiān)控程序針對兩種登錄模式的日志信息,從后臺數(shù)據(jù)的統(tǒng)計中我們發(fā)現(xiàn),使用無感知的人數(shù)占到了無線網(wǎng)用戶數(shù)的98%。
圖4 后臺監(jiān)控:無感知登錄
實現(xiàn)了跨區(qū)域漫游認(rèn)證
校園網(wǎng)無線網(wǎng)使用呈現(xiàn)出集中爆發(fā)式,大量用戶在同一段時間段、同一區(qū)域進(jìn)行集中登錄。8:30至10:30以教學(xué)區(qū)用戶最為集中,18:00至21:00以宿舍區(qū)最為集中,平均每分鐘認(rèn)證用戶數(shù)超過500人,智能手機(jī)占到了90%,龐大的用戶群體,每天在宿舍區(qū)與教學(xué)區(qū)之間遷移,對認(rèn)證服務(wù)器形成了沖擊,以往使用Web Portal認(rèn)證時,經(jīng)常會由于瞬間并發(fā)太大出現(xiàn)服務(wù)響應(yīng)較慢的情況,用戶體驗較差。在實現(xiàn)無感知認(rèn)證后,實現(xiàn)了全網(wǎng)漫游認(rèn)證,用戶無論移動到哪里,手機(jī)加入無線熱點時,自動登錄認(rèn)證,由于Radius處理程序性能遠(yuǎn)遠(yuǎn)高于Portal認(rèn)證性能,用戶幾乎很少出現(xiàn)登錄不成功的情況。
實現(xiàn)了跨品牌漫游認(rèn)證
在以往的校園無線網(wǎng)建設(shè)過程中,為了保證技術(shù)方案的統(tǒng)一性和用戶使用習(xí)慣的相似性,經(jīng)常使用同一品牌的無線解決方案,這就對校園無線網(wǎng)的擴(kuò)容形成了一定的局限性,在利用開源軟件實現(xiàn)無感知認(rèn)證后,認(rèn)證功能轉(zhuǎn)移到Radius服務(wù)器上,實現(xiàn)了自主管控,從而擺脫了對品牌的依賴性,可以構(gòu)建多品牌兼容的、具有統(tǒng)一應(yīng)用效果的校園無線網(wǎng)生態(tài)系統(tǒng)。
使用需求與管理需求一并解決
在校園網(wǎng)環(huán)境中,用戶的使用需求與管理的需求一直對立存在,用戶希望越來越簡單,越來越開放,而管理卻要求越來越安全,越來越精細(xì)。這種對立在無線網(wǎng)中體現(xiàn)的更加明顯,無線網(wǎng)的優(yōu)勢是不受地域、環(huán)境的限制,可以隨時隨地的接入網(wǎng)絡(luò),而校園網(wǎng)環(huán)境中眾多的內(nèi)部資源、私有數(shù)據(jù)又迫使管理者不得不對接入的終端進(jìn)行細(xì)致的管控,無線網(wǎng)實現(xiàn)了統(tǒng)一的無感知認(rèn)證后,雖然對用戶來說上網(wǎng)的行為變得非常簡單,甚至感覺不到認(rèn)證過程,但是對管理者來說,哪個用戶接入了,從哪里接入的都是清清楚楚,這就既滿足了使用者對于簡單、開放的需求,又讓管理者可以精細(xì)地了解網(wǎng)絡(luò)運(yùn)行的狀況,保障了內(nèi)網(wǎng)環(huán)境的完全。
(作者單位為北京林業(yè)大學(xué)信息中心)