◆李太金
(廣西大學計算機與電子信息學院 廣西 530000)
Radius認證服務漏洞解析與防護
◆李太金
(廣西大學計算機與電子信息學院 廣西 530000)
目前各大無線網絡運營商和一些高校都采用了Radius認證計費系統,以此作為提供網絡服務的身份認證手段和計費手段。雖然Radius身份認證的密碼系統從最開始的靜態密碼系統不斷升級為更安全的動態密碼系統,但是這樣的系統并不是無法攻破的。通過利用模擬認證界面的偽基站騙取合法用戶的認證要素、利用合法用戶的MAC地址進行寄生入侵,可以避開Radius認證。為了保護合法用戶的權益,采用動態雙向身份認證通信加密系統,可阻止偽基站魚入侵和基于MAC地址的寄生入侵。
Radius認證計費系統;動態雙向身份認證通信加密系統;偽基站;寄生入侵
隨著Internet網絡技術的不斷進步,云應用技術的全面普及,無線網絡技術得到了突飛猛進的發展,使云應用得到了實現。無線網絡的發展正在逐步打破禁錮云應用信息傳輸的瓶頸,實現云應用的全覆蓋和高性能,帶給了人們極大的方便。但任何事物都具有兩面性,無線網絡也不例外。無線網絡促進云應用的發展,帶給人們便捷的同時也帶來了新的信息安全問題。
目前無線網絡采用的認證模式有:WEP(Wired Equivalent Privacy)、WPA/WPA2(Wi-Fi Protected Access)、WPA-PSK/WPA-PSK2(Wi-Fi Protected Access Pre-shared key)、Radius(Remote Authentication Dial User Service)認證等。有線等效加密(WEP)因存在非強制使用、不包含鑰匙管理協定、十六進制格式密鑰猜識破解等諸多漏洞已停止使用,取而代之的為保護無線電腦網絡安全系統(WPA/WPA2、WPA-PSK/WPA-PSK2),其中WPA/WPA2使用802.1x協議進行安全認證,一般為企業用戶使用。WPA-PSK/WPA-PSK2則是讓每個用戶使用同一個密語,其安全性相對WPA/WPA2要低一些,一般為個人用戶使用。Radius協議認證則是集成了認證用戶名、認證接入密碼、認證MAC等多項認證信息,并對接入的用戶進行信息計費,一般為大型企業、網絡運營商提供網絡服務時應用。
在公共場合中,Radius認證服務采用交互認證方式:用戶通過連接指定的無線網絡,訪問到指定的認證界面。通過提供界面中要求用戶提供的身份認證要素,將其發送給Radius認證服務器進行身份認證,如果身份認證成功,則用戶就可以通過計費的方式對指定網絡資源進行訪問。Radius身份認證從認證要素的特性來進行分類,可分為兩類,一類是靜態認證,即身份認證的要素都是固定的。另一類是動態身份認證,即身份認證要素中存在一個或多個動態認證要素。由于靜態認證的一些缺陷,目前大型網絡運營商和大型企業都采用動態身份認證方式。動態認證方式主要分為動態密碼和挑戰碼兩類,網絡運營商根據手機移動終端的特性,利用挑戰碼方式來進行身份認證。即通過向密碼生成服務器發送運營商所指定的手機號,來生成Radius身份認證所需要的密碼,密碼通過短信的形式發送到指定的手機號,用戶將得到的密碼和自身的手機號通過Radius身份認證界面發送給Radius服務器進行認證,如果認證通過,用戶就可以以計費的方式,通過運營商提供的無線網絡進行資源訪問。相較于靜態認證方式,動態認證方式采用TOTP(Time-base One-time Password)基于時間的一次一密策略,提高了身份認證的安全性,但值得注意的是無論是采用了靜態認證方式還是動態認證方式的Radius認證方式,單就Radius認證而言,在系統進行身份認證后,用戶通信數據并沒有經過數據加密,這就給后續的認證攻擊提供了突破口。
Radius認證的過程參加對象主要有:STA(Station)接入點、AP(Access Point)訪問接入點、AC(Access point Controller)接入點控制器、Radius服務器等組成。現在就Radius身份認證過程進行解析(如圖1所示):
(1)在認證過程中STA接入(Connect)到AP后,由于AC對STA訪問狀態進行了控制,STA處于訪問受限(Limited)狀態,STA無法訪問相應的資源。
(2)AC向Radius服務器提出訪問請求Access-request。
(3)Radius服務器回應Access-challenge,并返回身份認證界面Auth.page。STA只能訪問Auth.page頁面。

圖1 Radius身份認證過程
(4)用戶根據認證界面提供的信息輸入指定的認證要素Auth.parament。值得注意的是,一些認證要素并不一定需要用戶去輸入,這些認證要素可以通過隱蔽的方式獲取,如MAC(Media Access Control)地址、IP(Internet Protocol)地址,可由通信數據包獲得。Radius靜態認證一般需要用戶提供認證的用戶名和密碼,其密碼是靜態的;Radius動態認證則需要用戶先提供一個認證要素,如手機號、用戶名、機器碼等,并將這一認證要素先發送給Radius服務器,經Radius服務器進行身份認證通過后,把認證的信息發送給動態密碼生成服務器,同時從動態密碼服務器處獲得該用戶將要進行認證的密碼。動態密碼生成服務器通過其他的信息傳輸方式,如手機短信,向指定的認證用戶發送動態認證密碼。認證用戶根據收到的動態密碼,向Radius服務器發起身份認證。
(5)用戶提供身份認證要素Auth.parament后,AC再次向Radius服務器發送Access-request。
(6)Radius服務器根據Auth.parament進行身份認證,如果認證通過返回Access-Accept,否則返回Access-Reject,這時進入(9)處理過程。
(7)如果AC收到Access-Accept回應,則AC向Radius服務器請求計費,Radius服務器回應計費請求。
(8)申請通過后AC解除STA的Limited狀態并設置為Accounting狀態,STA可以正常進行網絡資源訪問,直至認證計費狀態結束。
(9)當AC收到的為Access-Reject回應,則AC將STA的Limited狀態轉換為Disconnect狀態,用戶連接狀態被終止。
從認證過程可以發現,Radius認證并不是雙向的,即只有服務器對用戶進行身份認證,而用戶無法對服務器進行認證,同時大部分采用Radius認證服務的網絡,為了提高用戶的體驗度,基本取消了數據加密措施,這就給入侵者提供了網絡入侵的漏洞。
針對Radius的認證攻擊有弱口令攻擊、Radius報文屬性攻擊、重放攻擊等,現在通過一定的技術手段可以預防這些攻擊,但Radius認證還存在著其他的入侵方法。
4.1 偽基站釣魚入侵
由于網絡技術的不斷進步,密碼加密位數、非法訪問阻斷技術的提高,使得采用暴力破解密碼的方式更加復雜困難,破解所花費的時間周期也更長。為了更好地隱蔽自己的入侵路徑,入侵者們可能會采用木馬截獲、無線抓包分析和字典破解等非法的途徑獲得用戶的認證信息,以利用合法用戶的身份入侵網絡。
釣魚網站是入侵者們非法獲得用戶信息的一個手段,入侵者可能會利用類似的方式竊取合法用戶的認證信息,通過合法用戶的身份進行網絡入侵。
(1)偽基站釣魚入侵原理
偽基站釣魚入侵利用了網絡上常見的釣魚網站技術,通過建立偽AP信號接入點和后臺WEB數據庫,發送與正規AP一樣的SSID和身份認證模擬界面,誘騙警惕性低的用戶輸入認證要素,以達到竊取用戶身份認證要素,入侵無線網絡的目的,其實現原理如圖2所示。

圖2 偽基站釣魚入侵過程
①復制或模擬將要入侵網絡的Radius認證界面,并在后臺搭建一個用于模仿Radius認證界面的WEB平臺和存儲用戶名和密碼的數據庫,并向外發布偽造的身份認證界面forgery-auth.page。
②在將要入侵的網絡附近搭建一個無線基站或AP接入點,并發布Forgery-SSID,其SSID標識與將要入侵的無線網絡SSID一致。
③當合法用戶連接時,由于偽基站的SSID和認證界面與入侵網絡的SSID及認證界面樣式一致,警惕性低的用戶會直接發送認證所需要的要素信息Auth.paraments。
④合法用戶的認證信息Auth.paraments通過偽基站網絡,被記錄進后臺的數據庫。
⑤入侵者通過后臺數據庫獲取合法用戶的認證信息。
⑥利用偽基站和釣魚網站,入侵者們就可以輕易地收集大量用戶的Auth.paraments,通過這些竊取的用戶信息,以合法的身份進行無線網絡入侵。
(2)針對偽基站釣魚入侵的應對措施
從偽基站的角度出發,它的主要任務是通過模擬正常Radius認證的界面,誘騙用戶輸入認證要素,使入侵者從后臺獲取合法用戶的認證信息。這些認證信息通常都是靜態的,偽基站釣魚入侵模式對靜態認證要素的竊取是相對有效的,因此為了預防這種入侵,從動態認證的安全角度出發,應盡可能使用動態認證模式,避免全靜態要素認證模式,同時改變Radius單向認證的模式,采用雙向認證的機制(如圖3),即參與認證的STA首先向此服務器進行身份認證,確認此服務器是否為授權的Radius服務器,而Radius服務器也必須向STA發起身份認證,確認此STA是否為系統授權的用戶。通過實現這種動態雙向認證的機制可以抑制偽基站釣魚入侵。
首先,STA與Radius Server均采用一樣的動態密碼系統(Dynamic-password),兩個系統通過NTP Server時間同步服務器進行時間同步。兩個動態密碼系統在同一時刻生成同一密碼,每個用戶的密碼都是不一致的,生成的密碼有固定的生命周期,在固定的生命周期內每個密碼有且僅有一次使用機會,生命周期結束或者使用過一次,則對應的動態密碼失效。
①STA要進行身份認證時,首先記錄下此時的動態密碼STA-D_KEY1,并向Radius Server發送Connect-request請求,將請求的時間STA_T1發送給Radius Server。
②Radius Server根據收到的STA_T1、接收時間RS_T1、生命周期ΔT計算在STA_T1時刻下的RS-D_KEY1和RS_T1的下一周期密碼RS-D_KEY2。
③Radius Server記錄計算出的RS-D_KEY1,并向STA發送連接回復Connect-response,將RS-D_KEY2和RS_T1發送給STA。
④STA根據收到的RS_T1和生命周期ΔT計算在RS_T1的下一周期密碼STA-D_KEY2,并比較STA-D_KEY2和收到的RS-D_KEY2是否匹配。如果匹配,繼續進行身份認證⑤,否則終止身份確認。
⑤STA向Radius Server發送連接請求,并將STA-D_KEY1發送給Radius Server。
⑥Radius Server收到請求和STA-D_KEY1后,將記錄的RS-D_KEY1與STA-D_KEY1進行匹配。如果匹配,回復STA身份認證確認⑦,否則終止身份確認。
⑦Radius Server回復STA身份認證通過。
⑧STA開始計費狀態并可通過WLAN對網絡的資源訪問。

圖3 基于時間同步的雙向動態認證模式
4.2 寄生入侵
雖然通過動態雙向認證機制可抑制偽基站釣魚入侵,但它并不是萬能的,寄生入侵相對于偽基站入侵更加直接隱蔽。這種入侵的出發點就是利用同MAC地址通信的特性,采用類似于寄生的形式,通過MAC地址識別的漏洞,繞過Radius認證,以達到網絡入侵的目的
(1)同MAC地址通信特性
MAC地址是網絡通信的重要元素,隨著技術手不斷進步,已經出現了大量修改MAC地址的軟件,人們可以利用這些軟件對網卡的MAC地址進行修改,這說明網絡的MAC地址已經不存在唯一性。通過網絡實驗證實,兩張MAC地址相同的無線網卡不僅通過DHCP服務器獲得一樣的IP地址,同時還包括網絡中斷服務、網絡重連接等信息,即兩張MAC地址相同的網卡可以獲得對方相同的數據,具有信息同步性。
雖然同MAC地址的兩張無線網卡可以獲得相同的數據,但是同MAC地址的網卡通信是不穩定的,因為它們的應用層訪問數據的差異性導致了訪問的不穩定性。
(2)寄生入侵的原理
寄生入侵需要利用AC連接狀態的超時確認漏洞。無線網絡控制器AC在設計時,為了提高用戶的體驗度,避免反復進行身份確認,對無線終端的連接狀態設計有一個連接狀態超時確認機制。即用戶移動終端在經過身份認證連接到AP后,在其非正常離線狀態下,AC對用戶終端連接狀態有一個確認周期,只要在這個確認周期以內,除正常注銷外,用戶移動終端的重連接都將視為在線狀態,無需再經過Radius身份認證。大部分AC以用戶終端的MAC地址作為確認用戶身份的標識,這給寄生入侵的實現提供了可能。
目前大部分電信運營商或企業在所提供的無線網絡中,為了提高訪問的體驗度,通常只采用了單一的動態密碼或挑戰碼Radius認證結構并提供DHCP服務。入侵者可以通過同MAC地址通信特性和連接狀態超時確認漏洞,巧妙的繞過Radius認證,從而實現網絡入侵。其基本原理如圖4所示。
①入侵者通過偽基站釣魚、無線網絡截包工具、木馬入侵收集等方式,獲取入侵網絡中合法用戶的MAC地址。
②入侵者通過MAC地址修改軟件,將自己的MAC地址修改為合法用戶的MAC地址。
③為了能夠繞過Radius的認證服務,入侵者必須確認此時的合法用戶已經完成了Radius的身份認證,并成功的接入網絡。如果合法用戶在線,則入侵者連接合法用戶所在的無線網絡。
④由于Radius已經對合法用戶進行了認證,此時接入網絡的入侵者具有和合法用戶一樣的MAC地址,Radius認證服務器會將入侵者和合法用戶誤認為是同一人。入侵者就這樣巧妙的繞過了Radius身份認證。
⑤入侵者雖然已經繞過了Radius身份認證,但由于同MAC地址網卡的通信特性,入侵者對網絡的訪問并不是穩定的,他們可能會利用合法用戶非正常退出時AC進行連接狀態超時確認的時機,重新連接AC。由于入侵者的MAC地址與合法用戶的MAC是一致的,且連接的時間并未超時,AC會將入侵者的連接誤認為是合法用戶的重連接,進而使入侵者順利地繼承了原來合法用戶的連接狀態和身份認證狀態,以此巧妙地繞過Radius認證。

圖4 寄生入侵原理
(3)寄生入侵的應對措施
寄生入侵利用同MAC地址通信和AC連接狀態超時確認漏洞,可入侵采用靜態或動態身份認證的Radius認證模式。由于其具有了和合法用戶一樣的MAC地址,其隱蔽性更強,同時由于合法用戶的MAC地址遭到惡意復制,從通信角度上出發,使得入侵者難以被隔離。
雖然寄生入侵很隱藏,但它并不是完美的。從數據傳輸模式出發,可以抑制這種入侵。
通過實驗證實,在基于WPA/WPA2、WPA-PSK/WPA-PSK2身份認證的網絡中,入侵者在沒有獲得WPA/WPA2、WPA-PSK/WPA-PSK2密鑰的情況下,利用寄生入侵是無法通過身份驗證的,因為認證用戶與AP的數據通信是加密的,沒有獲得密鑰的入侵者是無法解密收到的數據的。根據這一實驗,將動態雙向認證模式進行改進后,利用應用層通信加密,可抑制寄生入侵。改進型的動態雙向認證模式如圖5所示。

圖5 改進型的基于時間同步的動態雙向認證模式
與基于時間同步的動態雙向認證模式所不同的是,改進型的認證模式在原有的認證模式基礎上借鑒了WPA/WPA2、WPA-PSK/WPA-PSK2通信實驗原理,采用通信加密策略,在應用層上對入侵者進行數據阻斷。
①STA_T1時,STA記錄此刻生成的密碼STA-D_KEY1。STA發出連接請求,并將密碼生成的時間STA_T1發送給Radius Server。
②Radius服務器在收到請求和STA_T1后,通過STA_T1、RS_T1和ΔT計算RS-D_KEY1和RS_T1的下一周期密碼RS-D_KEY2。利用RS-D_KEY1加密RS-D_KEY2和時間RS_T1。
③Radius服務器記錄下RS-D_KEY1和RS-D_KEY2后,將加密的RS-D_KEY2和時間RS_T1一起回復給STA。
④STA收到Radius服務器發送來的數據后,使用STA_T1時刻的密鑰STA-D_KEY1對數據進行解密。利用解密獲得的RS_T1和ΔT計算STA在RS_T1的下一周期密碼STA-D_KEY2,并比較STA-D_KEY2與RS-D_KEY2。如果匹配,則繼續認證過程⑤,否則終止身份確認。當確認匹配后,STA使用STA_T2和ΔT計算STA_T2下一周期的生成密碼STA-D_KEY3,以其作為應用層的加密密鑰,同時利用STA-D_KEY2對STA-D_KEY1和STA_T2進行數據加密。
⑤STA向Radius服務器提出認證請求,并將加密后的STA-D_KEY1和STA_T2一起發送給Radius服務器。
⑥Radius服務器收到身份認證請求后,使用記錄的RS-D_KEY2對STA-D_KEY1和STA_T2進行解密。Radius服務器通過記錄的RS-D_KEY1和解密獲得的STA-D_KEY1進行比對。如果匹配,則繼續身份認證,否則終止身份確認。當確認匹配后,Radius服務器利用解密獲得的STA_T2和ΔT計算Radius服務器在STA_T2的下一周期密碼RS-D_KEY3,并將其作為通信應用層的加密密鑰。
⑦Radius服務器回應STA,密鑰已加載,認證服務完成。
⑧認證服務完成后,STA與AP通過在應用層上進行數據加解密來完成通信。

圖6 公共密鑰加密通信系統與私有密鑰加密通信系統
改進型的身體認證模式與WPA/WPA2、WPA-PSK/WPA-PSK2認證模式相比,改進型的身份認證模式克服了WPA/WPA2、WPAPSK/WPA-PSK2采用靜態密碼、公共密碼所產生的泄露風險。與舊的Radius身份認證系統相比,改進型的認證模式抑制了偽基站釣魚入侵、寄生入侵的風險。雖然改進型的身份認證模式可靠性和安全性有了提高,但它需要對現有的通信加密系統進行改造:將原有的公共密鑰加密通信系統修改為私有密鑰加密通信系統(如圖6所示),以降低因公共密鑰集中化、固定化帶來的泄露風險。私有密鑰加密通信系統相對于公共密鑰加密通信系統,它縮小了密鑰泄露所波及的范圍,離散了公共認證的風險要素,提高通信的安全性。
無線網絡技術的不斷進步,各種無線網絡入侵手段大量出現,給無線網絡的服務安全產生巨大的影響。此次發現的兩個入侵漏洞可能會成為黑客入侵的手段,它們不僅可以使入侵者盜用合法用戶的身份,并以此為掩護入侵無線網絡,損害合法用戶的利益,同時由于通信身份的重疊作用,使得對入侵者的隔離和網絡追查愈發困難。希望通過對發現的漏洞進行原理分析和相關安全系統進行改進,引起信息安全部門、各大無線網絡運營商以及網絡管理人員的重視,及時地修補漏洞,避免給用戶的信息安全帶來損害,并為防范措施和系統升級提供參考依據。
[1]IEEE Standards,IEEE 802.11i-2004[S].https://en.wikip edia.org/wiki/IEEE_802.11i-2004.
[2]IEEE 802.1x,RADIUS[S].https://en.wikipedia.org/wiki /RADIUS.
[3]RFC6238,TOTP:Time-Based One-Time Password Algorithm[S].http://www.rfc-base.org/rfc-6238.html.
[4]張琪,喻占武,李銳.Radius服務器安全性分析及其改進[J].計算機工程,2007.
[5]何為超,梁華強,陳守強.Radius認證協議安全策略研究[J].計算機與網絡,2007.
[6]朱曉妍,薛赟.基于MAC地址的Radius認證在Linux下的實現[J].山西農業大學學報(自然科學版),2009.
[7]華鑌,曹娜.基于802.1x協議的Radius認證原理及實現[J].信息技術,2010.
[8]楊曉丹,李曉波,賈波.基于RADIUS協議的網絡認證安全機制研究12[A].Proceedings of 2011 International confere nce on Intelligent Computation and Industrial Application(ICI A 2011 V1)[C].2011.
[9]于璐.WIFI無線登錄安全性研究[J].軟件,2013.
[10]劉濤,李堅,于東旭,趙運海.認證服務器(RADIUS)的優化改造[J].鐵道通信信號,2014.