802.1x協議解析

roninwei發表於2006-07-12

802.1X協議是由(美)電氣與電子工程師協會提出,剛剛完成標準化的一個符合IEEE 802協議集的區域網接入控制協議,其全稱為基於埠的訪問控制協議。它能夠在利用IEEE 802區域網優勢的基礎上提供一種對連線到區域網的使用者進行認證和授權的手段,達到了接受合法使用者接入,保護網路安全的目的。 802.1x認證,又稱EAPOE認證,主要用於寬頻IP都會網路。

一、802.1x認證技術的起源

802.1x協議起源於802.11協議,後者是標準的無線區域網協議,802.1x協議的主要目的是為了解決無線區域網使用者的接入認證問題。

有線區域網透過固定線路連線組建,計算機終端透過網線接入固定位置物理埠,實現區域網接入,這些固定位置的物理埠構成有線區域網的封閉物理空間。但是,由於無線區域網的網路空間具有開放性和終端可移動性,因此很難透過網路物理空間來界定終端是否屬於該網路,因此,如何透過埠認證來防止其他公司的計算機接入本公司無線網路就成為一項非常現實的問題,802.1x正是基於這一需求而出現的一種認證技術。也就是說,對於有線區域網,該項認證沒有存在的意義。

由此可以看出,802.1x協議並不是為寬頻IP都會網路量身定做的認證技術,將其應用於寬頻IP都會網路,必然會有其侷限性,下面將詳細說明該認證技術的特點,並與PPPOE認證、VLAN+WEB認證進行比較,並分析其在寬頻IP都會網路中的應用。

二、802.1x認證技術的特點

802.1x協議僅僅關注埠的開啟與關閉,對於合法使用者(根據帳號和密碼)接入時,該埠開啟,而對於非法使用者接入或沒有使用者接入時,則該埠處於關閉狀態。認證的結果在於埠狀態的改變,而不涉及通常認證技術必須考慮的IP地址協商和分配問題,是各種認證技術中最簡化的實現方案。

802.1x認證技術的操作粒度為埠,合法使用者接入埠之後,埠處於開啟狀態,因此其它使用者(合法或非法)透過該埠時,不需認證即可接入網路。對於無線區域網接入而言,認證之後建立起來的通道(埠)被獨佔,不存在其它使用者再次使用的問題,但是,如果802.1x認證技術用於寬頻IP都會網路的認證,就存在埠開啟之後,其它使用者(合法或非法)可自由接入和無法控制的問題。

接入認證透過之後,IP資料包在二層普通MAC幀上傳送,認證後的資料流和沒有認證的資料流完全一樣,這是由於認證行為僅在使用者接入的時刻進行,認證透過後不再進行合法性檢查。

三、寬頻IP都會網路中的認證技術分析

寬頻IP都會網路建設越來越強調網路的可運營性和可管理性,具體包括:對使用者的認證、計費,IP地址分配、全方位安全機制,對業務的支援能力和運營能力等方面。其中使用者認證技術是可運營、可管理網路的關鍵。從嚴格意義上講,認證功能包括:識別和鑑權,對使用者的準確有效識別,對使用者許可權的下發、確認和控制,這些構成了使用者計費和各種安全機制實施的前提以及多業務支援和發展的基礎。因此,寬頻IP都會網路中認證技術的採用必須遵循網路的可運營、可管理要求。

實踐證明,PPPOE認證技術、VLAN+WEB認證技術均可很好地支撐寬頻網路的計費、安全、運營和管理要求。對於802.1x認證技術,根據其定位和特點,在寬頻都會網路中實現使用者認證遠遠達不到可運營、可管理要求,加之應用又少,為了完備使用者的認證、管理功能,還需要進行大量協議之外的工作,目前僅有少數幾個二/三層交換機廠家在寬頻IP都會網路中推廣此項方式,將802.1x技術附著在L2/L3產品上,使L2/L3產品具備BAS使用者認證和管理功能。如上所述,這種認證方式僅僅能夠基於埠的認證,而且不是全程認證,與其它BAS功能(計費、安全機制、多業務支援)難以融合,因而不能稱為電信級認證解決方案。

在都會網路建設初期,大家對可運營、可管理性的認識還不是很一致,802.1x認證技術可能會有一定的市場空間,隨著寬頻IP都會網路建設的逐步成熟和對可管理的關注,基於埠開關狀態的802.1x認證技術不會成為主流。

四、802.1x協議工作機制

乙太網技術“連通和共享”的設計初衷使目前由乙太網構成的網路系統面臨著很多安全問題。IEEE 802.1X協議正是在基於這樣的背景下被提出來的,成為解決區域網安全問題的一個有效手段。

802.1X協議中,只有具備了以下三個元素才能夠完成基於埠的訪問控制的使用者認證和授權。

客戶端:一般安裝在使用者的工作站上,當使用者有上網需求時,啟用客戶端程式,輸入必要的使用者名稱和口令,客戶端程式將會送出連線請求。

認證系統:在乙太網系統中指認證交換機,其主要作用是完成使用者認證資訊的上傳、下達工作,並根據認證的結果開啟或關閉埠。

認證伺服器:透過檢驗客戶端傳送來的身份標識(使用者名稱和口令)來判別使用者是否有權使用網路系統提供的網路服務,並根據認證結果向交換機發出開啟或保持埠關閉的狀態。

在具有802.1X認證功能的網路系統中,當一個使用者需要對網路資源進行訪問之前必須先要完成以下的認證過程。

連線請求。此時,客戶端程式將發出請求認證的報文給交換機,開始啟動一次認證過程。

交換機收到請求認證的資料幀後,將發出一個請求幀要求使用者的客戶端程式將輸入的使用者名稱送上來。

客戶端程式響應交換機發出的請求,將使用者名稱資訊透過資料幀送給交換機。交換機將客戶端送上來的資料幀經過封包處理後送給認證伺服器進行處理。

認證伺服器收到交換機轉發上來的使用者名稱資訊後,將該資訊與資料庫中的使用者名稱錶相比對,找到該使用者名稱對應的口令資訊,用隨機生成的一個加密字對它進行加密處理,同時也將此加密字傳送給交換機,由交換機傳給客戶端程式。

客戶端程式收到由交換機傳來的加密字後,用該加密字對口令部分進行加密處理(此種加密演算法通常是不可逆的),並透過交換機傳給認證伺服器。

認證伺服器將送上來的加密後的口令資訊和其自己經過加密運算後的口令資訊進行對比,如果相同,則認為該使用者為合法使用者,反饋認證透過的訊息,並向交換機發出開啟埠的指令,允許使用者的業務流透過埠訪問網路。否則,反饋認證失敗的訊息,並保持交換機埠的關閉狀態,只允許認證資訊資料透過而不允許業務資料透過。

這裡要提出的一個值得注意的地方是: 在客戶端與認證伺服器交換口令資訊的時候,沒有將口令以明文直接送到網路上進行傳輸,而是對口令資訊進行了不可逆的加密演算法處理,使在網路上傳輸的敏感資訊有了更高的安全保障,杜絕了由於下級接入裝置所具有的廣播特性而導致敏感資訊洩漏的問題。

802.1X解決方案中,通常採用基於MAC地址的埠訪問控制模式。採用此種模式將會帶來降低使用者建網成本、降低認證伺服器效能要求的優點。對於此種訪問控制方式,應當採用相應的手段來防止由於MAC、IP地址假冒所發生的網路安全問題。

對於假冒MAC地址的情況

當認證交換機的一個物理埠下面再級連一臺接入級交換機,而該臺接入交換機上的甲使用者已經透過認證並正常使用網路資源,則此時在認證交換機的該物理埠中就已將甲使用者終端裝置的MAC地址設定為允許傳送業務資料。假如同一臺接入交換機下的乙使用者將自己的MAC地址修改得與甲使用者的MAC地址相同,則即使乙使用者沒有經過認證過程也能夠使用網路資源了,這樣就給網路安全帶來了漏洞。針對此種情況,港灣網路交換機在實現了802.1X認證、授權功能的交換機上透過MAC地址+IP地址的繫結功能來阻止假冒MAC地址的使用者非法訪問。

對於動態分配IP地址的網路系統,由於非法使用者無法預先獲知其他使用者將會分配到的IP地址,因此他即使知道某一使用者的MAC地址也無法偽造IP地址,也就無法冒充合法使用者訪問網路資源。

對於靜態分配地址的方案,由於具有同一IP地址的兩臺終端裝置必然會造成IP地址衝突,因此同時假冒MAC地址和IP地址的方法也是不可行的。

當假冒者和合法使用者分屬於認證交換機兩個不同的物理埠,則假冒者即使知道合法使用者的MAC地址,而由於該MAC地址不在同一物理埠,因此,假冒者還是無法進入網路系統。

對於假冒IP地址的情況

由於802.1X採用了基於二層的認證方式,因此,當採用動態地址分配方案時,只有使用者認證透過後,才能夠分配到IP網路地址。

對於靜態地址分配策略,如果假冒了IP地址,而沒有能夠透過認證,也不會與正在使用該地址的合法使用者發生地址衝突。

如果使用者能夠透過認證,但假冒了其他使用者的IP地址,則透過在認證交換機上採用IP地址+MAC地址繫結的方式來控制使用者的訪問接入。這使得假冒使用者無法進行正常的業務通訊,從而達到了防止IP地址被篡改、假冒的目的。

對於使用者口令失竊、擴散的處理

在使用802.1X認證協議的系統中,使用者口令失竊和口令擴散的情況非常多,對於這類情況,能夠透過在認證伺服器上限定同時接入具有同一使用者名稱和口令認證資訊的請求數量來達到控制使用者接入,避免非法訪問網路系統的目的。

五、總結

802.1x協議僅僅提供了一種使用者接入認證的手段,並簡單地透過控制接入埠的開/關狀態來實現,這種簡化適用於無線區域網的接入認證、點對點物理或邏輯埠的接入認證,而在可運營、可管理的寬頻IP都會網路中作為一種認證方式具有一定的侷限性。

Linux下的安裝和使用如下:

1.下載免費的mdc-ssd 802.1x認證客戶端軟體。目前的版本是:mdc-ssd-01.1.2-1.i386.rpm (見附件)

2.安裝mdc-ssd。由於mdc-ssd使用了TLS認證,所以需要一些SSL的庫檔案。如果您安裝的時候提示需要安裝libssl或libcrypto等軟體包,請使用命令:

"rpm -Uvh -nodeps mdc-ssd-01.1.2-1.i386.rpm"

安裝。同時在/usr/lib目錄裡,建立檔案連結:

cd /us/lib

ln -s libssl.so libssl.so.1

ln -s libcrypto.so libcrypto.so.1

3.配置mdc-ssd。

cd /etc/mdc-ssd

修改檔案ifcfg,將id對應一欄的內容改成您的使用者名稱。

cd /etc/mdc-ssd/eth0

修改chap-secrets檔案,將系統自動新增的一個欄改成您的使用者名稱和密碼,中間的"*"不要動。

您也可以只修改ifcfg檔案,將id後面的預設口令設定為您的密碼就可以了,chap-secrets檔案就不需要修改了。

注意:對於沒有安裝1.x版本SSL的系統,只能使用MD5-Challenge認證方法,不能使用TLS認證方法。如果您的接入系統是LAN或者VDSL接入,應該沒有問題。目前中國大陸基本上都使用MD5-Challenge認證。如果您使用的WLAN接入,則有可能採用TLS認證。TLS認證的配置比較複雜,需要從運營商獲取安全證書。本文的配置只針對MD5-Challenge認證。

已經驗證的系統:RedHat 7.2(Kernel:2.4.10)、RedHat 7.3(Kernel 2.4.18-3)、RedHat 8.0, Mandrake 8.0、Mandrake 8.2

如果您的核心版本低於2.4,可能會有問題,但是我沒有實驗過,沒有環境。

如果您是自己編譯的核心,那麼請您確認是否將網路配置中的"raw packet"編譯,否則需要重新編譯。

使用方法:

mdc-ssd分成兩部分,一個守護程式和一個管理程式.

首先起動守護程式,只有守護程式起動了,並且成功地與接入網路隊接成功了,管理程式才能使用.

您可以在/etc/rc.d/rc5.d目錄下建立守護程式的起動文字,如果是從明令行起動需要作為守護程式起動:"mdc-ssd &"

mdc-ssc為管理程式,start login logout help四條命令,輸入help命令瞭解詳細資訊.

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7507082/viewspace-849037/,如需轉載,請註明出處,否則將追究法律責任。

相關文章