一、前言 

隨著網路技術的進 步,無線網路的技術已經成熟,透過無線網路上網已成趨勢。本校在去年業已完成了校園無線網路的建置,無線網路伴隨而來的問題是無線網路下的使用者身分認 證、無線網路安全、無線網路的頻寬管理及網路使用的費用收取等。對於有線網路,由於無線網路是以無線電廣播的方式傳送資訊,訊號傳輸的無遠弗屆,讓有心人 只要可以接收到無線網路的訊號便可以入侵系統、竊取使用者資料,為了保障合法使用者權益,我們必須對使用者作身分認證及增強資料傳播的安全性。

 

二、研究目的 

 AAA model是『Authentication、Authorization、Accounting』的縮寫,此model是目前在無線網路環境下提出來完成上述「使用者身分認證」及「網路費用收取」的一個解決方式。我們利用RADIUS Server來完成AAA model的建置。目前WLAN的安全是利用WEP加解密的方式來達到安全需求,不過由於WEP機制本身的缺失,這樣的方式容易讓入侵者輕易的解密,為了加強無線網路的安全性,我們利用VPN提供WLAN加密機制。


802.11f下使用者在Access Point間移動的示意圖

 


圖一:網路架構

 

無線網路示意圖

 

 RADIUS( Remote Access Dial In User Service) Protocol主要用來提供Authentication機制,用來辨認使用者的身份與密碼,確認通過之後,經由Authorization授權使用者 登入網域使用相關資源,並可提供Accounting機制,保存使用者的網路使用記錄,以提供系統服務業者完整認證收費機制的一個基礎。

 RADIUS 所提供的Accounting功能是紀錄使用者在某一段連線時間內所使用的IP及該期間所傳輸的網路流量,對於一般的網路計費來說,這樣的資訊已是措措有 餘。但是未來的網路服務品質應逐漸走向分級,而不是強迫使用者接受相同的服務。相根據使用者當下所需要的網路品質需求讓使用者自己選擇所需要的網路服務、 或在網路壅塞狀況下,系統根據使用者提出的服務要求及網路狀況。這樣一個分級的網路服務品質需要一套相對應的分級收費制度,因此如何在無線網路頻寬條件限 制下,研擬出一套提供服務的規則、收費制度,這樣的規則除了提供網路使用者好的服務品質外,也可做到頻寬管理。但是以目前RADIUS所提供的 Accounting無法達到我們所要求的,除了紀錄使用者的IP及該段連線時間所傳送網路流量外,還需要額外的資訊紀錄使用者所要求的服務等級。 

 關於無線網路頻寬管理部分,我們在VPN設備之外架設一部PacketShaper頻管理器作為頻寬管理使用,由於使用者可以隨機、動態的要求所需網路服務品質,因此除了預設頻寬管理規則外,我們還要能夠隨時、即時、隨地的針對使用者的要求改變頻寬管理器的管理規則。 

 另外,除了上述的問題,『管理』也是我們的一個重點,一套精準有效率的頻寬管理與收費規則,除了作到公平外更重要的是讓每個使用者滿意我們所提供的服務品質。
 

三、 研究方法 

 為了符合潮流及避免與其他無線網路系統不相容,我們希望在不改變現有網路架構下達到我們的目的。 

Accounting部分,當使用者通過帳號認證後,必須「即時」的提供該使用者網路服務,同時將資料紀錄包括使用者帳號、連線起始時間、連線結束時間、連線時間及網路服務等級紀錄在資料庫,以供後續計算網路使用費用時使用。由上述RADIUS Server所支援的Accounting特性,我們知道,RADIUS Accounting Server並不支援分級網路服務。在不改變整體網路架構的概念下,我們的解決方法其概念是: 

1Run a process called 「check-session」 forever

2Check the log files of radius server every 3 seconds

3Passing the log files and extracting information we need from the log file

4According the informationmaking associated response

 

EAP-MD5認證流程

EAP-TLS認證流程

圖二:流程圖

上述方法所遭遇的第一個問題是「即時性(real-time)」,由於該方法是藉由每隔一段時間檢查RADIUS Server的連線紀錄檔(log file),因此無法作到當session建立或結束便立刻作出回應。雖然縮短檢查時間間距可以改善即時性,但是過度頻繁的檢查對系統來說可能是一項額外的沉重負擔,尤其每次的檢查都牽涉到了檔案的I/O。 

 其次是同步的問題,當一個session建立或結束的時候,RADIUS Server會將該session的紀錄寫入log file,而一個 「check-session」 process則是固定時間間距的存取該log file,再根據所讀取的資料作出相對應的動作。會發生怎樣的同步問題呢,例如當RADIUS Server正將資料寫入log file時,「check-session」 process也正在讀取該log file,導致「check-session」 process可能讀取到不完整的紀錄,導致程式無法作出正確的回應。

除了上述的同步問題外,還有其他問題要考慮,例如,假設該 「check-session」 process當掉重新執行後,該如何回覆當掉期間的資料庫記錄?更嚴重的是可能造成使用者可以成功通過帳號認證,卻無法接收網路服務。因此,為了讓Accounting支援分級網路服務而將Accounting的功能從RADIUS Server拿出,另外透過其他process來完成,這樣的方式所要面對的問題及未知問題太多,要付出的成本及時間不符效益。因為同步問題的發生原因導致於我們產生一獨立的process執行Accounting,而此process需要透過RADIUS Server得知一個session的起始與結束,在不改變網路架構及解決同步問題下,我們朝著更改RADIUS Server的原始碼,將「check-session」的功能加入RADIUS Server裡,以此解決上述的問題。 

更改RADIUS Server的原始碼是否會產生額外的問題?兩個不同的WLAN,一個使用未修改的RADIUS Server,另一個使用加入支援分級網路服務的RADIUS Server,是否無法溝通?NAS(VPN)是否需要更改設定以對應一個更改過的RADIUS Server?答案是不會。 

首先,兩個RADIUS Server之間的溝通僅只在於「Roaming」時,所謂的Roaming其行為定義為:使用者A在WLANb下透過RADIUSb作authentication,此時RADIUSb將該authentication request轉送至該使用者A原來的authentication server RADIUSa,這樣的過程不會幹涉到accounting的部分,因此修改後的RADIUS Server仍然可以正常的與一般RADIUS Server溝通。同理,NAS(VPN)不用更改設定即可正常與修改過的RADIUS Server連線。唯一的限制是必須將RADIUS Server patch過後才能使之支援分級網路服務。 

 所以,更改原始碼是我認為支援分級網路服務收費最好的解決方法。

更改原始碼可分成三部份:設定檔的讀取、sql指令的產生、sql指令的執行。

設定檔的讀取:透過trace FreeRadius的原始碼,我們必須知道FreeRadius如何讀取設定檔radiusd.conf的內容及如何儲存讀進來的設定項目及如何將它使 用在程式裡。由於我們的目標是要讓Radius支援分級網路服務,因此我們比須在radiusd.conf裡面新增加一個關於網路服務的預設項目,如此當 一個新的session建立時,若該使用者未選擇網路服務,系統則可以radiusd.conf裡預設的網路服務提供給該使用者,而不會產生錯誤。

sql 指令的產生:根據使用者選擇網路服務等級及一些使用者資訊產生accounting時所需要的sql指令。在FreeRadius裡,所有的sql指令皆 是動態產生的,我們必須將許多變數,例如:使用者名稱、連線IP、連線起始時間、資料庫名稱、欄位及使用者所選網路服務等許多變數轉換成真正的sql指 令。

sql指令的執行:正確的執行sql指令。確保資料正確的存入資料庫裡,同時根據此sql指令遠端控制頻寬管理器PacketShaper,對此使用者(IP)網路所使用頻寬作出合乎所選網路服務等級的回應。

 


 

(1)   A Practical Attack on Broadcast RC4, Mantin and Shamir, FSE 2001

(2)   Statistical Analysis of the Alleged RC4 Key stream Generator, Fluhrer and McGrew, FSE 2000

(3)   Analysis Methods for (Alleged) RC4,  Knudsen, Meier, Preneel, Rijmen and Verdoolaege, ASIACRYPT 1998

(4)   Linear Statistical Weakness of Alleged RC4 Key stream Generator, Golic, EUROCRYPT 1997

(5)   Weaknesses in the Key Scheduling Algorithm of RC4, Fluhrer, Mantin and Shamir, SAC 2001

(6)   Analysis of the Stream Cipher RC4, Itsik Mantin, Master’s Thesis, Weizmann Institute of Science, 2001

(7)   Attacks on RC4 and WEP, Fluhrer, Mantin and Shamir, Cryptobytes 2002

(8)   Extensible Authentication Protocol (EAP), http://www.freeradius.org/radiusd/doc/eap

(9)   An Analysis of the RADIUS Authentication Protocol,http://www.untruth.org/~josh/security/radius/radius-auth.html

(10)   PPP Extensible Authentication Protocol (EAP),http://www.ietf.org/rfc/rfc2284.txt

(11)   PPP EAP TLS Authentication Protocol,http://www.ietf.org/rfc/rfc2716.txt

(12)   A One-Time Password System,http://www.cis.ohio-state.edu/cgi-bin/rfc/rfc1938.html

(13)   RFC2716 PPP EAP TLS Authentication Protocol

(14)   RFC2138 Remote Authentication Dial In User Service (RADIUS)

(15)   RFC2548 Microsoft Vendor-specific RADIUS Attributes

(16)   RFC2104 HMAC: Keyed-Hashing for Message Authentication

(17)   Security for Next Generation Wireless LANs,

(18)   http://www.cisco.com/warp/public/102/wlan/nextgen.html

(19)   RADIUS TYPES,http://www.iana.org/assignments/radius-types

(20)   RADIUS Extensions,http://www.ietf.org/rfc/rfc2869.txt

(21)   IEEE 802.1X RADIUS Usage Guidelines,http://www.potaroo.net/ietf/xld-ids/draft-congdon-radius-8021x-19.txt

(22)  http://www.gnu.org/software/radius/

(23)   http://www.xs4all.nl/~evbergen/openradius/

(24)  http://yardradius.sourceforge.net/index.php?YardRadius



arrow
arrow
    全站熱搜

    Bluelove1968 發表在 痞客邦 留言(0) 人氣()