簡單聊聊Radius的PEAP協(xié)議

簡單聊聊Radius的PEAP協(xié)議

簡述:radius協(xié)議很少有人知道,但是生活中還是很常使用的。先看看他的wiki上面是怎么說的

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

EAP協(xié)議:可擴展的網(wǎng)絡(luò)認證協(xié)議,這個就是我認為網(wǎng)絡(luò)工程師最取巧的地方氧吐,好我給你一個可擴展的鍵值讹蘑,這個鍵值在我的字典中的鍵值是79,79內(nèi)我分給你一個位的長度(也就是FF 255的長度)筑舅,你隨便玩兒吧座慰,放啥隨你,只要我認得翠拣。

現(xiàn)在常用的是PEAP的協(xié)議進行radius認證處理版仔。首先看這個名詞就知道,它是一個EAP協(xié)議的擴展误墓,進行protect的EAP協(xié)議蛮粮。這的P是最坑的地方,鬼知道他們是怎么想的把P用TLS協(xié)議進行保護的處理谜慌。我的天然想,抓狂中....... 言歸正傳,我們開始抓包咯:

PEAP-wireshak

上面可以看到相關(guān)的請求(這么多包....)

我們先看第一個包:

2

可以看到在EAP中出現(xiàn)了


|code|id|Length|Type|identity|

| 1  |1 |1 2  |1  |        |

在上面identity一般是username

這個時候是告訴radius服務(wù)器我需要對你發(fā)送這個的認證請求畦娄,請準(zhǔn)備處理

對于這個包中的Message-Authenticator是對包完整性檢測的一個值,服務(wù)端或者客戶端生成一個發(fā)送過去弊仪,服務(wù)端或者客戶端收到后先進行驗證一遍熙卡,再進行其他的業(yè)務(wù)處理

3

radius服務(wù)器會給你mschap-v2的響應(yīng)(在后面的講解中會相關(guān)mschapv2的講解)


這個包就開始了發(fā)送challenge包的處理。

服務(wù)端發(fā)送mschap-v2的challenge進行挑戰(zhàn)處理励饵。

服務(wù)端發(fā)送mschap-v2的挑戰(zhàn)后驳癌,客戶端開始發(fā)送AccesRequest的包進行處理

4

我們打開這個包后,看到客戶端發(fā)送役听,我們期望使用PEAP這個協(xié)議進行保護傳送的信息

5

服務(wù)端進行發(fā)揮EAP-TLS的標(biāo)記颓鲜,進行開始的處理


這個屬性是一個byte分成8位進行表示相關(guān)屬性

0.......    Length Included  False

.0......    More Fragments  False       在下面?zhèn)髯C書的時候會需要這個屬性表窘,因為一開始EAP的長度是255,HandShake的certificate長度屬性是三位甜滨,4095的長度乐严。所以需要分段。發(fā)送這個請求是1的時候客戶端會再次過來請求余下的信息

..1.....    Start            True

.....000    Version 0

6

重點來了WTF這到底是什么衣摩。 首先是一個EAP-TLS flags 然后進行傳輸昂验。第一個標(biāo)記是content-Type 告訴服務(wù)端這個是handshake的。在這個22的表示時候服務(wù)端和客戶端都會進行記下這個數(shù)據(jù)艾扮,后面會有使用既琴。 TLS來了

TLS來了,第一個是Client Hello 客戶端給服務(wù)端發(fā)送一個請求并且?guī)е?dāng)前客戶端支持的tls的版本泡嘴。服務(wù)端的版本必須低于這個版本才能支持甫恩。這個時候客戶端發(fā)送一個隨機數(shù)我們叫做random1

客戶端發(fā)送客戶端所支持的安全組件。


TLS_RSA_WHITH_AES_256_CBC_SHA

認證算法|RSA    |    RSA(主流),DSA,ECDSA

加密算法|ES_256_GCM AES128/256 bit酌予,加密模式gcm/ cbc/ ecb

RC4和3DES(不推薦)磺箕,DES(已淘汰)

MAC算法  |  SHA256, SHA384, SHA1

密鑰交換算法|ECDHE    DHE,ECDHE

7

這個是server端發(fā)送的server hello的包


server hello  生成一個32位的隨機數(shù),并且選擇一個加密組件(這個加密組件必須是客戶端提供的列表當(dāng)中)這個時候生成了random2

certificate  發(fā)送證書

Server Key Exchange    如果是DH算法霎终,這里發(fā)送服務(wù)器使用的DH參數(shù)滞磺。RSA算法不需要這一步。

Certificate Request    Certificate Request 是服務(wù)端要求客戶端上報證書莱褒,這一步是可選的击困,對于安全性要求高的場景會用到。

這個傳輸證書就需要了我們上面提到過的TLS-FLAGS的more fragement

在經(jīng)過了三個包陸續(xù)把上面的東西發(fā)送完成后广凸,我們的server hello 終于完成阅茶。

![](
7
7

客戶端發(fā)送 Certificate  這個屬性是因為我們server端有Certificate Request的屬性,需要客戶端上傳證書谅海。

Client Key Exchange 這個是一個隨機數(shù)脸哀,我們用上一步獲取的服務(wù)端的公鑰證書進行加密,服務(wù)端這個時候需要解密這個扭吁,算出random3

Encrypted HandShake Message  這個是用master screct + hash+ "client finshed" 生成的一個文字撞蜂。然后用兩邊協(xié)商好的公鑰進行加密。

注意:1)上面的Client Key Exchange 用服務(wù)端的私鑰解密后產(chǎn)生的是random3侥袜,再通過這個算法PRF生成Master Sercet

TlsUtils.PRF(pms, "master secret",    TlsUtils.concat(securityParameters.clientRandom,        securityParameters.serverRandom), 48);

2)生成Master Sercet 是為了在后面通過對稱加密蝌诡,因為非對稱加密非常浪費性能。

3)Encrypted HandShake Message 是通過master secret 加密后的東西枫吧。服務(wù)端在收到后必先進行解密浦旱,然后服務(wù)端在根據(jù)"client server"生成一個字符串,對比是否想等九杂。

服務(wù)端要進行最后一步了Server Done

9

Server Done ?!哪呢颁湖,哪里有ServerDone宣蠕。

這個server done 是機密服務(wù)端存儲進去的∩啵客戶端需要解密后對比抢蚀,如果正確,就認為這次握手是成功的涎永。

生成的算法是  Master+hash+"server done"

其中這個hash是記錄所有handshake值后計算出來的思币。所以如果客戶端和服務(wù)端都收到所有的包后,兩邊的(這個hash是32位羡微,前16位MD5 后16位SHA1)hash值應(yīng)該是一樣的

這個時候客戶端再發(fā)送一個EAP-TLS請求表示握手完成谷饿。

10

剩下的包都是application data的包了,各位兄弟妈倔,祝你好運博投,因為這些都是加密后的,wireshark以及無法幫你解包了

11

剩下的基本都是mschap-v2的流程了盯蝴,簡單說一下就是服務(wù)端先給你個隨機挑戰(zhàn)數(shù)毅哗,客戶端收到后

randomServer+username+password+random2 (peer random) 發(fā)送給服務(wù)端,服務(wù)端收到后再算一遍看看兩個是否一樣捧挺。提醒下這中間的解密虑绵,不能漏過任何一個包!C隼印翅睛! 都要解開不要管是否有用,因為TLS為了保證每次對話都雙方通過黑竞,有個類似于HMAC的捕发,每次都計算出來,然后解密處理很魂。

mschapv2可以參考mschap-v2

radius 代碼 jradius

當(dāng)然啦扎酷,JRadius是客戶端的代碼,服務(wù)端自學(xué)吧遏匆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末法挨,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子幅聘,更是在濱河造成了極大的恐慌凡纳,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件喊暖,死亡現(xiàn)場離奇詭異惫企,居然都是意外死亡撕瞧,警方通過查閱死者的電腦和手機陵叽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門狞尔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巩掺,你說我怎么就攤上這事偏序。” “怎么了胖替?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵研儒,是天一觀的道長。 經(jīng)常有香客問我独令,道長端朵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任燃箭,我火速辦了婚禮冲呢,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘招狸。我一直安慰自己敬拓,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布裙戏。 她就那樣靜靜地躺著乘凸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪累榜。 梳的紋絲不亂的頭發(fā)上营勤,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音信柿,去河邊找鬼冀偶。 笑死,一個胖子當(dāng)著我的面吹牛渔嚷,可吹牛的內(nèi)容都是我干的进鸠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼形病,長吁一口氣:“原來是場噩夢啊……” “哼客年!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起漠吻,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤量瓜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后途乃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绍傲,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了烫饼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片猎塞。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖杠纵,靈堂內(nèi)的尸體忽然破棺而出荠耽,到底是詐尸還是另有隱情,我是刑警寧澤比藻,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布铝量,位于F島的核電站,受9級特大地震影響银亲,放射性物質(zhì)發(fā)生泄漏慢叨。R本人自食惡果不足惜务蝠,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一请梢、第九天 我趴在偏房一處隱蔽的房頂上張望赠尾。 院中可真熱鬧,春花似錦毅弧、人聲如沸气嫁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寸宵。三九已至,卻和暖如春元咙,著一層夾襖步出監(jiān)牢的瞬間梯影,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工庶香, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留甲棍,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓赶掖,卻偏偏與公主長得像感猛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子奢赂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容