天堂国产午夜亚洲专区-少妇人妻综合久久蜜臀-国产成人户外露出视频在线-国产91传媒一区二区三区

當(dāng)前位置:主頁(yè) > 論文百科 > 論文創(chuàng)新 >

join和join in的區(qū)別_radius協(xié)議的共享密鑰_wangpengqi的專(zhuān)欄

發(fā)布時(shí)間:2016-08-03 14:02

  本文關(guān)鍵詞:radius協(xié)議,由筆耕文化傳播整理發(fā)布。


從事Radius協(xié)議開(kāi)發(fā)有段時(shí)間了,小弟不怕才疏學(xué)淺,賣(mài)弄一下,從radius協(xié)議談?wù)剬?duì)身份認(rèn)證的認(rèn)識(shí),也總結(jié)一下自己。

 

一.radius協(xié)議原理

 

        RADIUS(Remote Authentication Dial In User Service) 用戶遠(yuǎn)程撥入認(rèn)證服務(wù),它主要針對(duì)的遠(yuǎn)程登錄類(lèi)型有:SLIP、PPP、telnet和rlogin等。radius協(xié)議應(yīng)用范圍很廣,包括普通電話、上網(wǎng)業(yè)務(wù)計(jì)費(fèi),對(duì)VPN的支持可以使不同的撥入服務(wù)器的用戶具有不同權(quán)限。

 

RADIUS典型應(yīng)用環(huán)境如下:

 

radius典型應(yīng)用

 

 

 

 

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

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

接入請(qǐng)求(Access-Request),Code=1;接入允許(Access-Accept),Code=2;接入拒絕(Access-Reject),Code=3;計(jì)費(fèi)請(qǐng)求(Accounting-Request),Code=4等。

(2)Identifier:一個(gè)字節(jié),用于請(qǐng)求和應(yīng)答包的匹配。

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

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

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

各個(gè)屬性的詳細(xì)編碼信息,以及數(shù)據(jù)格式,限于篇幅,這里不作具體介紹,,感興趣的,可以參看RFC文檔,或與我交流。

 

二.radius協(xié)議實(shí)現(xiàn)

 

目前,開(kāi)源軟件包freeRadius , tinyRadius,可以下載到其實(shí)現(xiàn)的源碼。freeRadius是目前功能最強(qiáng)大的開(kāi)源RADIUS 服務(wù)器軟件,采用C語(yǔ)言實(shí)現(xiàn),采用了多進(jìn)程,進(jìn)程池的處理方法,擁有很好的吞吐處理能力,同時(shí),提供了連接各種數(shù)據(jù)庫(kù)的應(yīng)用接口,方便用戶根據(jù)自己的需要進(jìn)行適當(dāng)?shù)臄U(kuò)展。值得一提的是,它采用模塊化處理,用戶可以定做適合自己的認(rèn)證計(jì)費(fèi)處理模塊。

freeRadius的功能強(qiáng)大,也造成了它模塊的龐大,不易維護(hù),對(duì)安裝環(huán)境有一些要求。tinyRadius采用Java開(kāi)發(fā),短小精悍,能接收各種標(biāo)準(zhǔn)協(xié)議中的數(shù)據(jù)包,可以快速的完成對(duì)RADIUS數(shù)據(jù)包的封裝與解包,我們可以自己的需要進(jìn)行某些處理,具有很大的自由度,唯一的缺陷是單線程,沒(méi)有數(shù)據(jù)庫(kù)接口。

 

三.radius協(xié)議對(duì)安全的考慮

 

RADIUS采用UDP協(xié)議基于以下幾點(diǎn)原因:

1.  NAS和RADIUS服務(wù)器大多在同一個(gè)局域網(wǎng)中,使用UDP更加快捷方便。

2.  簡(jiǎn)化了服務(wù)端的實(shí)現(xiàn)。

事實(shí)證明,采用UDP協(xié)議可行,RADIUS有自己的機(jī)制,來(lái)解決UDP丟包特點(diǎn)。

如果NAS向某個(gè)RADIUS服務(wù)器提交請(qǐng)求沒(méi)有收到返回信息,那么可以要求備份RADIUS服務(wù)器重傳。由于有多個(gè)備份RADIUS服務(wù)器,因此NAS進(jìn)行重傳的時(shí)候,可以采用輪詢(xún)的方法。如果備份RADIUS服務(wù)器的密鑰和以前RADIUS服務(wù)器的密鑰不同,則需要重新進(jìn)行認(rèn)證。

下面重點(diǎn)從radius協(xié)議來(lái)談下它在身份認(rèn)證中如何確保安全認(rèn)證的。

1.  Authenticator:鑒別碼,分為請(qǐng)求鑒別碼,回應(yīng)鑒別碼。                         

在“Access-Request”數(shù)據(jù)包中,Authenticator是一個(gè)16字節(jié)的隨機(jī)數(shù),稱(chēng)為“Request Authenticator”。 在機(jī)密的整個(gè)生存周期中(如RADIUAS服務(wù)器和客戶端共享的機(jī)密),這個(gè)值應(yīng)該是不可預(yù)測(cè)的,并且是唯一的,因?yàn)榫哂邢嗤艽a的重復(fù)請(qǐng)求值,使黑客有機(jī)會(huì)用已截取的響應(yīng)回復(fù)用戶。因?yàn)橥粰C(jī)密可以被用在不同地理區(qū)域中的服務(wù)器的驗(yàn)證中,所以請(qǐng)求認(rèn)證域應(yīng)該具有全球和臨時(shí)唯一性。

為防止數(shù)據(jù)包中數(shù)據(jù)被截獲被篡改,回應(yīng)鑒別碼采用如下方式生成:

ResponseAuth = MD5(Code+ID+Length+RequestAuth+ Attributes+Secret);

回應(yīng)鑒別碼是對(duì)整個(gè)數(shù)據(jù)包進(jìn)行MD5演算產(chǎn)生的16字節(jié)索引,防止偽造服務(wù)器的回應(yīng)。

2.加密方式。PAP,CAHP,EAP以及Unix登錄認(rèn)證三種加密認(rèn)證方式。最常用的是前兩種,下面介紹下:

PAP加密,采用此加密方法時(shí),密碼存放在User-Password屬性中。

User-Password加密方法:

1.在密碼的末尾用nulls代替填補(bǔ)形成多個(gè)十六個(gè)字節(jié)的二進(jìn)制數(shù);

2.把密碼按16個(gè)字節(jié)為一組劃分為p1、p2等等;

 b1=MD5(Secret + Authenticator)  c(1) = p1 異或 b1

 b2 = MD5(S + c(1))     c(2) = p2 異或b2

                                .

                                .

                                .

 bi = MD5(S + c(i-1))   c (i) = pi 異或 bi

c(1)+c(2)+...+c (i)

 在接收時(shí),這個(gè)過(guò)程被反過(guò)來(lái),由于采用異或方式貫穿在每16個(gè)字節(jié)之間,同樣的算法再異或一次,然后配合MD5演算,從而生成原始的密碼,盡管這種加密方式是可逆的,黑客截獲到密文后,能通過(guò)一定的手段來(lái)破解出密碼,但如果共享密鑰未知的情況下,很難破解,也就只能采用蠻力破解方法。使用共享密鑰應(yīng)采用合適的長(zhǎng)度,來(lái)防止破解,不應(yīng)過(guò)短。

 

PAP加密方法使密碼以密文的方式在網(wǎng)絡(luò)中進(jìn)行傳輸,使黑客仍有有機(jī)可乘的機(jī)會(huì),但CHAP加密方法阻止了密碼的傳輸。

CHAP加密,采用此加密方法時(shí),密碼存放在Chap-Password屬性中。

這種加密方法的原則是不是密碼在網(wǎng)絡(luò)中進(jìn)行傳輸,而只是傳輸一個(gè)索引值,從而增加了安全性,但這樣做的代價(jià)是,RADIUS服務(wù)端必須要知道用戶的密碼,從而再現(xiàn)密碼索引值來(lái)和發(fā)來(lái)的認(rèn)證請(qǐng)求中的密碼索引值比對(duì)。

Chap-Password加密方法:

Md5(chapId+password+chapChallenge);

chapId :可以是隨機(jī)產(chǎn)生的一字節(jié)碼;

chapChallenge  :NAS生成一個(gè)隨機(jī)挑戰(zhàn)字(16個(gè)字節(jié)比較合適)

              該字段有時(shí)缺失,讀取Authenticator域作為挑戰(zhàn)字。

3.共享密鑰(Secret):共享密鑰在密碼加密以及數(shù)據(jù)包的鑒別碼部分都參與了運(yùn)算,即使RADIUS數(shù)據(jù)包被截獲,但不知道共享密鑰,很難破解用戶的密碼偽造數(shù)據(jù)。共享密鑰應(yīng)采用合適的長(zhǎng)度,不應(yīng)過(guò)短,寬大密碼范圍能有效提供對(duì)窮舉搜尋攻擊的防衛(wèi),隨著密鑰長(zhǎng)度的增加,其破解花費(fèi)的時(shí)間將大大增加。

4.為防止非法用戶的重放攻擊,造成服務(wù)器癱瘓。如果在一個(gè)很短的時(shí)間片段里,一個(gè)請(qǐng)求有相同的客戶源IP地址、源UDP端口號(hào)和標(biāo)識(shí)符,RADIUS服務(wù)器會(huì)認(rèn)為這是上一個(gè)重復(fù)的請(qǐng)求,將直接丟棄,不做任何處理。

 

 

四.總結(jié)

 

radius協(xié)議本身比較易掌握,在應(yīng)用中,可以結(jié)合其自身的密碼方式,實(shí)現(xiàn)滿足企業(yè)需要的更高強(qiáng)度的強(qiáng)認(rèn)證,比如結(jié)合各種令牌卡,手機(jī)短信等等。對(duì)協(xié)議進(jìn)行開(kāi)發(fā),離不開(kāi)各種抓包工具,像sniffer,tcpdump,ethereal等抓包工具的使用。

外部用戶要訪問(wèn)某局域網(wǎng)絡(luò)中計(jì)算機(jī)設(shè)備,其訪問(wèn)方式有多種,比如采用VPN撥號(hào),Telnet等等。如用戶Telnet登陸時(shí),產(chǎn)生用戶名和密碼信息,而NAS服務(wù)器AAA配置中指定了采用RADIUS作為認(rèn)證服務(wù)器,則將其封裝成RADIUS請(qǐng)求數(shù)據(jù)包發(fā)送到RADIUS服務(wù)器進(jìn)行身份認(rèn)證,RADIUS服務(wù)器通過(guò)NAS和用戶進(jìn)行交流,以提示用戶認(rèn)證通過(guò)與否,以及是否需要Challenge身份認(rèn)證。

 

其工作原理為:用戶接入NAS (Net Access Server),NAS一般為路由器等設(shè)備,NAS向RADIUS服務(wù)器使用Access-Request數(shù)據(jù)包提交用戶信息,包括用戶名、密碼等相關(guān)信息,其中用戶密碼是經(jīng)過(guò)MD5加密的,雙方使用共享密鑰,這個(gè)密鑰不經(jīng)過(guò)網(wǎng)絡(luò)傳播;RADIUS服務(wù)器對(duì)用戶名和密碼的合法性進(jìn)行檢驗(yàn),必要時(shí)可以提出一個(gè)Challenge,要求進(jìn)一步對(duì)用戶認(rèn)證,也可以對(duì)NAS進(jìn)行類(lèi)似的認(rèn)證;如果合法,給NAS返回Access-Accept數(shù)據(jù)包,允許用戶進(jìn)行下一步工作,否則返回Access-Reject數(shù)據(jù)包,拒絕用戶訪問(wèn);如果允許訪問(wèn),NAS向RADIUS服務(wù)器提出計(jì)費(fèi)請(qǐng)求Account-Require,RADIUS服務(wù)器響應(yīng)Account-Accept,對(duì)用戶的計(jì)費(fèi)開(kāi)始,同時(shí)用戶可以進(jìn)行自己的相關(guān)操作。

RADIUS還支持代理和漫游功能。簡(jiǎn)單地說(shuō),代理就是一臺(tái)服務(wù)器,可以作為其他RADIUS服務(wù)器的代理,負(fù)責(zé)轉(zhuǎn)發(fā)RADIUS認(rèn)證和計(jì)費(fèi)數(shù)據(jù)包。所謂漫游功能,就是代理的一個(gè)具體實(shí)現(xiàn),這樣可以讓用戶通過(guò)本來(lái)和其無(wú)關(guān)的RADIUS服務(wù)器進(jìn)行認(rèn)證。

RADIUS能夠?qū)崿F(xiàn)其功能依賴(lài)于它自身的數(shù)據(jù)包結(jié)構(gòu)。RADIUS采用的是UDP傳輸協(xié)議,認(rèn)證和計(jì)費(fèi)監(jiān)聽(tīng)端口一般分別為:1812,1813。

以太網(wǎng)上的RADIUS封裝后的包結(jié)構(gòu)如下:

 

以太幀頭

IP包頭

UDP包頭

RADIUS數(shù)據(jù)包

以太網(wǎng)FCS

 

 

在這里我們關(guān)心的是紅色RADIUS數(shù)據(jù)包部分。

RADIUS數(shù)據(jù)包的格式如下:

 

radius數(shù)據(jù)包格式


  本文關(guān)鍵詞:radius協(xié)議,由筆耕文化傳播整理發(fā)布。



本文編號(hào):82289

資料下載
論文發(fā)表

本文鏈接:http://sikaile.net/wenshubaike/shangbiaozhuanli/82289.html


Copyright(c)文論論文網(wǎng)All Rights Reserved | 網(wǎng)站地圖 |

版權(quán)申明:資料由用戶7275d***提供,本站僅收錄摘要或目錄,作者需要?jiǎng)h除請(qǐng)E-mail郵箱bigeng88@qq.com