吳賢平
(溫州大學,溫州 325035)
由于傳統認證(Authentication,又稱鑒別)方式對校園網中用戶數據包繁瑣的處理造成了網絡傳輸瓶頸,而通過增加其他網絡設備來解決傳輸瓶頸勢必造成網絡成本的提升,因此無法滿足用戶對網絡安全性、高效性和低成本的要求。IEEE 802.1x通過對認證方式和認證體系結構進行優化,有效地解決了傳統PPPoE和Web/Portal認證方式帶來的問題,消除了網絡瓶頸,減輕了網絡封裝開銷,降低了建網成本,從而成為當前校園網選型的一個熱點。
802.1 x作為一個認證協議,在實現的過程中有很多重要的工作機制[1,2](如圖1所示)。

圖1 IEEE 802.1x協議的工作機制
認證的發起可以由用戶主動發起,也可以由認證系統發起。當認證系統探測到未經過認證的用戶使用網絡,就會主動發起認證;用戶端則可以通過客戶端軟件向認證系統發送EAPOL-Start報文發起認證。

圖2 802.1x協議的體系結構
IEEE 802.1x協議的體系結構包括三個重要的部分:Supplicant System客戶端、Authenticator System認證系統、Authentication Server System認證服務器。圖2描述了三者之間的關系以及互相之間的通信。
客戶端系統一般為一個用戶終端系統,該終端系統通常要安裝一個客戶端軟件,用戶通過啟動這個客戶端軟件發起802.1x協議的認證過程。為支持基于端口的接入控制,客戶端系統需支持EAPOL(Extensible Authentication Protocol Over LAN)協議[3,4]。
常見的寬帶接入用戶認證方式主要有三種:PPPoE、Web/Portal、802.1x。
1)PPPoE認證方法采用安裝在端局BNAS或支持PPPoE的交換機, 負責終結由用戶PC發起的PPPoE進程, 并在BNAS后面連接認證服務器和計費服務器。用戶登錄時,BNAS將用戶名和密碼傳送至認證服務器, 驗證通過后, 用戶接入網絡并開始計費。PPPoE認證操作簡單且用戶較容易接受,能夠很好地實現用戶計費、在線檢測和速率控制等功能。但PPP協議與以太網技術存在本質上的差異, 需要被再次封裝到以太網的幀里, 存在封裝效率問題。
2)Web/Portal認證是一種業務類型的認證, 通過啟動一個Web頁面輸入用戶名和密碼, 實現身份認證。該認證方式無需特殊的客戶端軟件, 降低了網絡維護工程量; 無需多層數據封裝, 保證效率。但Web認證基于應用層協議, 建網成本高, 易用性不夠好, 開放性不夠好, 沒有統一標準。
3)802.1x認證的特點: 協議為兩層協議, 對設備的整體性能要求不高, 但要求認證系統內的所有設備都必須支持802.1x協議, 用戶需要安裝客戶端軟件; 對組播業務的支持性很好, 易于支持多業務和新興流媒體業務; 可以映射不同的用戶認證等級到不同的VLAN; 不需要進行協議間的多層封裝; 認證與業務分離, 用戶通過認證后, 系統對后續的數據包無特殊處理, 有效地解決了網絡“瓶頸”。
客戶端在邏輯結構上分為兩部分:第一部分是底層的協議實現,第二部分是與用戶交互的界面設計。底層部分參照802.1x協議設計,并進行相應的修改,最終生成一個動態鏈接庫方便上層調用[6]。下面就數據包封裝、數據包發送和功能設計等進行詳細說明。
3.1.1 數據包封裝
用戶接入認證的客戶端主要完成對二層數據幀的封裝以及發送,并響應NAS的數據幀。設計的客戶端程序修改原有認證過程中第三步(如圖1)的數據幀EAP-Response/Identity,在其中加入認證需要的用戶IP和MAC地址,即在響應NAS發送EAP-Request/Identity的時候。修改后的數據幀如圖3所示。

圖3 修改后的EAP-Response數據幀結構
3.1.2 數據包發送
數據包發送功能利用了Winpcap(Windows packet capture)提供的免費接口來實現底層數據包的收發工作,Winpcap是windows平臺下一個免費、公共的網絡訪問系統。開發Winpcap這個項目的目的在于為win32應用程序提供訪問網絡底層的能力。它提供了以下的各項功能:
1)捕獲原始數據包,包括在共享網絡上各主機發送/接收的以及相互之間交換的數據包;
2)在數據包發往應用程序之前,按照自定義的規則將某些特殊的數據包過濾掉:
3)在網絡上發送原始的數據包;
4)收集網絡通信過程中的統計信息。
Winpcap提供了一系列的API,我們可以通過這些API在沒有任何另外中間層參與的情況下實現Ethernet網絡報文的截取。
在應用開源的項目FreeRadius時,考慮實際需要,添加如下功能:
3.2.1 分階段認證功能
在FreeRadius中實現了分階段認證,第一階段的主機認證(IP和MAC)在數據庫中做認證,第二階段的用戶信息認證(用戶名和密碼)也在數據庫中做認證。
3.2.2 日志導出功能
在用戶通過認證后,FreeRadius中實現了把用戶連接后的日志信息記錄到數據庫中,包括用戶登錄時間、下線時間、用戶IP和MAC地址、用戶連接的NAS地址等信息。
3.2.3 單一用戶登錄功能
當用戶連接而沒有發出下線請求,同時相同的用戶名(在另一臺計算機上)再次登錄時,會提示出錯信息。這樣可以設定相同用戶名可以同時登錄的數目,防止帳號盜用。
3.2.4 帳號到期功能
分配帳號時,會預先設置帳號到期時間,過期后用戶將不能再登錄。這樣可以設定用戶帳號使用的有效日期。
FreeRadius是開源的免費使用的RADIUS服務器。FreeRadius已經具有了商業化RADIUS大部分的功能。FreeRadius支持LDAP、MySQL、PostgreSQL和Oracle數據庫;它還支持多種加密類型,如EAP-MD5、EAP-TTLS和Cisco LEAP。本文中RADIUS服務器正是采用了FreeRadius 1.1.7,并在此基礎上做出修改。
數據庫服務器采用oracle9.2.0.1,認證時可以用于存儲用戶的帳號信息和計算機認證信息。用戶帳號數據庫服務器保存所有用戶上網的用戶名和密碼,不但對安全性要求很高,而且對于日后的網絡日常使用、管理和維護有很大的影響。因此,將數據庫服務器部署在網絡中心,并且與認證計費服務器Radius分開,再由核心交換機的ACL功能允許認證計費服務器Radius訪問它,從而進一步提高后臺數據的安全性。
Web服務器用于客戶端軟件的升級,采用Apache Server作為升級服務器。在Web服務器上使用雙網卡。內網網卡與數據服務器連接,交換數據。外網網卡接入校園網服務器區,提供給校園網系統通過TCP/IP可以訪問的Web服務器。測試用的客戶端操作系統為WinXP。
測試用的NAS為華為的S系列的S3300交換機。
為了測試客戶端和服務器是否能正常工作,以及是否實現了預期的功能,設計了一些實際中出現的一些情況來加以測試,測試如下。
1)用戶A用計算機C上網時,利用用戶A的帳號、密碼和計算機C的IP和MAC地址進行認證,當兩個認證都通過,才能夠接入網絡;另外一個用戶B也可以利用自己的帳號在計算機C上網,此時認證的則是B的用戶名和密碼,以及計算機C的IP和MAC地址。A也可以在校園網內任何一臺IP和MAC設置正確的計算機上利用自己的帳號上網。測試目的:檢測用戶信息認證和主機認證是否能分開進行,以及認證信息在整個校園網中的統一性。
2)用戶A用計算機C上網時,同時用戶B用計算機D上網,但是B盜用A的帳戶,則此時會給出錯誤提示。測試目的:檢測用戶帳號重登錄數,即默認情況下設置用戶帳號只能登錄一次。
3)用戶A用計算機C上網時,當超過預期帳號的合法日期后,就會提示出錯。測試目的:檢測用戶帳號有效日期的正確性,即用戶只能在帳號合法日期內進行認證。
4)用戶A用計算機C上網時,可以連接 WEB服務器來檢測是否有新版本的客戶端程序,如果有則進行升級,升級后仍舊可以正常訪問網絡資源。測試目的:檢測WEB服務器是否正常工作,以及客戶端升級是否正常。
5)上述過程在另一臺NAS上也能夠達到預期的目的。
改進后的802.1x認證技術能夠比較好地解決現階段所面臨的用戶身份認證和應用終端的安全性問題,而且改進后的協議也能進一步增強網絡安全性,達到了設計要求和實現目的。但正如大家所共知的,任何一項技術都不可能解決目前所面臨的全部問題。因此,僅僅依靠802.1x這項技術來解決校園身份管理系統中的用戶身份認證和應用終端所面臨的所有安全問題是不現實的。只有多項技術和相關的管理規定有機結合,才能構建一個真正安全、可靠的網絡環境。
[1]許亦鏡.802.1x協議在校園網中的應用[J].閩江學院學報,2008,(2):13.
[2]韓榮珍.深入剖析802.1x協議[J].計算機安全,2008,(11):25.
[3]嚴小英,溫川.基于802.1x網絡的一卡通實現[J].中國教育網絡,2008,(5):36.
[4]何江.基于802.1x的校園網認證系統研究與實現[D].山西: 太原理工大學, 2003.
[5]張毅,高東懷,許衛中,等.校園網網絡用戶安全身份認證體系分析[J].醫療衛生裝備, 2008,(4):23.