802.1x技術介紹

802.1X

IEEE802 LAN/WAN委員會爲解決無線局域網網絡安全問題,提出了802.1X協議。後來,802.1X協議作爲局域網端口的一個普通接入控制機制在以太網中被廣泛應用,主要解決以太網內認證和安全方面的問題。

802.1X協議是一種基於端口的網絡接入控制協議(port based network access control protocol)。“基於端口的網絡接入控制”是指在局域網接入設備的端口這一級對所接入的用戶設備進行認證和控制。連接在端口上的用戶設備如果能通過認證,就可以訪問局域網中的資源;如果不能通過認證,則無法訪問局域網中的資源。

802.1X的體系結構

802.1X系統爲典型的Client/Server結構,如 1所示,包括三個實體:客戶端(Client)、設備端(Device)和認證服務器(Server)。

圖 1 802.1X認證系統的體系結構

客戶端是位於局域網段一端的一個實體,由該鏈路另一端的設備端對其進行認證。客戶端一般爲一個用戶終端設備,用戶可以通過啓動客戶端軟件發起802.1X認證。客戶端必須支持EAPOLExtensible Authentication Protocol over LAN,局域網上的可擴展認證協議)。

l設備端是位於局域網段一端的另一個實體,對所連接的客戶端進行認證。設備端通常爲支持802.1X協議的網絡設備,它爲客戶端提供接入局域網的端口,該端口可以是物理端口,也可以是邏輯端口。

l認證服務器是爲設備端提供認證服務的實體。認證服務器用於實現對用戶進行認證、授權和計費,通常爲RADIUSRemote Authentication Dial-In User Service,遠程認證撥號用戶服務)服務器。

802.1X的認證方式

802.1X認證系統使用EAPExtensible Authentication Protocol,可擴展認證協議),來實現客戶端、設備端和認證服務器之間認證信息的交換。

l在客戶端與設備端之間,EAP協議報文使用EAPOL封裝格式,直接承載於LAN環境中。

l在設備端與RADIUS服務器之間,可以使用兩種方式來交換信息。一種是EAP協議報文由設備端進行中繼,使用EAPOREAP over RADIUS)封裝格式承載於RADIUS協議中;另一種是EAP協議報文由設備端進行終結,採用包含PAPPassword Authentication Protocol,密碼驗證協議)或CHAPChallenge Handshake Authentication Protocal,質詢握手驗證協議)屬性的報文與RADIUS服務器進行認證交互。

802.1X的基本概念

1. 受控/非受控端口

設備端爲客戶端提供接入局域網的端口,這個端口被劃分爲兩個邏輯端口:受控端口和非受控端口。任何到達該端口的幀,在受控端口與非受控端口上均可見。

l非受控端口始終處於雙向連通狀態,主要用來傳遞EAPOL協議幀,保證客戶端始終能夠發出或接收認證報文。

l受控端口在授權狀態下處於雙向連通狀態,用於傳遞業務報文;在非授權狀態下禁止從客戶端接收任何報文。

2. 授權/非授權狀態

設備端利用認證服務器對需要接入局域網的客戶端執行認證,並根據認證結果(AcceptReject)對受控端口的授權/非授權狀態進行相應地控制。

2顯示了受控端口上不同的授權狀態對通過該端口報文的影響。圖中對比了兩個802.1X認證系統的端口狀態。系統1的受控端口處於非授權狀態(相當於端口開關打開),系統2的受控端口處於授權狀態(相當於端口開關關閉)。

圖 2 受控端口上授權狀態的影響

用戶可以通過在端口下配置的接入控制的模式來控制端口的授權狀態。端口支持以下三種接入控制模式:

l強制授權模式(authorized-force):表示端口始終處於授權狀態,允許用戶不經認證授權即可訪問網絡資源。

l強制非授權模式(unauthorized-force):表示端口始終處於非授權狀態,不允許用戶進行認證。設備端不對通過該端口接入的客戶端提供認證服務。

l自動識別模式(auto):表示端口初始狀態爲非授權狀態,僅允許EAPOL報文收發,不允許用戶訪問網絡資源;如果認證通過,則端口切換到授權狀態,允許用戶訪問網絡資源。這也是最常見的情況。

3. 受控方向

在非授權狀態下,受控端口可以被設置成單向受控和雙向受控。

l實行雙向受控時,禁止幀的發送和接收;

l實行單向受控時,禁止從客戶端接收幀,但允許向客戶端發送幀。

EAPOL消息的封裝

1. EAPOL數據包的格式

EAPOL802.1X協議定義的一種報文封裝格式,主要用於在客戶端和設備端之間傳送EAP協議報文,以允許EAP協議報文在LAN上傳送。EAPOL數據包的格式如 3所示。

圖 3 EAPOL數據包格式

PAE Ethernet Type:表示協議類型,爲0x888E

Protocol Version:表示EAPOL幀的發送方所支持的協議版本號。

Type:表示EAPOL數據幀類型,目前設備上支持的數據類型見 1

表 1 EAPOL數據類型

類型

說明

EAP-Packet(值爲0x00):認證信息幀,用於承載認證信息

該幀在設備端重新封裝並承載於RADIUS協議上,便於穿越複雜的網絡到達認證服務器

EAPOL-Start(值爲0x01):認證發起幀

這兩種類型的幀僅在客戶端和設備端之間存在

EAPOL-Logoff(值爲0x02):退出請求幀

Length:表示數據長度,也就是“Packet Body”字段的長度,單位爲字節。如果爲0,則表示沒有後面的數據域。

Packet Body:表示數據內容,根據不同的Type有不同的格式。

2. EAP數據包的格式

EAPOL數據包格式Type域爲EAP-Packet時,Packet BodyEAP數據包結構,如 4所示。

圖 4 EAP數據包格式

Code:指明EAP包的類型,共有4種:RequestResponseSuccessFailure

lSuccessFailure類型的包沒有Data域,相應的Length域的值爲4

lRequestResponse類型數據包的Data域的格式如 5所示。TypeEAP的認證類型,Type data的內容由類型決定。例如,Type值爲1時代表Identity,用來查詢對方的身份;Type值爲4時,代表MD5-Challenge,類似於PPP CHAP協議,包含質詢消息。

圖 5 RequestResponse類型數據包的Data域的格式

Identifier:用於匹配Request消息和Response消息。

LengthEAP包的長度,包含CodeIdentifierLengthData域,單位爲字節。

DataEAP包的內容,由Code類型決定。

EAP屬性的封裝

RADIUS爲支持EAP認證增加了兩個屬性:EAP-MessageEAP消息)和Message-Authenticator(消息認證碼)。

1. EAP-Message

6所示,這個屬性用來封裝EAP數據包,類型代碼爲79String域最長253字節,如果EAP數據包長度大於253字節,可以對其進行分片,依次封裝在多個EAP-Message屬性中。

圖 6 EAP-Message屬性封裝

2. Message-Authenticator

7所示,這個屬性用於在使用EAPCHAP等認證方法的過程中,避免接入請求包被竊聽。在含有EAP-Message屬性的數據包中,必須同時也包含Message-Authenticator,否則該數據包會被認爲無效而被丟棄。

圖 7 Message-Authenticator屬性

802.1X的認證觸發方式

802.1X的認證過程可以由客戶端主動發起,也可以由設備端發起。設備支持的認證觸發方式包括以下兩種:

1. 客戶端主動觸發方式

客戶端主動向設備端發送EAPOL-Start報文來觸發認證,該報文目的地址爲IEEE 802.1X協議分配的一個組播MAC地址:01-80-C2-00-00-03

另外,由於網絡中有些設備不支持上述的組播報文,使得認證設備無法收到客戶端的認證請求,因此設備端還支持廣播觸發方式,即,可以接收客戶端發送的目的地址爲廣播MAC地址的EAPOL-Start報文。這種觸發方式需要H3CiNode802.1X客戶端的配合。

2. 設備端主動觸發方式

設備會每隔N秒(例如30秒)主動向客戶端發送EAP-Request/Identity報文來觸發認證,這種觸發方式用於支持不能主動發送EAPOL-Start報文的客戶端,例如Windows XP自帶的802.1X客戶端。

802.1X的認證過程

802.1X系統支持EAP中繼方式和EAP終結方式與遠端RADIUS服務器交互完成認證。以下關於兩種認證方式的過程描述,都以客戶端主動發起認證爲例。

1. EAP中繼方式

這種方式是IEEE 802.1X標準規定的,將EAP(可擴展認證協議)承載在其它高層協議中,如EAP over RADIUS,以便擴展認證協議報文穿越複雜的網絡到達認證服務器。一般來說,EAP中繼方式需要RADIUS服務器支持EAP屬性:EAP-MessageMessage-Authenticator,分別用來封裝EAP報文及對攜帶EAP-MessageRADIUS報文進行保護。

下面以EAP-MD5方式爲例介紹基本業務流程,如 8所示。

圖 8 IEEE 802.1X認證系統的EAP中繼方式業務流程

認證過程如下:

(1)當用戶有訪問網絡需求時打開802.1X客戶端程序,輸入已經申請、登記過的用戶名和密碼,發起連接請求(EAPOL-Start報文)。此時,客戶端程序將發出請求認證的報文給設備端,開始啓動一次認證過程。

(2)設備端收到請求認證的數據幀後,將發出一個請求幀(EAP-Request/Identity報文)要求用戶的客戶端程序發送輸入的用戶名。

(3)客戶端程序響應設備端發出的請求,將用戶名信息通過數據幀(EAP-Response/Identity報文)發送給設備端。設備端將客戶端發送的數據幀經過封包處理後(RADIUS Access-Request報文)送給認證服務器進行處理。

(4)RADIUS服務器收到設備端轉發的用戶名信息後,將該信息與數據庫中的用戶名錶對比,找到該用戶名對應的密碼信息,用隨機生成的一個加密字對它進行加密處理,同時也將此加密字通過RADIUS Access-Challenge報文發送給設備端,由設備端轉發給客戶端程序。

(5)客戶端程序收到由設備端傳來的加密字(EAP-Request/MD5 Challenge報文)後,用該加密字對密碼部分進行加密處理(此種加密算法通常是不可逆的),生成EAP-Response/MD5 Challenge報文,並通過設備端傳給認證服務器。

(6)RADIUS服務器將收到的已加密的密碼信息(RADIUS Access-Request報文)和本地經過加密運算後的密碼信息進行對比,如果相同,則認爲該用戶爲合法用戶,反饋認證通過的消息(RADIUS Access-Accept報文和EAP-Success報文)。

(7)設備收到認證通過消息後將端口改爲授權狀態,允許用戶通過端口訪問網絡。在此期間,設備端會通過向客戶端定期發送握手報文的方法,對用戶的在線情況進行監測。缺省情況下,兩次握手請求報文都得不到客戶端應答,設備端就會讓用戶下線,防止用戶因爲異常原因下線而設備無法感知。

(8)客戶端也可以發送EAPOL-Logoff報文給設備端,主動要求下線。設備端把端口狀態從授權狀態改變成未授權狀態,並向客戶端發送EAP-Failure報文。

2. EAP終結方式

這種方式將EAP報文在設備端終結並映射到RADIUS報文中,利用標準RADIUS協議完成認證、授權和計費。設備端與RADIUS服務器之間可以採用PAP或者CHAP認證方法。以下以CHAP認證方法爲例介紹基本業務流程,如 9所示。

圖 9 IEEE 802.1X認證系統的EAP終結方式業務流程

EAP終結方式與EAP中繼方式的認證流程相比,不同之處在於用來對用戶密碼信息進行加密處理的隨機加密字由設備端生成,之後設備端會把用戶名、隨機加密字和客戶端加密後的密碼信息一起送給RADIUS服務器,進行相關的認證處理。

802.1X的接入控制方式

設備不僅支持協議所規定的基於端口的接入認證方式,還對其進行了擴展、優化,支持基於MAC的接入控制方式。

l當採用基於端口的接入控制方式時,只要該端口下的第一個用戶認證成功後,其它接入用戶無須認證就可使用網絡資源,但是當第一個用戶下線後,其它用戶也會被拒絕使用網絡。

l採用基於MAC的接入控制方式時,該端口下的所有接入用戶均需要單獨認證,當某個用戶下線時,也只有該用戶無法使用網絡。

802.1X的定時器

802.1X認證過程中會啓動多個定時器以控制接入用戶、設備以及RADIUS服務器之間進行合理、有序的交互。802.1X的定時器主要有以下幾種:

l用戶名請求超時定時器(tx-period):該定時器定義了兩個時間間隔。其一,當設備端向客戶端發送EAP-Request/Identity請求報文後,設備端啓動該定時器,若在tx-period設置的時間間隔內,設備端沒有收到客戶端的響應,則設備端將重發認證請求報文;其二,爲了兼容不主動發送EAPOL-Start連接請求報文的客戶端,設備會定期組播EAP-Request/Identity請求報文來檢測客戶端。tx-period定義了該組播報文的發送時間間隔。

l客戶端認證超時定時器(supp-timeout):當設備端向客戶端發送了EAP-Request/MD5 Challenge請求報文後,設備端啓動此定時器,若在該定時器設置的時長內,設備端沒有收到客戶端的響應,設備端將重發該報文。

l認證服務器超時定時器(server-timeout):當設備端向認證服務器發送了RADIUS Access-Request請求報文後,設備端啓動server-timeout定時器,若在該定時器設置的時長內,設備端沒有收到認證服務器的響應,設備端將重發認證請求報文。

l握手定時器(handshake-period):此定時器是在用戶認證成功後啓動的,設備端以此間隔爲週期發送握手請求報文,以定期檢測用戶的在線情況。如果配置發送次數爲N,則當設備端連續N次沒有收到客戶端的響應報文,就認爲用戶已經下線。

l靜默定時器(quiet-period):對用戶認證失敗以後,設備端需要靜默一段時間(該時間由靜默定時器設置),在靜默期間,設備端不處理該用戶的認證請求。

l週期性重認證定時器(reauth-period):如果端口下開啓了週期性重認證功能,設備端以此定時器設置的時間間隔爲週期對該端口在線用戶發起重認證。

802.1X配合使用的特性

1. VLAN下發

802.1X用戶在服務器上通過認證時,服務器會把授權信息傳送給設備端。如果服務器上配置了下發VLAN功能,則授權信息中含有授權下發的VLAN信息,設備根據用戶認證上線的端口鏈路類型,按以下三種情況將端口加入下發VLAN中。

l端口的鏈路類型爲Access,當前Access端口離開用戶配置的VLAN並加入授權下發的VLAN中。

l端口的鏈路類型爲Trunk,設備允許授權下發的VLAN通過當前Trunk端口,並且端口的缺省VLAN ID爲下發VLANVLAN ID

l端口的鏈路類型爲Hybrid,設備允許授權下發的VLAN以不攜帶Tag的方式通過當前Hybrid端口,並且端口的缺省VLAN ID爲下發VLANVLAN ID。需要注意的是,若當前Hybrid端口上配置了基於MACVLAN,則設備將根據認證服務器下發的授權VLAN動態地創建基於用戶MACVLAN,而端口的缺省VLAN ID並不改變。

授權下發的VLAN並不改變端口的配置,也不影響端口的配置。但是,授權下發的VLAN的優先級高於用戶配置的VLAN,即通過認證後起作用的VLAN是授權下發的VLAN,用戶配置的VLAN在用戶下線後生效。

2. Guest VLAN

Guest VLAN功能允許用戶在未認證的情況下,可以訪問某一特定VLAN中的資源,比如獲取客戶端軟件,升級客戶端或執行其他一些用戶升級程序。這個VLAN稱之爲Guest VLAN

根據端口的接入控制方式不同,可以將Guest VLAN劃分基於端口的Guest VLAN和基於MACGuest VLAN

(1)PGVPort-based Guest VLAN

在接入控制方式爲portbased的端口上配置的Guest VLAN稱爲PGV。若在一定的時間內(默認90秒),配置了PGV的端口上無客戶端進行認證,則該端口將被加入Guest VLAN,所有在該端口接入的用戶將被授權訪問Guest VLAN裏的資源。端口加入Guest VLAN的情況與加入授權下發VLAN相同,與端口鏈路類型有關。

當端口上處於Guest VLAN中的用戶發起認證且失敗時:如果端口配置了Auth-Fail VLAN,則該端口會被加入Auth-Fail VLAN;如果端口未配置Auth-Fail VLAN,則該端口仍然處於Guest VLAN內。關於Auth-Fail VLAN的具體介紹請參見“3. Auth-Fail VLAN”。

當端口上處於Guest VLAN中的用戶發起認證且成功時,端口會離開Guest VLAN,之後端口加入VLAN情況與認證服務器是否下發VLAN有關,具體如下:

l若認證服務器下發VLAN,則端口加入下發的VLAN中。用戶下線後,端口離開下發的VLAN回到初始VLAN中,該初始VLAN爲端口加入Guest VLAN之前所在的VLAN

l若認證服務器未下發VLAN,則端口回到初始VLAN中。用戶下線後,端口仍在該初始VLAN中。

(2)MGVMAC-based Guest VLAN

在接入控制方式爲macbased的端口上配置的Guest VLAN稱爲MGV。配置了MGV的端口上未認證的用戶被授權訪問Guest VLAN裏的資源。

當端口上處於Guest VLAN中的用戶發起認證且失敗時:如果端口配置了Auth-Fail VLAN,則認證失敗的用戶將被加入Auth-Fail VLAN;如果端口未配置Auth-Fail VLAN,則該用戶將仍然處於Guest VLAN內。

當端口上處於Guest VLAN中的用戶發起認證且成功時,設備會根據認證服務器是否下發VLAN決定將該用戶加入到下發的VLAN中,或回到加入Guest VLAN之前端口所在的初始VLAN

3. Auth-Fail VLAN

Auth-Fail VLAN功能允許用戶在認證失敗的情況下可以訪問某一特定VLAN中的資源,這個VLAN稱之爲Auth-Fail VLAN。需要注意的是,這裏的認證失敗是認證服務器因某種原因明確拒絕用戶認證通過,比如用戶密碼錯誤,而不是認證超時或網絡連接等原因造成的認證失敗。

Guest VLAN類似,根據端口的接入控制方式不同,可以將Auth-Fail VLAN劃分爲基於端口的Auth-Fail VLAN和基於MACAuth-Fail VLAN

(1)PAFVPort-based Auth-Fail VLAN

在接入控制方式爲portbased的端口上配置的Auth-Fail VLAN稱爲PAFV。在配置了PAFV的端口上,若有用戶認證失敗,則該端口會被加入到Auth-Fail VLAN,所有在該端口接入的用戶將被授權訪問Auth-Fail VLAN裏的資源。端口加入Auth-Fail VLAN的情況與加入授權下發VLAN相同,與端口鏈路類型有關。

當端口上處於Auth-Fail VLAN中的用戶再次發起認證時:如果認證失敗,則該端口將會仍然處於Auth-Fail VLAN內;如果認證成功,則該端口會離開Auth-Fail VLAN,之後端口加入VLAN情況與認證服務器是否下發VLAN有關,具體如下:

l若認證服務器下發VLAN,則端口加入下發的VLAN中。用戶下線後,端口會離開下發的VLAN回到初始VLAN中,該初始VLAN爲端口加入任何授權VLAN之前所在的VLAN

l若認證服務器未下發VLAN,則端口回到初始VLAN中。用戶下線後,端口仍在該初始VLAN中。

(2)MAFVMAC-based Auth-Fail VLAN

在接入控制方式爲macbased的端口上配置的Auth-Fail VLAN稱爲MAFV。在配置了MAFV的端口上,認證失敗的用戶將被授權訪問Auth-Fail VLAN裏的資源。

Auth-Fail VLAN中的用戶再次發起認證時,如果認證成功,則設備會根據認證服務器是否下發VLAN決定將該用戶加入到下發的VLAN中,或回到加入Auth-Fail VLAN之前端口所在的初始VLAN

4. ACL下發

ACLAccess Control List,訪問控制列表)提供了控制用戶訪問網絡資源和限制用戶訪問權限的功能。當用戶上線時,如果RADIUS服務器上配置了授權ACL,則設備會根據服務器下發的授權ACL對用戶所在端口的數據流進行控制;在服務器上配置授權ACL之前,需要在設備上配置相應的規則。管理員可以通過改變服務器的授權ACL設置或設備上對應的ACL規則來改變用戶的訪問權限。

5. 指定端口的強制認證域

指定端口的強制認證域(mandatory domain)爲802.1X接入提供了一種安全控制策略。所有從該端口接入的802.1X用戶將被強制使用該認證域來進行認證、授權和計費,可以防止用戶通過惡意假冒其它域賬號來接入網絡。

另外,對於採用證書的EAP中繼方式的802.1X認證來說,接入用戶的客戶端證書決定了用戶的域名。因此,即使所有端口上客戶端的用戶證書隸屬於同一證書頒發機構,即輸入的用戶域名相同,管理員也可以通過配置強制認證域對不同端口指定不同的認證域,從而增加了管理員部署802.1X接入策略的靈活性。

802.1X支持EAD快速部署配置

1. 概述

EADEndpoint Admission Defense,端點准入防禦)作爲一個網絡端點接入控制方案,它通過安全客戶端、安全策略服務器、接入設備以及第三方服務器的聯動,加強了對用戶的集中管理,提升了網絡的整體防禦能力。但是在實際的應用過程中EAD客戶端的部署工作量很大,例如,需要網絡管理員手動爲每一個EAD客戶端下載、升級客戶端軟件,這在EAD客戶端數目較多的情況下給管理員帶來了操作上的不便。

802.1X認證支持的EAD快速部署就可以解決以上問題,可爲所有接入網絡的終端用戶提供自動下載並安裝EAD客戶端的方便途徑。

2. 實現機制

802.1X支持的EAD快速部署是通過以下兩個功能的配合工作實現的:

(1)用戶受限訪問

802.1X認證成功之前(包括認證失敗),終端用戶只能訪問一個特定的IP地址段。該IP地址段中可以配置一個或多個特定服務器,用於提供EAD客戶端的下載升級或者動態地址分配等服務。

(2)用戶HTTP訪問URL重定向

終端用戶在802.1X認證成功之前(包括認證失敗),如果使用瀏覽器訪問網絡,設備會將用戶訪問的URL重定向到已配置的URL(例如,重定向到EAD客戶端下載界面),這樣只要用戶打開瀏覽器,就必須進入管理員預設的界面。提供重定向URL的服務器必須位於用戶受限訪問的特定網段內。


本文轉載於H3C官網,僅供學習參考。http://www.h3c.com.cn/Products___Technology/Technology/Security_Encrypt/Other_technology/Technology_recommend/200812/624138_30003_0.htm#_Toc227664913



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章