RADIUS協議

另外相關介紹也能夠參考http://wenku.baidu.com/link?url=j-jp_VSBCTcHmsKqVKLE28dkKdJ7aUEf_L7tsL3Bn3OK28hvEBkuXOdU321Z8gDpKtdbiRbgp56hWNP6yynNTzmU0xOtR1Ns9XnBjl431Nq算法

RADIUS:Remote Authentication Dial In User Service,遠程用戶撥號認證系統由RFC2865,RFC2866定義,是目前應用最普遍的AAA協議。AAA是一種管理框架,所以,它能夠用多種協議來實現。在實踐中,人們最常使用遠程訪問撥號用戶服務(Remote Authentication Dial In User Service,RADIUS)來實現AAA。數據庫

RADIUS是一種C/S結構的協議,它的客戶端最初就是NAS(Net Access Server)服務器,任何運行RADIUS客戶端軟件的計算機均可以成爲RADIUS的客戶端。RADIUS協議認證機制靈活,能夠採用PAPCHAP或者Unix登陸認證等多種方式。RADIUS是一種可擴展的協議,它進行的所有工做都是基於Attribute-Length-Value的向量進行的。RADIUS也支持廠商擴充廠家專有屬性。安全

因爲RADIUS協議簡單明確,可擴充,所以獲得了普遍應用,包括普通電話上網、ADSL上網、小區寬帶上網、IP電話、VPDN(Virtual Private Dialup Networks,基於撥號用戶的虛擬專用撥號網業務)、移動電話預付費等業務。IEEE提出了802.1x標準,這是一種基於端口的標準,用於對無線網絡的接入認證,在認證時也採用RADIUS協議。服務器

組網應用

常見的AAA組網示意如圖所示,其中RADIUS應用在AAA服務器上對用戶進行認證、受權和計費服務。網絡

圖中NAS(網絡接入服務器)做爲RADIUS客戶端,向遠程接入用戶提供接入及與RADIUS服務器交互的服務。RADIUS服務器上則存儲用戶的身份信息、受權信息以及訪問記錄,對用戶進行認證、受權和計費服務。框架

工做原理

用戶接入NAS,NAS使用Access-Require數據包RADIUS服務器提交用戶信息,包括用戶名、密碼等相關信息,其中用戶密碼是通過MD5加密的,雙方使用共享密鑰,這個密鑰不通過網絡傳播;RADIUS服務器對用戶名和密碼的合法性進行檢驗,必要時能夠提出一個Challenge,要求進一步對用戶認證,也能夠對NAS進行相似的認證;若是合法,給NAS返回Access-Accept數據包,容許用戶進行下一步工做,不然返回Access-Reject數據包,拒絕用戶訪問;若是容許訪問,NAS向RADIUS服務器提出計費請求Account- Require,RADIUS服務器響應Account-Accept,對用戶的計費開始,同時用戶能夠進行本身的相關操做。ui

RADIUS還支持代理和漫遊功能。簡單地說,代理就是一臺服務器,能夠做爲其餘RADIUS服務器的代理,負責轉發RADIUS認證和計費數據包。所謂漫遊功能,就是代理的一個具體實現,這樣可讓用戶經過原本和其無關的RADIUS服務器進行認證,用戶到非歸屬運營商所在地也能夠獲得服務,也能夠實現虛擬運營。加密

RADIUS服務器和NAS服務器經過UDP協議進行通訊,RADIUS服務器的1812端口負責認證,1813端口負責計費工做。採用UDP的基本考慮是由於NAS和RADIUS服務器大多在同一個局域網中,使用UDP更加快捷方便,並且UDP是無鏈接的,會減輕RADIUS的壓力,也更安全。url

RADIUS協議還規定了重傳機制。若是NAS向某個RADIUS服務器提交請求沒有收到返回信息,那麼能夠要求備份RADIUS服務器重傳。因爲有多個備份RADIUS服務器,所以NAS進行重傳的時候,能夠採用輪詢的方法。若是備份RADIUS服務器的密鑰和之前RADIUS服務器的密鑰不一樣,則須要從新進行認證。spa

優點特色



RADIUS協議承載於UDP之上,官方指定端口號爲認證受權端口18十二、計費端口1813。RADIUS協議簡單明確、擴展性好,所以獲得了普遍應用,具備如下特色:

  • 採用通用的客戶端/服務器結構組網

NAS做爲RADIUS的客戶端負責將用戶信息傳遞給指定的RADIUS服務器,而後處理RADIUS服務器的返回結果。RADIUS服務器負責接收用戶的鏈接請求,對用戶進行認證,給客戶端返回用戶配置信息。

  • 採用共享密鑰保證網絡傳輸安全性

客戶端與RADIUS服務器之間的交互是經過共享密鑰來進行相互認證的,以減小在不安全的網絡中用戶密碼被偵聽到的可能性。

  • 具備良好的可擴展性

RADIUS是一種可擴展的協議,全部的交互報文由多個不一樣長度的ALV(Attribute-Length-Value)三元組組成,新增長屬性和屬性值不會破壞到協議的原有實現。所以RADIUS協議也支持設備廠商擴充廠家專有屬性。

  • 協議認證機制靈活

RADIUS協議認證機制靈活,支持多種認證用戶的方式。若是用戶提供了用戶名和用戶密碼的明文,RADIUS協議可以支持PAP、CHAP、UNIX login等多種認證方式。

RADIUS協議簡單明確、擴展性強,所以獲得了普遍應用。在普通電話撥號上網、ADSL撥號上網、社區寬帶上網、VPDN業務、移動電話預付費等業務中都能見到RADIUS的身影。

協議結構

Code域長度爲1個字節,用於標明RADIUS報文的類型,若是Code域中的內容是無效值,報文將被丟棄,有效值以下:

一、請求訪問(Access-Request);

二、接收訪問(Access-Accept);

三、拒絕訪問(Access-Reject);

四、計費請求(Accounting-Request);

五、計費響應(Accounting-Response);

十一、挑戰訪問(Access-Challenge);

十二、服務器情況(Status-Server — Experimental);

1三、客戶機情況(Status-Client — Experimental);

25五、預留(Reserved)

Identifier― 匹配請求和響應的標識符

Length― 信息大小,包括頭部。

Authenticator域佔用16個字節,用於Radius Client 和Server之間消息認證的有效性,和密碼隱藏算法。訪問請求Access-Request報文中的認證字的值是16字節隨機數,認證字的值要不能被預測而且在一個共享密鑰的生命期內惟一。

1.訪問請求認證字

在Access-Request包中認證字的值是16字節隨機數,認證字的值要不能被預測,而且在一個共享密鑰的生命期內惟一;

2.訪問迴應認證字

Access-Accept Access-Reject 和Access-Challenge包中的認證字稱爲訪問迴應認證字,訪問迴應認證字的值定義爲MD5(Code+ID+Length+RequestAuth+Attributes+Secret);

3.計費請求認證字

在計費請求包中的認證字域稱爲計費請求認證字,它是一個16字節的MD5校驗和,計費請求認證字的值定義爲MD5(Code + Identifier + Length + 16 zero octets + request attributes +shared secret);

4.計費迴應認證字

在計費迴應報文中的認證字域稱爲計費迴應認證字,它的值定義爲MD5(Accounting-Response Code + Identifier + Length + the RequestAuthenticator field from the Accounting-Request packet being replied to +the response attributes + shared secret);


消息交互

radius服務器對用戶的認證過程一般須要利用nas等設備的代理認證功能,radius客戶端和radius 服務器之間經過共享密鑰認證相互間交互的消息,用戶密碼採用密文方式在網絡上傳輸,加強了安全性。radius 協議合併了認證和受權過程,即響應報文中攜帶了受權信息。

基本交互步驟以下:

(1) 用戶輸入用戶名和口令;

(2) radius客戶端根據獲取的用戶名和口令,向radius服務器發送認證請求包(access-request)。

(3) radius服務器將該用戶信息與users 數據庫信息進行對比分析,若是認證成功,則將用戶的權限信息以認證響應包(access-accept)發送給radius客戶端;若是認證失敗,則返回access-reject 響應包。

(4) radius客戶端根據接收到的認證結果接入/拒絕用戶。若是能夠接入用戶,則radius客戶端向radius服務器發送計費開始請求包(accounting-request),status-type 取值爲start;

(5) radius服務器返回計費開始響應包(accounting-response);

(6) radius客戶端向radius服務器發送計費中止請求包(accounting-request),status-type 取值爲stop;

(7) radius服務器返回計費結束響應包(accounting-response)。

相關文章
相關標籤/搜索