En 400-6655-581
5
返回列表
> 資源中心 > 技術(shù)干貨 | 多因素認(rèn)證之Radius

技術(shù)干貨 | 多因素認(rèn)證之Radius

2020-03-18瀏覽次數(shù):1538
Radius是什么?



剛寫完第一句,路過的同事說,你要介紹緩存嗎?


不,緩存那是Redis,看起來拼寫字母差不多,實(shí)際上確實(shí)兩個(gè)完全不相關(guān)的東西,Redis是做緩存用的;


那Radius是干什么用的呢?


Radius是計(jì)算機(jī)訪問網(wǎng)絡(luò)時(shí)進(jìn)行認(rèn)證、授權(quán)、計(jì)費(fèi)的網(wǎng)絡(luò)協(xié)議,Radius就相當(dāng)于海關(guān)的角色,既要護(hù)照也要簽證時(shí)間。舉些簡單的例子,上大學(xué)時(shí)候去網(wǎng)吧通宵,三塊一個(gè)小時(shí),二十塊通宵,后臺(tái)計(jì)費(fèi)系統(tǒng)是Radius協(xié)議;我們?nèi)バ前涂它c(diǎn)杯冰美式連Wi-Fi,輸入賬號(hào)密碼開始上網(wǎng)計(jì)時(shí),后臺(tái)是Radius協(xié)議;我們給手機(jī)充上話費(fèi)打電話,欠費(fèi)了就不能呼號(hào)了,后臺(tái)是Radius協(xié)議。所以Radius其實(shí)和生活息息相關(guān)。


Radius它是怎么運(yùn)行的呢?百科解釋如下:


RADIUS(Remote Authentication Dial-In User Server,遠(yuǎn)程認(rèn)證撥號(hào)用戶服務(wù))是一種分布式的、C/S架構(gòu)的信息交互協(xié)議,能包含網(wǎng)絡(luò)不受未授權(quán)訪問的干擾,常應(yīng)用在既要求較高安全性、又允許遠(yuǎn)程用戶訪問的各種網(wǎng)絡(luò)環(huán)境中。協(xié)議定義了基于UDP(User Datagram Protocol)的RADIUS報(bào)文格式及其傳輸機(jī)制,并規(guī)定UDP端口1812、1813分別作為認(rèn)證、計(jì)費(fèi)端口。RADIUS最初僅是針對撥號(hào)用戶的AAA協(xié)議,后來隨著用戶接入方式的多樣化發(fā)展,RADIUS也適應(yīng)多種用戶接入方式,如以太網(wǎng)接入等。它通過認(rèn)證授權(quán)來提供接入服務(wù),通過計(jì)費(fèi)來收集、記錄用戶對網(wǎng)絡(luò)資源的使用。


百科稍微有點(diǎn)技術(shù),那咱們聊點(diǎn)業(yè)務(wù)


Radius原先誕生的使命是為網(wǎng)絡(luò)和電話撥號(hào)用戶進(jìn)行認(rèn)證和計(jì)費(fèi),后來經(jīng)過多次改進(jìn),形成了一項(xiàng)通用的認(rèn)證協(xié)議。


由于RADIUS協(xié)議的應(yīng)用廣泛性,受到普遍支持,經(jīng)常被ISP服務(wù)商和公司作為管理訪問Internet、內(nèi)網(wǎng)、無線網(wǎng)、集成e-mail網(wǎng)絡(luò)訪問服務(wù)的管理協(xié)議。這些網(wǎng)絡(luò)可能包括普通電話上網(wǎng)、ADSL上網(wǎng)、小區(qū)寬帶上網(wǎng)、IP電話、VPN(Virtual Private Networks,虛擬專用網(wǎng)絡(luò))等。RADIUS主要特征:基于C/S體系結(jié)構(gòu)的協(xié)議;基于UDP協(xié)議傳輸機(jī)制;支持PAP、CHAP等多種協(xié)議認(rèn)證方式;使用MD5加密技術(shù);支持AAA(集中認(rèn)證、授權(quán)和計(jì)費(fèi)管理)模型;可擴(kuò)展。


Radius是一個(gè)認(rèn)證協(xié)議,Radius服務(wù)器是一個(gè)認(rèn)證服務(wù)器,他既可以自己作為認(rèn)證中心完成用戶的認(rèn)證操作,也可以指向其他認(rèn)證中心,比如派拉的統(tǒng)一身份認(rèn)證中心。目前大多數(shù)企業(yè)內(nèi)都有VPN、WI-FI、路由器等等,例如深信服的VPN本身支持Radius協(xié)議,所以擴(kuò)展雙因素認(rèn)證非常簡單,實(shí)現(xiàn)邏輯如下:



1.用戶輸入賬號(hào)密碼首次認(rèn)證可以選擇本地賬號(hào)密碼/LDAP/派拉多因素認(rèn)證平臺(tái)等完成賬號(hào)密碼的校驗(yàn)。

2.VPN賬號(hào)密碼校驗(yàn)完成后進(jìn)入二次認(rèn)證界面,需要輸入動(dòng)態(tài)口令進(jìn)入多因素認(rèn)證,動(dòng)態(tài)口令校驗(yàn)成功后進(jìn)入VPN。



派拉多因素認(rèn)證平臺(tái)已經(jīng)完成了深信服、思科(CISCO)、華三(H3C)等廠商的基于radius協(xié)議集成的多因素認(rèn)證,一般情況下,VPN、Linux服務(wù)器、路由器、企業(yè)Wi-Fi準(zhǔn)入等系統(tǒng)只要支持Radius協(xié)議,即可無縫集成至派拉多因素認(rèn)證平臺(tái)。


基于Radius實(shí)現(xiàn)的功能包含什么呢?


1)VPN的二次認(rèn)證(深信服、飛塔、思科、華為、H3C、天融信等等)

2)無線portal認(rèn)證+統(tǒng)一身份認(rèn)證單點(diǎn)登錄

3)普通電話上網(wǎng)

4)寬帶上網(wǎng)

5)IP電話

6)……


那我們要怎么用Radius呢?


目前為止,基于Radius協(xié)議的開源實(shí)現(xiàn)包括freeradius、tinyradius及toughradius等等,Radius認(rèn)證中心需要和第三方強(qiáng)認(rèn)證中心結(jié)合起來才能夠?qū)崿F(xiàn)多因素認(rèn)證、統(tǒng)一身份管理、單點(diǎn)登錄等擴(kuò)展功能。





對于企業(yè)強(qiáng)認(rèn)證存在的問題,為滿足企業(yè)用戶不同方式的認(rèn)證模式,派拉軟件開發(fā)了新一代的派拉多因素認(rèn)證平臺(tái)管理軟件 ParaSecure Multi-Factor Authentication (ParaSecure MFA)產(chǎn)品,實(shí)現(xiàn)了企業(yè)安全訪問控制。多因素認(rèn)證功能包括并不限于動(dòng)態(tài)口令、短信認(rèn)證、二維碼認(rèn)證、人臉識(shí)別、指紋認(rèn)證、無線portal認(rèn)證、LDAP認(rèn)證、數(shù)字證書認(rèn)證、IC卡認(rèn)證、USB-Key認(rèn)證等方式,能夠滿足企業(yè)內(nèi)部的安全認(rèn)證需求。


Radius相關(guān)名詞術(shù)語解釋:


1.RADIUS(Remote Authentication Dial In User Service,遠(yuǎn)程用戶撥號(hào)認(rèn)證協(xié)議)

RADIUS是一個(gè)為計(jì)算機(jī)訪問使用網(wǎng)絡(luò)服務(wù)提供集中認(rèn)證、授權(quán)和計(jì)費(fèi)管理(AAA)的網(wǎng)絡(luò)協(xié)議。RADIUS最初是由Livingston公司在1991年提出,作為撥號(hào)用戶訪問訪問網(wǎng)絡(luò)服務(wù)器的認(rèn)證和計(jì)費(fèi)協(xié)議,后來被采納作為IETF標(biāo)準(zhǔn)。


2.AAA(Authentication, Authorization, and Accounting)

AAA模型主要解決這三個(gè)問題:你是誰?你可以享受什么服務(wù)?你在享受服務(wù)的同時(shí)需要做點(diǎn)什么?

Authentication 驗(yàn)證一個(gè)人或一臺(tái)機(jī)器的身份的過程;Authorization 使用一系列的規(guī)則來限制用戶在系統(tǒng)中的行為;Accounting 度量并記錄用戶在訪問期間使用過的資源,可能包括時(shí)間、流量等,數(shù)據(jù)可以用于計(jì)費(fèi)、趨勢預(yù)測、資源利用率分析等活動(dòng)。


3.IETF相關(guān)組織機(jī)構(gòu):

IETF(Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)

IETF是松散的、自律的、志愿的民間學(xué)術(shù)組織,由為互聯(lián)網(wǎng)技術(shù)工程及發(fā)展做出貢獻(xiàn)的專家自發(fā)參與和管理,成立于1985年底, 它與W3C、ISO/IEC 等標(biāo)準(zhǔn)化團(tuán)體緊密合作,主要任務(wù)是負(fù)責(zé)Internet相關(guān)技術(shù)協(xié)議規(guī)范的研發(fā)和制定。

IETF體系結(jié)構(gòu)分為三類,一個(gè)是互聯(lián)網(wǎng)架構(gòu)委員會(huì)(IAB),第二個(gè)是互聯(lián)網(wǎng)工程指導(dǎo)委員會(huì)(IESG),第三個(gè)是在八個(gè)領(lǐng)域里面的工作組(Working Group)。


4.RFC(Request For Comments,請求評議)

RFC是由IETF出版,在計(jì)算機(jī)網(wǎng)絡(luò)工程中,用于描述與Internet及其相關(guān)系統(tǒng)有關(guān)的技術(shù)方法、行為、研究、創(chuàng)新的備忘錄。RFC是一系列以編號(hào)排定的文件,包含了關(guān)于Internet的幾乎所有重要的文字資料。

一個(gè)RFC文件在成為官方標(biāo)準(zhǔn)前一般至少要經(jīng)歷4個(gè)階段【RFC2026】:英特網(wǎng)草案、建議標(biāo)準(zhǔn)、草案標(biāo)準(zhǔn)、因特網(wǎng)標(biāo)準(zhǔn)。


5.UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)

UDP是OSI參考模型中一種無連接的傳輸層協(xié)議,是Internet協(xié)議集的核心成員之一。UDP 協(xié)議基本上是IP協(xié)議與上層協(xié)議的接口,與 TCP 不同,UDP 并不提供對 IP 協(xié)議的可靠機(jī)制、流控制以及錯(cuò)誤恢復(fù)功能等。

由于UDP 比較簡單,UDP 頭包含很少的字節(jié),比TCP負(fù)載消耗少。UDP適用于不需要TCP可靠機(jī)制的情形,比如,當(dāng)高層協(xié)議或應(yīng)用程序提供錯(cuò)誤和流控制功能的時(shí)候。UDP是傳輸層協(xié)議,服務(wù)于很多知名應(yīng)用層協(xié)議,包括網(wǎng)絡(luò)文件系統(tǒng)(NFS)、簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)、域名系統(tǒng)(DNS)以及簡單文件傳輸系統(tǒng)(TFTP)、動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)、路由信息協(xié)議(RIP)和某些影音串流服務(wù)等等。


6. NAS(Network Access Server,網(wǎng)絡(luò)訪問服務(wù)器)

NAS表示控制訪問遠(yuǎn)程網(wǎng)絡(luò)資源的入口設(shè)備??蛻舳诉B接到NAS,NAS則連接到網(wǎng)絡(luò)資源,并請求客戶端提供的訪問證書信息是否有效?;谠撜埱蟮捻憫?yīng),NAS判斷允許或拒絕客戶端對受保護(hù)資源的訪問。

NAS本身并不知道什么樣的客戶端可以連接訪問,什么樣的訪問證書有效,它只是將客戶端發(fā)送的有關(guān)訪問證書請求發(fā)送到被請求的資源去判斷。


7.PPP (Point to Point Protocol,點(diǎn)到點(diǎn)協(xié)議)

PPP協(xié)議是用于在兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)之間建立直接連接的數(shù)據(jù)鏈路層協(xié)議。這種鏈路提供全雙工操作,并按照順序傳遞數(shù)據(jù)包。設(shè)計(jì)目的主要是用來通過撥號(hào)或?qū)>€方式建立點(diǎn)對點(diǎn)連接發(fā)送數(shù)據(jù),使其成為各種主機(jī)、網(wǎng)橋和路由器之間簡單連接的一種共通的解決方案。

PPP協(xié)議中提供了一整套方案來解決鏈路建立、維護(hù)、拆除、上層協(xié)議協(xié)商、認(rèn)證等問題。PPP協(xié)議包含這樣幾個(gè)部分:鏈路控制協(xié)議LCP(Link Control Protocol);認(rèn)證協(xié)議;網(wǎng)絡(luò)控制協(xié)議NCP(Network Control Protocol)。

PPP鏈路建立的過程包括創(chuàng)建PPP鏈路、用戶驗(yàn)證、調(diào)用網(wǎng)絡(luò)層協(xié)議三個(gè)階段。在鏈路創(chuàng)建階段,只是對驗(yàn)證協(xié)議進(jìn)行選擇,用戶驗(yàn)證將在第2階段實(shí)現(xiàn)。PPP協(xié)議是目前廣域網(wǎng)上應(yīng)用最廣泛的協(xié)議之一,它的優(yōu)點(diǎn)在于簡單、具備用戶驗(yàn)證能力、可以解決IP分配等。


8.PAP(Password Authentication Protocol,口令認(rèn)證協(xié)議)

PAP是PPP中的基本認(rèn)證協(xié)議,采用一種簡單的明文驗(yàn)證方式。NAS(網(wǎng)絡(luò)接入服務(wù)器,Network Access Server)要求用戶提供用戶名和口令,PAP以明文方式返回用戶信息。很明顯,這種驗(yàn)證方式的安全性較差,第三方可以很容易的獲取被傳送的用戶名和口令,并利用這些信息與NAS建立連接獲取NAS提供的所有資源。


9.CHAP(Challenge-Handshake Authentication Protocol,挑戰(zhàn)握手認(rèn)證協(xié)議)

CHAP是由PPP服務(wù)器對遠(yuǎn)程客戶端身份進(jìn)行驗(yàn)證的一種認(rèn)證方案,由RFC1994定義。CHAP對PAP進(jìn)行了改進(jìn),不再直接通過鏈路發(fā)送明文口令,而是使用挑戰(zhàn)口令以哈希算法對口令進(jìn)行加密。CHAP協(xié)議基本過程采取一個(gè)三步握手的方式。首先,在鏈路建立以后認(rèn)證者發(fā)送一個(gè)隨機(jī)挑戰(zhàn)信息給對方。然后,接收方根據(jù)此挑戰(zhàn)信息和共享的密鑰信息,使用單向HASH函數(shù)計(jì)算出響應(yīng)值,然后發(fā)送挑戰(zhàn)響應(yīng)給認(rèn)證者。第三,認(rèn)證者也進(jìn)行相同的計(jì)算,驗(yàn)證自己的計(jì)算結(jié)果和接收到的結(jié)果是否一致,一致則認(rèn)證通過,否則認(rèn)證失敗。

因?yàn)榉?wù)器端存有客戶的明文口令,所以服務(wù)器可以重復(fù)客戶端進(jìn)行的操作,并將結(jié)果與用戶返回的口令進(jìn)行對照。CHAP為每一次驗(yàn)證任意生成一個(gè)挑戰(zhàn)字串來防止受到再現(xiàn)攻擊(replay attack)。在整個(gè)連接過程中,CHAP將不定時(shí)的向客戶端重復(fù)發(fā)送挑戰(zhàn)口令,從而避免第三方冒充遠(yuǎn)程客戶進(jìn)行攻擊。

CHAP 被各種網(wǎng)絡(luò)訪問服務(wù)器和客戶端供應(yīng)商廣為采用。運(yùn)行路由和遠(yuǎn)程訪問的服務(wù)器支持 CHAP,以便能夠?qū)σ笫褂肅HAP的遠(yuǎn)程訪問客戶端進(jìn)行身份驗(yàn)證。這種認(rèn)證方法的優(yōu)點(diǎn)即在于密鑰信息不需要在通信信道中發(fā)送,而且每次認(rèn)證所交換的信息都不一樣,可以很有效地避免監(jiān)聽攻擊。


10.  EAP(Extensible Authentication Protocol,擴(kuò)展認(rèn)證協(xié)議)

EAP是一個(gè)直接在數(shù)據(jù)鏈路層上支持PPP或者IEEE 802無線網(wǎng)絡(luò)協(xié)議的通用認(rèn)證框架,可以支持多種認(rèn)證方法。它由RFC3748定義,目前更新到RFC5247。

EAP并不在鏈路建立階段指定認(rèn)證方法,而是把這個(gè)過程推遲到認(rèn)證階段。這樣認(rèn)證方就可以在得到更多的信息以后再?zèng)Q定使用什么認(rèn)證方法。這種機(jī)制還允許PPP認(rèn)證方簡單地把收到的認(rèn)證報(bào)文透傳給后方的認(rèn)證服務(wù)器,由后方的認(rèn)證服務(wù)器來真正實(shí)現(xiàn)各種認(rèn)證方法。

EAP不是一種特定的認(rèn)證機(jī)制,而是一種認(rèn)證的框架。它提供一些通用的功能和選擇認(rèn)證的協(xié)商機(jī)制。這種機(jī)制目前包含了大約40種EAP認(rèn)證方法。在IETF RFCs標(biāo)準(zhǔn)中定義的EAP認(rèn)證方法包括EAP-MD5, EAP-OTP, EAP-GTC, EAP-TLS, EAP-IKEv2, EAP-SIM, and EAP-AKA。此外,還存在其它一些特定軟件商的認(rèn)證方法和協(xié)議。通常在無線網(wǎng)絡(luò)中能夠操作使用的現(xiàn)代認(rèn)證方法包括EAP-TLS, EAP-SIM, EAP-AKA, PEAP, LEAP and EAP-TTLS等。EAP認(rèn)證方法在無線局域網(wǎng)中的認(rèn)證需求在RFC4071中描述。


11.  MD5(Message-Digest algorithm 5,信息-摘要算法5)

MD5用于確保信息傳輸完整一致,是計(jì)算機(jī)廣泛使用的哈希算法之一(又譯摘要算法、雜湊算法),主流編程語言普遍已有MD5實(shí)現(xiàn)。MD5的典型應(yīng)用是對一段信息產(chǎn)生信息摘要(Message-Digest),以防止被篡改。將數(shù)據(jù)(如漢字)運(yùn)算為另一固定長度值是雜湊算法的基礎(chǔ)原理,MD5的前身有MD2、MD3和MD4。

弱點(diǎn):MD5較老,散列長度通常為128位,隨著計(jì)算機(jī)運(yùn)算能力提高,找到“碰撞”是可能的。因此,在安全要求高的場合不使用MD5。


12.  Diameter

Diameter意思為直徑,意味著Diameter協(xié)議是RADIUS(半徑)協(xié)議的升級(jí)版本,被IETF的AAA工作組作為下一代的AAA協(xié)議標(biāo)準(zhǔn)。該協(xié)議包括基本協(xié)議,NAS(網(wǎng)絡(luò)接入服務(wù))協(xié)議、EAP(擴(kuò)展認(rèn)證)協(xié)議、MIP(移動(dòng)IP)協(xié)議,CMS(密碼消息語法)協(xié)議等。Diameter協(xié)議支持移動(dòng)IP、NAS請求和移動(dòng)代理的認(rèn)證、授權(quán)和計(jì)費(fèi)工作。該協(xié)議的實(shí)現(xiàn)和RADIUS類似,也是采用AVP,屬性值對(采用Attribute-Length-Value三元組形式)來實(shí)現(xiàn),但是其中詳細(xì)規(guī)定了錯(cuò)誤處理,failover機(jī)制,采用TCP協(xié)議,支持分布式計(jì)費(fèi),克服了RADIUS的許多缺點(diǎn),是最適合未來移動(dòng)通信系統(tǒng)的AAA協(xié)議。

Diameter并不直接與Radius后向兼容,而是提供了一種Radius向Diameter升級(jí)的途徑。


參考來源:

[1] RADIUS – Wikipedia, http://en.wikipedia.org/wiki/RADIUS

[2] IETF– Wikipedia, http://en.wikipedia.org/wiki/IETF

[3] User Datagram Protocol – Wikipedia, http://en.wikipedia.org/wiki/User_Datagram_Protocol

[4] UDP_百度百科, http://baike.baidu.com/view/30509.htm

[5] Network_Access_Server– Wikipedia, http://en.wikipedia.org/wiki/Network_Access_Server

[6] point-to-point_百度百科http://baike.baidu.com/view/2091682.html?tp=0_01

[7] Point-to-Point_Protocol– Wikipedia, http://en.wikipedia.org/wiki/Point-to-Point_Protocol

[8] Password_authentication_protocol – Wikipedia, http://en.wikipedia.org/wiki/Password_authentication_protocol

[9] Challenge-handshake_authentication_protocol – Wikipedia, http://en.wikipedia.org/wiki/Challenge-handshake_authentication_protocol

[10] Extensible_Authentication_Protocol – Wikipedia, http://en.wikipedia.org/wiki/Extensible_Authentication_Protocol

[11] MD5 – Wikipedia, http://en.wikipedia.org/wiki/MD5

[12] MD5_百度百科http://baike.baidu.com/view/7636.htm

[13] Diameter– Wikipedia, http://en.wikipedia.org/wiki/Diameter_(protocol)

[14] Diameter_百度百科http://baike.baidu.com/view/1267566.html