當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]無線局域網(wǎng)中RADIUS協(xié)議的分析和設計

1 引言

  遠程認證撥號用戶服務協(xié)議(Remote Authentication Dial In User Service, RADIUS)最初是由Livingston公司提出的一個為撥號用戶提供認證和計費的協(xié)議。后經(jīng)多次改進,逐漸成為一項通用的網(wǎng)絡認證、計費協(xié)議,并定義于IETF提交的RFC2865和RFC2866文件中。RADIUS協(xié)議以Client/Server方式工作,客戶端為網(wǎng)絡接入服務器(NAS),它向RADIUS服務器提交認證、計費等信息,RADIUS服務器處理信息并將結果返回給NAS。

  RADIUS協(xié)議的應用范圍很廣,在移動、數(shù)據(jù)、智能網(wǎng)等業(yè)務的認證、計費系統(tǒng)中都有所應用。無線局域網(wǎng)的802.1X認證框架中,在認證端也建議使用RADIUS協(xié)議。

  本文將論述RADIUS協(xié)議的原理,并探討它在WLAN中的應用及實現(xiàn)方案。

  2 RADIUS協(xié)議

  2.1  WLAN網(wǎng)絡模型

  實際商用的無線局域網(wǎng),可以用局域網(wǎng)交換機來實現(xiàn)802.1X認證協(xié)議中的端口控制功能。為保證網(wǎng)絡的安全性,在無線局域網(wǎng)的出口和認證端應加上防火墻。RADIUS服務器和數(shù)據(jù)庫還可以采取主、備結構,以保證網(wǎng)絡的健壯性。

  網(wǎng)絡模型如下圖所示:

 

 

 

  圖1  無線局域網(wǎng)網(wǎng)絡模型

  無線局域網(wǎng)的認證端由RADIUS服務器、網(wǎng)絡接入服務器(NAS)和數(shù)據(jù)庫組成。其中:

  NAS:作為RADIUS服務器的客戶端,向RADIUS服務器轉(zhuǎn)交用戶的認證信息。并在用戶通過認證之后,向RADIUS服務器發(fā)送計費信息。

  RADIUS服務器:作為認證系統(tǒng)的中心服務器,它與NAS、數(shù)據(jù)庫相連,它接受來自NAS提交的信息,對數(shù)據(jù)庫進行相應的操作,并把處理結果返回給NAS。

  數(shù)據(jù)庫:用于保存所有的用戶信息、計費信息和其他信息。用戶信息由網(wǎng)絡管理員添加至數(shù)據(jù)庫中;計費信息來自于RADIUS服務器;其他信息包括日志信息等。

  2.2  RADIUS的數(shù)據(jù)包結構

  RADIUS是應用層的協(xié)議,在傳輸層它的報文被封裝在UDP的報文中,進而封裝進IP包。RADIUS認證使用1812端口,計費使用1813端口。

  以太網(wǎng)上的RADIUS封裝后的包結構:

 

 

 

  RADIUS數(shù)據(jù)包分為5個部分:

 ?。?) Code:1個字節(jié),用于區(qū)分RADIUS包的類型:常用類型有:

  接入請求(Access-Request),Code=1;接入應答(Access-Accept),Code=2;接入拒絕(Access-Reject),Code=3;計費請求(Accounting-Request),Code=4等。

  (2)Identifier:一個字節(jié),用于請求和應答包的匹配。

 ?。?)Length:兩個字節(jié),表示RADIUS數(shù)據(jù)區(qū)(包括Code, Identifier, Length, Authenticator, Attributes)的長度,單位是字節(jié),最小為20,最大為4096。

 ?。?)Authenticator:16個字節(jié),用于驗證服務器端的應答,另外還用于用戶口令的加密。RADIUS服務器和NAS的共享密鑰(Shared Secret)與請求認證碼(Request Authenticator)和應答認證碼(Response Authenticator),共同支持發(fā)、收報文的完整性和認證。另外,用戶密碼不能在NAS和RADIUS 服務器之間用明文傳輸,而一般使用共享密鑰(Shared Secret)和認證碼(Authenticator)通過MD5加密算法進行加密隱藏。

 ?。?)Attributes:不定長度,最小可為0個字節(jié),描述RADIUS協(xié)議的屬性,如用戶名、口令、IP地址等信息都是存放在本數(shù)據(jù)段。

  2.3 RADIUS的認證、計費過程

  如圖1網(wǎng)絡模型所示:

 ?。?)申請者登錄網(wǎng)絡時,NAS會有一個客戶定義的Login提示符要求申請者輸入用戶信息(用戶名和口令),申請者輸入相關的認證信息后,等待認證結果。

 ?。?)NAS在得到用戶信息后,將根據(jù)RADIUS的數(shù)據(jù)包格式,向RADIUS服務器發(fā)出“接入請求”(Access-Request)包。包中一般包括以下RADIUS屬性值:用戶名、用戶口令、訪問服務器的ID、訪問端口的ID。

  (3)當RADIUS服務器收到“接入請求”包后,首先驗證NAS的共享密碼與RADIUS服務器中預先設定的是否一致,以確認是所屬的RADIUS客戶端。在查驗了包的正確性之后,RADIUS服務器會依據(jù)包中的用戶名在用戶數(shù)據(jù)庫中查詢是否有此用戶記錄。如果用戶信息不符合,就向NAS發(fā)出“接入拒絕”(Access-Reject)包。NAS在收到拒絕包后,會立即停止用戶連接端口的服務要求,用戶被強制退出。

 ?。?)如果用戶信息全部符合,服務器向NAS發(fā)出“接入質(zhì)詢”包(Access-Challenge),對用戶的登錄請求作進一步的驗證。其中包括:用戶口令、用戶登錄訪問服務器的IP、用戶登錄的物理端口號等。NAS收到“接入質(zhì)詢”包后,將消息顯示給用戶,要求用戶進一步確認登錄請求。用戶再次確認后,RADIUS服務器將比較兩次的請求信息,決定如何響應用戶(發(fā)送Access-Accept、Access-Reject或再一次的Access-Challenge)。

 ?。?)當所有的驗證條件和握手會話均通過后,RADIUS服務器會將數(shù)據(jù)庫中的用戶配置信息放在“接入接受”(Access-Accept)包中返回給NAS,后者會根據(jù)包中的配置信息限定用戶的具體網(wǎng)絡訪問能力。包括服務類型:SLIP、PPP、Login User、Rlogin、Framed、Callback等等。還包括與服務類型相關的配置信息:IP地址、時間限制等等。

 ?。?)在所有的驗證、授權完成后,局域網(wǎng)交換機的控制端口被打開。用戶可以通過交換機進入網(wǎng)絡。同時,NAS向RADIUS服務器發(fā)送 “計費請求開始”包(Accounting-Request Start),通知RADIUS服務器開始計費。當用戶下網(wǎng)時,NAS向RADIUS服務器發(fā)送“計費請求結束”包(Accounting-Request Stop),RADIUS服務器根據(jù)計費包的信息計算用戶使用網(wǎng)絡的費用。[!--empirenews.page--]WLAN模型中RADIUS認證系統(tǒng)的設計與實現(xiàn)#e#

 

  3  WLAN模型中RADIUS認證系統(tǒng)的設計與實現(xiàn)

  3.1  WLAN網(wǎng)絡模型的簡化

  在實驗室的模擬環(huán)境下,由于網(wǎng)絡用戶少,可以采用中、小型的數(shù)據(jù)庫來存放所需信息,并可以將RADIUS服務器與數(shù)據(jù)庫在同一主機上實現(xiàn)。局域網(wǎng)交換機可以實現(xiàn)端口控制功能。網(wǎng)絡結構可簡化如下:

 

 

 

  圖2  實驗室環(huán)境下WLAN網(wǎng)絡模型

  3.2  NAS設計

 ?。?)RADIUS客戶端處理程序:負責接收申請者的信息;向RADIUS服務器提交認證、計費、管理等數(shù)據(jù)包;向申請者返回相應結果。

 ?。?)服務器管理程序:為了方便網(wǎng)絡管理員對RADIUS服務器和數(shù)據(jù)庫的管理,在NAS主機上,還可以運行服務器管理程序,管理程序的功能應該包括有:管理員模塊(添加、刪除網(wǎng)絡管理員,設置管理員權限等);用戶信息模塊(實現(xiàn)用戶的查詢、添加、刪除等操作);計費信息模塊(查詢用戶的計費信息,創(chuàng)建、修改、刪除各種不同的計費方式,);日志信息模塊等。

 ?。?)用戶信息的提交:用戶需要向NAS提交用戶信息,有多種方法可以實現(xiàn),最簡單的方法是采用Web方式提交。在NAS上建立一個Web服務器,這樣,用戶可以直接使用瀏覽器來和NAS交互,Web服務器接受到用戶提交的信息后,把這些信息傳給RADIUS的客戶端處理程序。后者把這些信息封裝成RADIUS的接入請求(Access-Request)包格式,通過認證端口(1812)向RADIUS服務器提出認證請求。

  (4)計費信息的提交:認證通過之后,NAS客戶端程序通過認證端口(1812)向RADIUS服務器發(fā)送包含有用戶名、用戶IP、上網(wǎng)起始時間等信息的“計費請求開始”包(Accounting-Request Start),通知RADIUS服務器開始計費。RADIUS服務器在數(shù)據(jù)庫中紀錄下相應項,并返回“計費響應”包(Accounting-Response)。當用戶下網(wǎng)時,NAS向RADIUS服務器發(fā)送包含有結束時間、數(shù)據(jù)流量等信息的“計費請求結束”包(Accounting-Request Stop)。后者返回“計費響應”包(Accounting-Response)確認。

 ?。?)服務器管理程序的提交:也通過RADIUS客戶端處理程序來向RADIUS服務器提交。客戶端處理程序?qū)⒐芾沓绦虻恼埱蟀b成標準的RADIUS包格式,并通過為服務器管理程序定義一個端口號提交給RADIUS服務器。

  3.3  RADIUS服務器設計

  RADIUS服務器處理來自NAS的各項數(shù)據(jù)和實現(xiàn)對數(shù)據(jù)庫的操作,并返回相應的結果。RADIUS客戶端和服務器端的協(xié)議通信采用Socket編程來實現(xiàn)。

 ?。?)對數(shù)據(jù)庫的操作:RADIUS服務器通過數(shù)據(jù)庫接口與數(shù)據(jù)庫建立起連接。在RADIUS服務器中用SQL語句實現(xiàn)所需的數(shù)據(jù)庫操作模塊(如:用戶、計費、管理員等信息的查詢、添加、修改等操作),當RADIUS服務器需要對數(shù)據(jù)庫操作時,就調(diào)用相應的模塊。

  (2)認證包處理:通過*認證端口(1812),來監(jiān)測NAS提交的認證數(shù)據(jù)包,收到認證包后,查詢數(shù)據(jù)庫驗證用戶,并把結果以RADIUS數(shù)據(jù)包格式從1812端口返回。對于多個用戶申請并發(fā)的情況,使用多線程方式處理。

  (3)計費包的處理:當用戶的認證通過時,查詢該用戶計費信息。確定其計費類型、費率等。當*到NAS在計費端口(1813)提交計費包后,就向數(shù)據(jù)庫中添加“計費請求開始”包中所提交的計費信息(包括用戶名、上網(wǎng)起始時間等)。在收到用戶下網(wǎng)的“計費請求結束”后,根據(jù)包中提交的用戶結束時間、數(shù)據(jù)流量等信息,計算用戶的上網(wǎng)時長和數(shù)據(jù)流量,并根據(jù)用戶計費類型來計算出用戶本次上網(wǎng)費用,記錄入數(shù)據(jù)庫。

 ?。?)服務器管理程序請求的處理:*管理程序請求的端口(自定義),收到后解包并執(zhí)行相應的處理函數(shù)。

  3.4 數(shù)據(jù)庫的設計

  用于保存所有的用戶信息、計費信息等。數(shù)據(jù)庫中包含的表項至少應包括以下幾類:

  (1) 用戶信息:包括用戶名、口令、認證方式、訪問權限、付費方式等。

  (2) 授權信息:服務器返回給用戶的授權等配置信息,如服務類型,會話時間等。

 ?。?) 計費信息:存放與計費有關的各種統(tǒng)計信息。如:上網(wǎng)時間、計費費率、用戶

  的歷次上網(wǎng)的數(shù)據(jù)流量和費用、用戶帳戶余額等。

 ?。?) 管理員信息:網(wǎng)絡管理員的ID號和口令、管理員的權限。

  (5) NAS信息:RADIUS服務器所屬的各NAS紀錄。包括各NAS的ID號、與

  RADIUS服務器的共享密碼等。

  (6) 日志信息:保存用戶上網(wǎng)的歷史記錄、網(wǎng)絡管理員的登錄及操作紀錄。

  3.5認證端各部分的實現(xiàn):

  操作系統(tǒng):RADIUS服務器和NAS均采用Linux(Red Hat 9.0,內(nèi)核Linux-2.4.20-8)作為操作系統(tǒng)。

  (1) NAS

  用Apache和Tomcat構建一個支持JSP的Web服務器,這樣申請者可以通過Web頁面來提交登錄信息。服務器管理程序主要是處理系統(tǒng)管理員的信息,用QT3.0完成用戶界面。RADIUS客戶端程序(C語言實現(xiàn))將用戶或系統(tǒng)管理員提交的消息封裝成RADIUS包,并通過相應的端口轉(zhuǎn)發(fā)給RADIUS服務器。

  (2) 數(shù)據(jù)庫:

  采用MySQL數(shù)據(jù)庫來實現(xiàn),MySQL是一個多用戶、多線程SQL數(shù)據(jù)庫服務器。它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成。Red Hat 9.0中自帶有MySQL服務,將服務啟動即可。我們可以將RADIUS服務器與SQL數(shù)據(jù)庫相連,建立用戶數(shù)據(jù)庫和計費數(shù)據(jù)庫,對用戶信息和計費信息進行有效的管理。

  (3) RADIUS服務器 :

  采用freeradius-0.9.0來搭建RADIUS服務器,實現(xiàn)RADIUS協(xié)議,并使用RADIUS服務器的EAP-Identity認證方式(即:RADIUS服務器對申請者的用戶名和口令進行認證)。另外,實現(xiàn)時,在freeradius的源碼中添加了數(shù)據(jù)庫處理模塊以及服務器管理程序處理模塊。

  freeradius支持訪問SQL數(shù)據(jù)庫,首先需要建立RADIUS數(shù)據(jù)庫(以MySQL為例:mysql -uroot -prootpass radius < db_mysql.sql),建立后的數(shù)據(jù)庫會包含如下一些表項:radcheck:用于指明用戶的認證方式;radgroupcheck:將用戶分組進行管理,指明各組的屬性,如限定有些用戶組默認的認證結果就是Accept或Reject;radgroupreply:對各用戶組設定回應的屬性;usergroup:指明用戶與組的關系;radacct:存放與計費有關的各種統(tǒng)計信息。我們還可以添加一些我們所需的其他表項。

  4  結束語

  RADIUS協(xié)議最初作為撥號網(wǎng)絡中協(xié)議,由于它易于管理、可擴展性好等特點,而逐漸被廣泛使用,成為多種網(wǎng)絡的認證、授權和計費的協(xié)議。但RADIUS協(xié)議仍然存在諸如:基于Response Authenticatior對共享密鑰的攻擊、基于User-Password屬性對用戶密碼的攻擊等安全缺陷。這些都有待于作進一步的研究和完善。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉