RADIUS 遠(yuǎn)程用戶撥號認(rèn)證系統(tǒng)

2020-06-15 14:21 更新

一、簡介

1.簡述

RADIUS:Remote Authentication Dial In User Service,遠(yuǎn)程用戶撥號認(rèn)證系統(tǒng)由RFC2865,RFC2866定義,是應(yīng)用最廣泛的AAA協(xié)議。AAA是一種管理框架,因此,它可以用多種協(xié)議來實(shí)現(xiàn)。在實(shí)踐中,人們最常使用遠(yuǎn)程訪問撥號用戶服務(wù)(Remote Authentication Dial In User Service,RADIUS)來實(shí)現(xiàn)AAA。

2.作用

RADIUS是一種C/S結(jié)構(gòu)的協(xié)議,它的客戶端最初就是NAS(Net Access Server)服務(wù)器,任何運(yùn)行RADIUS客戶端軟件的計(jì)算機(jī)都可以成為RADIUS的客戶端。RADIUS協(xié)議認(rèn)證機(jī)制靈活,可以采用PAP、CHAP或者Unix登錄認(rèn)證等多種方式。RADIUS是一種可擴(kuò)展的協(xié)議,它進(jìn)行的全部工作都是基于Attribute-Length-Value的向量進(jìn)行的。RADIUS也支持廠商擴(kuò)充廠家專有屬性。 由于RADIUS協(xié)議簡單明確,可擴(kuò)充,因此得到了廣泛應(yīng)用,包括普通電話上網(wǎng)、ADSL上網(wǎng)、小區(qū)寬帶上網(wǎng)、IP電話、VPDN(Virtual Private Dialup Networks,基于撥號用戶的虛擬專用撥號網(wǎng)業(yè)務(wù))、移動(dòng)電話預(yù)付費(fèi)等業(yè)務(wù)。IEEE提出了802.1x標(biāo)準(zhǔn),這是一種基于端口的標(biāo)準(zhǔn),用于對無線網(wǎng)絡(luò)的接入認(rèn)證,在認(rèn)證時(shí)也采用RADIUS協(xié)議。

二、報(bào)文

1.報(bào)文格式

2.報(bào)文字段

字段 長度 描述
Code 1 byte 用來標(biāo)識RADIUS報(bào)文類型。
Packet Identifier 1 byte 用于匹配請求和回應(yīng)報(bào)文。果在一個(gè)很短的時(shí)間內(nèi)接收到相同的源IP地址、源UDP端口號和相同的Identifier域的請求報(bào)文,RADIUS服務(wù)器就可以認(rèn)為是重復(fù)的請求報(bào)文。
Packet Length 2 bytes 包含了報(bào)文中的Code域,Identifier域,Length域,Authenticator域和屬性域的總長度。如果收到的報(bào)文實(shí)際長度超過Length,超過部分被當(dāng)做填充內(nèi)容忽略掉,如果實(shí)際長度小于Length,報(bào)文被丟棄。
Authenticator 16 bytes 用于認(rèn)證來自服務(wù)端的響應(yīng),也用于用戶密碼的加密處理中。
AVPs 變長 屬性字段,承載認(rèn)證、授權(quán)、計(jì)費(fèi)以及配置等信息。采用TLV格式。

3.Code字段類型

Code = 1: Access-Request,接入請求報(bào)文 Code = 2: Access-Accept,接入成功回應(yīng)報(bào)文 Code = 3: Access-Reject,接入拒絕回應(yīng)報(bào)文 Code = 4: Accounting-Request,計(jì)費(fèi)請求報(bào)文 Code = 5: Accounting-Response,計(jì)費(fèi)回應(yīng)報(bào)文 Code = 11: Access-Challenge,接入挑戰(zhàn)報(bào)文 Code = 12: Status-Server (experimental),服務(wù)器狀態(tài)報(bào)文(試驗(yàn)) Code = 13: Status-Client (experimental),客戶端狀態(tài)報(bào)文(試驗(yàn)) Code = 255: Reserved,保留

4.Authenticator域

占用16個(gè)字節(jié),用于Radius Client 和Server之間消息認(rèn)證的有效性,和密碼隱藏算法。訪問請求Access-Request報(bào)文中的認(rèn)證字的值是16字節(jié)隨機(jī)數(shù),認(rèn)證字的值要不能被預(yù)測并且在一個(gè)共享密鑰的生命期內(nèi)唯一。

  1. 訪問請求認(rèn)證字 在Access-Request包中認(rèn)證字的值是16字節(jié)隨機(jī)數(shù),認(rèn)證字的值要不能被預(yù)測,并且在一個(gè)共享密鑰的生命期內(nèi)唯一;
  2. 訪問回應(yīng)認(rèn)證字 Access-Accept Access-Reject 和Access-Challenge包中的認(rèn)證字稱為訪問回應(yīng)認(rèn)證字,訪問回應(yīng)認(rèn)證字的值定義為MD5(Code+ID+Length+RequestAuth+Attributes+Secret);
  3. 計(jì)費(fèi)請求認(rèn)證字 在計(jì)費(fèi)請求包中的認(rèn)證字域稱為計(jì)費(fèi)請求認(rèn)證字,它是一個(gè)16字節(jié)的MD5校驗(yàn)和,計(jì)費(fèi)請求認(rèn)證字的值定義為MD5(Code + Identifier + Length + 16 zero octets + request attributes +shared secret);
  4. 計(jì)費(fèi)回應(yīng)認(rèn)證字 在計(jì)費(fèi)回應(yīng)報(bào)文中的認(rèn)證字域稱為計(jì)費(fèi)回應(yīng)認(rèn)證字,它的值定義為MD5(Accounting-Response Code + Identifier + Length + the RequestAuthenticator field from the Accounting-Request packet being replied to +the response attributes + shared secret);

4.優(yōu)勢特點(diǎn)

RADIUS協(xié)議承載于UDP之上,官方指定端口號為認(rèn)證授權(quán)端口1812、計(jì)費(fèi)端口1813。RADIUS協(xié)議簡單明確、擴(kuò)展性好,因此得到了廣泛應(yīng)用,具有以下特點(diǎn): 采用通用的客戶端/服務(wù)器結(jié)構(gòu)組網(wǎng) NAS作為RADIUS的客戶端負(fù)責(zé)將用戶信息傳遞給指定的RADIUS服務(wù)器,然后處理RADIUS服務(wù)器的返回結(jié)果。RADIUS服務(wù)器負(fù)責(zé)接收用戶的連接請求,對用戶進(jìn)行認(rèn)證,給客戶端返回用戶配置信息。 采用共享密鑰保證網(wǎng)絡(luò)傳輸安全性 客戶端與RADIUS服務(wù)器之間的交互是通過共享密鑰來進(jìn)行相互認(rèn)證的,以減少在不安全的網(wǎng)絡(luò)中用戶密碼被偵聽到的可能性。 具有良好的可擴(kuò)展性 RADIUS是一種可擴(kuò)展的協(xié)議,所有的交互報(bào)文由多個(gè)不同長度的ALV(Attribute-Length-Value)三元組組成,新增加屬性和屬性值不會(huì)破壞到協(xié)議的原有實(shí)現(xiàn)。因此RADIUS協(xié)議也支持設(shè)備廠商擴(kuò)充廠家專有屬性。 協(xié)議認(rèn)證機(jī)制靈活 RADIUS協(xié)議認(rèn)證機(jī)制靈活,支持多種認(rèn)證用戶的方式。如果用戶提供了用戶名和用戶密碼的明文,RADIUS協(xié)議能夠支持PAP、CHAP、UNIX login等多種認(rèn)證方式。 RADIUS協(xié)議簡單明確、擴(kuò)展性強(qiáng),因此得到了廣泛應(yīng)用。在普通電話撥號上網(wǎng)、ADSL撥號上網(wǎng)、社區(qū)寬帶上網(wǎng)、VPDN業(yè)務(wù)、移動(dòng)電話預(yù)付費(fèi)等業(yè)務(wù)中都能見到RADIUS的身影。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號