一、aaa 及radius 協(xié)議簡(jiǎn)介
1. aaa 的功能 aaa 是authentication(認(rèn)證)、authorization(授權(quán))和accounting(計(jì)費(fèi))的簡(jiǎn)稱。它提供對(duì)用戶進(jìn)行認(rèn)證、授權(quán)和計(jì)費(fèi)三種安全功能。具體如下: a、認(rèn)證(authentication):認(rèn)證用戶是否可以獲得訪問(wèn)權(quán),確定哪些用戶可以訪問(wèn)網(wǎng)絡(luò)。 b、授權(quán)(authorization):授權(quán)用戶可以使用哪些服務(wù)。 c、計(jì)費(fèi)(accounting):記錄用戶使用網(wǎng)絡(luò)資源的情況。 aaa 一般采用客戶/服務(wù)器結(jié)構(gòu),客戶端運(yùn)行于被管理的資源側(cè),服務(wù)器上則集中存放用戶信息。這種結(jié)構(gòu)既具有良好的可擴(kuò)展性,又便于用戶信息的集中管理。 計(jì)費(fèi)網(wǎng)關(guān)主要使用aaa 中的認(rèn)證功能對(duì)終端用戶進(jìn)行認(rèn)證管理。 2. radius 協(xié)議 (1) radius 簡(jiǎn)介 radius 是remote authentication dial-in user service(遠(yuǎn)程認(rèn)證撥號(hào)用戶服務(wù))的簡(jiǎn)稱,最初由livingston enterprise 公司開(kāi)發(fā),作為一種分布式的客戶機(jī)/服務(wù)器系統(tǒng),能提供aaa 功能。radius 技術(shù)可以保護(hù)網(wǎng)絡(luò)不受未授權(quán)訪問(wèn)的干擾,常被用在既要求較高安全性、又要求維持遠(yuǎn)程用戶訪問(wèn)的各種網(wǎng)絡(luò)環(huán)境中(如用來(lái)管理使用串口和調(diào)制解調(diào)器的大量分散撥號(hào)用戶)。 radius 服務(wù)包括三個(gè)組成部分: a、協(xié)議:rfc2865、2866 協(xié)議基于udp/ip 層定義了radius 幀格式及消息傳輸機(jī)制,并定義了1812 作為認(rèn)證端口,1813 作為計(jì)費(fèi)端口。 b、服務(wù)器:radius 服務(wù)器運(yùn)行在中心計(jì)算機(jī)或工作站上,包含了相關(guān)的用戶認(rèn)證和網(wǎng)絡(luò)服務(wù)訪問(wèn)信息。 c、客戶端:位于撥號(hào)訪問(wèn)服務(wù)器nas(network access server)側(cè),可以遍布整個(gè)網(wǎng)絡(luò)。 radius 基于客戶/服務(wù)器模型,nas(如路由器)作為radius 客戶端,負(fù)責(zé)傳輸用戶信息到指定的radius 服務(wù)器,然后根據(jù)從服務(wù)器返回的信息進(jìn)行相應(yīng)處理(如接入/掛斷用戶)。radius 服務(wù)器負(fù)責(zé)接收用戶連接請(qǐng)求,認(rèn)證用戶,然后給nas返回所有需要的信息。 radius 服務(wù)器通常要維護(hù)三個(gè)數(shù)據(jù)庫(kù):第一個(gè)數(shù)據(jù)庫(kù)“users”用于存儲(chǔ)用戶信息(如用戶名、口令以及使用的協(xié)議、ip 地址等配置),第二個(gè)數(shù)據(jù)庫(kù)“clients”用于存儲(chǔ)radius 客戶端的信息(如共享密鑰),第三個(gè)數(shù)據(jù)庫(kù)“dictionary”存儲(chǔ)的信息用于解釋radius 協(xié)議中的屬性和屬性值的含義。如下圖所示: 圖5-1 radius 服務(wù)器的組成 另外,radius 服務(wù)器還能夠作為其他aaa 服務(wù)器的客戶端進(jìn)行代理認(rèn)證或計(jì)費(fèi)。radius 服務(wù)器支持多種方法來(lái)認(rèn)證用戶,如基于ppp 的pap、chap 認(rèn)證、基于unix 的login 等。 (2) radius 的基本消息交互流程 radius 服務(wù)器對(duì)用戶的認(rèn)證過(guò)程通常需要利用nas 等設(shè)備的代理認(rèn)證功能,radius 客戶端和radius 服務(wù)器之間通過(guò)共享密鑰認(rèn)證相互間交互的消息,用戶密碼采用密文方式在網(wǎng)絡(luò)上傳輸,增強(qiáng)了安全性。radius 協(xié)議合并了認(rèn)證和授權(quán)過(guò)程,即響應(yīng)報(bào)文中攜帶了授權(quán)信息。操作流程圖和步驟如下所示: 圖5-2 radius 的基本消息交互流程 基本交互步驟如下: a、用戶輸入用戶名和口令; b、radius 客戶端根據(jù)獲取的用戶名和口令,向radius 服務(wù)器發(fā)送認(rèn)證請(qǐng)求包(access-request)。 c、radius 服務(wù)器將該用戶信息與users 數(shù)據(jù)庫(kù)信息進(jìn)行對(duì)比分析,如果認(rèn)證成功,則將用戶的權(quán)限信息以認(rèn)證響應(yīng)包(access-accept)發(fā)送給radius 客戶端;如果認(rèn)證失敗,則返回access-reject 響應(yīng)包。 d、radius 客戶端根據(jù)接收到的認(rèn)證結(jié)果接入/拒絕用戶,如果可以接入用戶,則radius 客戶端向radius 服務(wù)器發(fā)送計(jì)費(fèi)開(kāi)始請(qǐng)求包(accounting-request),status-type 取值為start; e、radius 服務(wù)器返回計(jì)費(fèi)開(kāi)始響應(yīng)包(accounting-response); f、radius 客戶端向radius 服務(wù)器發(fā)送計(jì)費(fèi)停止請(qǐng)求包(accounting-request),status-type 取值為stop; g、radius 服務(wù)器返回計(jì)費(fèi)結(jié)束響應(yīng)包(accounting-response)。 (3) radius 協(xié)議的報(bào)文結(jié)構(gòu) radius 采用udp 傳輸消息,通過(guò)定時(shí)器管理機(jī)制、重傳機(jī)制、備用服務(wù)器機(jī)制,確保radius 服務(wù)器和客戶端之間交互消息正確收發(fā)。radius 報(bào)文結(jié)構(gòu)如下: 圖5-3 radius 報(bào)文結(jié)構(gòu) 其中identifier 域用于匹配請(qǐng)求包和響應(yīng)包,隨著attribute 域改變、接收到有效響應(yīng)包而不斷變化,而在重傳時(shí)保持不變化。authenticator域(16字節(jié))用于驗(yàn)證radius服務(wù)器傳輸回來(lái)的請(qǐng)求,同時(shí)用于密碼隱藏算法上,分為request authenticator 和response authenticator。 a、request authenticator 采用16 字節(jié)的隨機(jī)碼。 b、response authenticator 以對(duì)code identifier、request authenticator、length、attribute 和共享密鑰進(jìn)行md5 算法后的結(jié)果。 由code 域決定radius 報(bào)文的類(lèi)型,主要包括: 表5-8 code 域主要取值的說(shuō)明 attribute 域攜帶專門(mén)的認(rèn)證、授權(quán)和計(jì)費(fèi)信息,提供請(qǐng)求和響應(yīng)報(bào)文的配置細(xì)節(jié),該域采用(type、length、value)三元組的形式提供,rfc 中定義的標(biāo)準(zhǔn)attribute域大致包括: 表5-9 attribute 域主要取值的說(shuō)明 radius 協(xié)議具有良好的可擴(kuò)展性,協(xié)議中定義的26 號(hào)屬性(vender-specific)可以被方便地?cái)U(kuò)展以支持用戶自己定義的擴(kuò)展屬性,報(bào)文結(jié)構(gòu)如下圖所示: 圖5-4 包括擴(kuò)展屬性的radius 報(bào)文片斷 (4) radius 的特點(diǎn) radius 使用udp 作為傳輸協(xié)議,具有良好的實(shí)時(shí)性;同時(shí)也支持重傳機(jī)制和備用服務(wù)器機(jī)制,從而有較好的可靠性。radius 的實(shí)現(xiàn)比較簡(jiǎn)單,適用于大用戶量時(shí)服務(wù)器端的多線程結(jié)構(gòu)。正因?yàn)槿绱?,radius 協(xié)議得到了廣泛的應(yīng)用。 重傳機(jī)制的原因:
如果NAS向某個(gè)RADIUS服務(wù)器提交請(qǐng)求沒(méi)有收到返回信息,那么可以要求備份RADIUS服務(wù)器重傳。由于有多個(gè)備份RADIUS服務(wù)器,因此NAS進(jìn)行重傳的時(shí)候,可以采用輪詢的方法。如果備份RADIUS服務(wù)器的密鑰和以前RADIUS服務(wù)器的密鑰不同,則需要重新進(jìn)行認(rèn)證。
請(qǐng)簡(jiǎn)述RADIUS報(bào)文為何采用UDP協(xié)議傳輸,如何保證計(jì)費(fèi)的可靠性?
1. NAS和Radius服務(wù)器之間傳遞的是幾十上百個(gè)字節(jié)長(zhǎng)度的數(shù)據(jù),用戶對(duì)于認(rèn)證等待時(shí)間要求不是很?chē)?yán)格。
2. 當(dāng)處理大量用戶時(shí)服務(wù)器端采用多線程,TCP是必須成功建立連接后才能進(jìn)行數(shù)據(jù)傳輸?shù)模琔DP簡(jiǎn)化了服務(wù)器端的實(shí)現(xiàn)過(guò)程,實(shí)時(shí)性好。 3. Radius要有重傳機(jī)制和備用服務(wù)器機(jī)制,它所采用的定時(shí),TCP不能很好的滿足; 4. Radius依靠自身協(xié)議保證報(bào)文重傳和服務(wù)器備份機(jī)制以確保計(jì)費(fèi)可靠性. |
|
來(lái)自: sys > 《學(xué)習(xí)》