1 引言
遠程認證撥號用戶服務協議(Remote Authentication Dial In User Service, RADIUS)最初是由Livingston公司提出的一個為撥號用戶提供認證和計費的協議。后經多次改進,逐漸成為一項通用的網絡認證、計費協議,并定義于IETF提交的RFC2865和RFC2866文件中。RADIUS協議以Client/Server方式工作,客戶端為網絡接入服務器(NAS),它向RADIUS服務器提交認證、計費等信息,RADIUS服務器處理信息并將結果返回給NAS。
RADIUS協議的應用范圍很廣,在移動、數據、智能網等業務的認證、計費系統中都有所應用。無線局域網的802.1X認證框架中,在認證端也建議使用RADIUS協議。
本文將論述RADIUS協議的原理,并探討它在WLAN中的應用及實現方案。
2 RADIUS協議
2.1? WLAN網絡模型
實際商用的無線局域網,可以用局域網交換機來實現802.1X認證協議中的端口控制功能。為保證網絡的安全性,在無線局域網的出口和認證端應加上防火墻。RADIUS服務器和數據庫還可以采取主、備結構,以保證網絡的健壯性。
網絡模型如下圖所示:
?
?
?
圖1? 無線局域網網絡模型
無線局域網的認證端由RADIUS服務器、網絡接入服務器(NAS)和數據庫組成。其中:
NAS:作為RADIUS服務器的客戶端,向RADIUS服務器轉交用戶的認證信息。并在用戶通過認證之后,向RADIUS服務器發送計費信息。
RADIUS服務器:作為認證系統的中心服務器,它與NAS、數據庫相連,它接受來自NAS提交的信息,對數據庫進行相應的操作,并把處理結果返回給NAS。
數據庫:用于保存所有的用戶信息、計費信息和其他信息。用戶信息由網絡管理員添加至數據庫中;計費信息來自于RADIUS服務器;其他信息包括日志信息等。
2.2? RADIUS的數據包結構
RADIUS是應用層的協議,在傳輸層它的報文被封裝在UDP的報文中,進而封裝進IP包。RADIUS認證使用1812端口,計費使用1813端口。
以太網上的RADIUS封裝后的包結構:
?
?
?
RADIUS數據包分為5個部分:
(1) Code:1個字節,用于區分RADIUS包的類型:常用類型有:
接入請求(Access-Request),Code=1;接入應答(Access-Accept),Code=2;接入拒絕(Access-Reject),Code=3;計費請求(Accounting-Request),Code=4等。
(2)Identifier:一個字節,用于請求和應答包的匹配。
(3)Length:兩個字節,表示RADIUS數據區(包括Code, Identifier, Length, Authenticator, Attributes)的長度,單位是字節,最小為20,最大為4096。
?。?)Authenticator:16個字節,用于驗證服務器端的應答,另外還用于用戶口令的加密。RADIUS服務器和NAS的共享密鑰(Shared Secret)與請求認證碼(Request Authenticator)和應答認證碼(Response Authenticator),共同支持發、收報文的完整性和認證。另外,用戶密碼不能在NAS和RADIUS 服務器之間用明文傳輸,而一般使用共享密鑰(Shared Secret)和認證碼(Authenticator)通過MD5加密算法進行加密隱藏。
?。?)Attributes:不定長度,最小可為0個字節,描述RADIUS協議的屬性,如用戶名、口令、IP地址等信息都是存放在本數據段。
2.3 RADIUS的認證、計費過程
如圖1網絡模型所示:
(1)申請者登錄網絡時,NAS會有一個客戶定義的Login提示符要求申請者輸入用戶信息(用戶名和口令),申請者輸入相關的認證信息后,等待認證結果。
(2)NAS在得到用戶信息后,將根據RADIUS的數據包格式,向RADIUS服務器發出“接入請求”(Access-Request)包。包中一般包括以下RADIUS屬性值:用戶名、用戶口令、訪問服務器的ID、訪問端口的ID。
?。?)當RADIUS服務器收到“接入請求”包后,首先驗證NAS的共享密碼與RADIUS服務器中預先設定的是否一致,以確認是所屬的RADIUS客戶端。在查驗了包的正確性之后,RADIUS服務器會依據包中的用戶名在用戶數據庫中查詢是否有此用戶記錄。如果用戶信息不符合,就向NAS發出“接入拒絕”(Access-Reject)包。NAS在收到拒絕包后,會立即停止用戶連接端口的服務要求,用戶被強制退出。
(4)如果用戶信息全部符合,服務器向NAS發出“接入質詢”包(Access-Challenge),對用戶的登錄請求作進一步的驗證。其中包括:用戶口令、用戶登錄訪問服務器的IP、用戶登錄的物理端口號等。NAS收到“接入質詢”包后,將消息顯示給用戶,要求用戶進一步確認登錄請求。用戶再次確認后,RADIUS服務器將比較兩次的請求信息,決定如何響應用戶(發送Access-Accept、Access-Reject或再一次的Access-Challenge)。
?。?)當所有的驗證條件和握手會話均通過后,RADIUS服務器會將數據庫中的用戶配置信息放在“接入接受”(Access-Accept)包中返回給NAS,后者會根據包中的配置信息限定用戶的具體網絡訪問能力。包括服務類型:SLIP、PPP、Login User、Rlogin、Framed、Callback等等。還包括與服務類型相關的配置信息:IP地址、時間限制等等。
(6)在所有的驗證、授權完成后,局域網交換機的控制端口被打開。用戶可以通過交換機進入網絡。同時,NAS向RADIUS服務器發送 “計費請求開始”包(Accounting-Request Start),通知RADIUS服務器開始計費。當用戶下網時,NAS向RADIUS服務器發送“計費請求結束”包(Accounting-Request Stop),RADIUS服務器根據計費包的信息計算用戶使用網絡的費用。
評論
查看更多