RADIUS是什么
(資料圖片)
RADIUS:Remote Authentication Dial In User Service,遠程用戶撥號認(rèn)證系統(tǒng)由RFC2865,RFC2866定義,是目前應(yīng)用最廣泛的AAA協(xié)議。
RADIUS是一種C/S結(jié)構(gòu)的協(xié)議,它的客戶端最初就是NAS(Net Access Server)服務(wù)器,現(xiàn)在任何運行RADIUS客戶端軟件的計算機都可以成為RADIUS的客戶端。RADIUS協(xié)議認(rèn)證機制靈活,可以采用PAP、 CHAP或者Unix登錄認(rèn)證等多種方式。RADIUS是一種可擴展的協(xié)議,它進行的全部工作都是基于Attribute-Length-Value的向量進行的。RADIUS也支持廠商擴充廠家專有屬性。
由于RADIUS協(xié)議簡單明確,可擴充,因此得到了廣泛應(yīng)用,包括普通電話上網(wǎng)、ADSL上網(wǎng)、小區(qū)寬帶上網(wǎng)、IP電話、VPDN(Virtual Private Dialup Networks,基于撥號用戶的虛擬專用撥號網(wǎng)業(yè)務(wù))、移動電話預(yù)付費等業(yè)務(wù)。最近IEEE提出了802.1x標(biāo)準(zhǔn),這是一種基于端口的標(biāo)準(zhǔn),用于對無線網(wǎng)絡(luò)的接入認(rèn)證,在認(rèn)證時也采用RADIUS協(xié)議。
基本工作原理
用戶接入NAS,NAS向RADIUS服務(wù)器使用Access-Require數(shù)據(jù)包提交用戶信息,包括用戶名、密碼等相關(guān)信息,其中用戶密碼是經(jīng)過MD5加密的,雙方使用共享密鑰,這個密鑰不經(jīng)過網(wǎng)絡(luò)傳播;RADIUS服務(wù)器對用戶名和密碼的合法性進行檢驗,必要時可以提出一個Challenge,要求進一步對用戶認(rèn)證,也可以對NAS進行類似的認(rèn)證;如果合法,給NAS返回Access-Accept數(shù)據(jù)包,允許用戶進行下一步工作,否則返回Access-Reject數(shù)據(jù)包,拒絕用戶訪問;如果允許訪問,NAS向RADIUS服務(wù)器提出計費請求Account- Require,RADIUS服務(wù)器響應(yīng)Account-Accept,對用戶的計費開始,同時用戶可以進行自己的相關(guān)操作。
RADIUS還支持代理和漫游功能。簡單地說,代理就是一臺服務(wù)器,可以作為其他RADIUS服務(wù)器的代理,負責(zé)轉(zhuǎn)發(fā)RADIUS認(rèn)證和計費數(shù)據(jù)包。所謂漫游功能,就是代理的一個具體實現(xiàn),這樣可以讓用戶通過本來和其無關(guān)的RADIUS服務(wù)器進行認(rèn)證,用戶到非歸屬運營商所在地也可以得到服務(wù),也可以實現(xiàn)虛擬運營。
RADIUS服務(wù)器和NAS服務(wù)器通過UDP協(xié)議進行通信,RADIUS服務(wù)器的1812端口負責(zé)認(rèn)證,1813端口負責(zé)計費工作。采用UDP的基本考慮是因為NAS和RADIUS服務(wù)器大多在同一個局域網(wǎng)中,使用UDP更加快捷方便,而且UDP是無連接的,會減輕RADIUS的壓力,也更安全。
RADIUS協(xié)議還規(guī)定了重傳機制。如果NAS向某個RADIUS服務(wù)器提交請求沒有收到返回信息,那么可以要求備份RADIUS服務(wù)器重傳。由于有多個備份RADIUS服務(wù)器,因此NAS進行重傳的時候,可以采用輪詢的方法。如果備份RADIUS服務(wù)器的密鑰和以前RADIUS服務(wù)器的密鑰不同,則需要重新進行認(rèn)證。
基本消息交互流程
RADIUS 服務(wù)器對用戶的認(rèn)證過程通常需要利用nas 等設(shè)備的代理認(rèn)證功能,RADIUS 客戶端和RADIUS 服務(wù)器之間通過共享密鑰認(rèn)證相互間交互的消息,用戶密碼采用密文方式在網(wǎng)絡(luò)上傳輸,增強了安全性。RADIUS 協(xié)議合并了認(rèn)證和授權(quán)過程,即響應(yīng)報文中攜帶了授權(quán)信息。
基本交互步驟如下:
(1) 用戶輸入用戶名和口令;
(2) RADIUS 客戶端根據(jù)獲取的用戶名和口令,向RADIUS 服務(wù)器發(fā)送認(rèn)證請求包(access-request)。
(3) RADIUS 服務(wù)器將該用戶信息與users 數(shù)據(jù)庫信息進行對比分析,如果認(rèn)證成功,則將用戶的權(quán)限信息以認(rèn)證響應(yīng)包(access-accept)發(fā)送給RADIUS 客戶端;如果認(rèn)證失敗,則返回access-reject 響應(yīng)包。
(4) RADIUS 客戶端根據(jù)接收到的認(rèn)證結(jié)果接入/拒絕用戶。如果可以接入用戶,則RADIUS 客戶端向RADIUS 服務(wù)器發(fā)送計費開始請求包(accounting-request),status-type 取值為start;
(5) RADIUS 服務(wù)器返回計費開始響應(yīng)包(accounting-response);
(6) RADIUS 客戶端向RADIUS 服務(wù)器發(fā)送計費停止請求包(accounting-request),status-type 取值為stop;
(7) RADIUS 服務(wù)器返回計費結(jié)束響應(yīng)包(accounting-response)。