3. 底層行為3.1. 底層需求
EAP要求底層要有如下功能:
[1]不可靠傳輸。在EAP中,認證端會重發那些沒有應答的請求,這樣EAP就不要求底層是可靠的了。由於EAP可以規定自己的重發行為,當EAP運行在可靠的底層上時,可以讓底層和EAP層都有重發。注意,EAP成功和失敗包是不可以重發的。如果沒有可靠的底層,並且出錯率較高時,資料包就會丟失,最後會逾時。這就要求增加對EAP成功和失敗包的可靠性,就如4.2節所描述的。
[2]底層出錯檢測。如果底層不可靠,就得依賴底層出錯檢測了。有些EAP方法可能沒有MIC,即使有,也可能不會計算所有的資料項目,如編碼、標識、長度或者類型項。因此,如果沒有底層出錯檢測,錯誤資訊就可能會溜進EAP層或者EAP方法層,引起認證失敗。
例如,EAPTLS只會對類型資料計算MIC,將MIC有效失敗作為致命錯誤。沒有底層出錯檢測,諸如此類的方法都不能得到可靠執行。
[3]底層安全性。EAP沒有要求底層提供像每包機密性、認證、完整性、重播保護等安全服務。然而,這些安全服務也是可以實現的,EAP方法支援的密鑰推導可以用於提供動態密鑰材料。這樣就可以將EAP認證與後續的資料繫結在一起,起到防止資料修改、欺騙、和重播。詳細請看7.1節。
[4]最小MTU。底層可以支援最小1020個位元組的EAPMTU。
EAP不支援MTU路徑搜尋、資料分裂和重組,即使通過本文提到的方法(如標識、通知、Nak應答、MD5-挑戰、單次密碼、通用令牌卡、擴充的Nak應答等類型)也不行。
一般,EAP對等端會從來自底層的EAPMTU提取資訊,並將EAP幀大小設為一個合適的值。當認證端運行在直通模式下時,證明伺服器不會直接控制EAPMTU,因而依賴認證端向其提供資訊,比如通過封裝的MTU屬性,在2.4節中有描述。
有些方法如EAP-TLS支援資料分裂和重組,EAP方法剛開始是設計成可配合PPP使用,PPP至少有1500位元組MTU用於控制幀,所以EAP方法沒支援分裂和重組。
在沒有其他資訊的情況下,EAP方法有一個至少1020位元組的EAPMTU。如果EAP方法的負重大於最小EAPMTU,它們就應該支援分裂和重組。
EAP是一個鎖步協議,也就是說在處理分裂和重組時效能較弱。因此,如果底層支援分裂和重組的話,則將分裂和重組的任務放在底層比放在EAP層好。這個可通過向EAP提供一個大的EAPMTU來實現,由層處理資料分裂和重組。
[5]可能性複本。如果底層是可靠的,將會向EAP層提供一個非複製流資料包。雖然很希望底層能提供非複製流資料包,但這不是一個硬性要求。標識項可向對等端和認證端提供檢測複本的能力。
[6]排序把關。EAP不要求標識單調遞增,因而依賴於底層的排序把關。EAP原先設計在PPP上跑,第1節中有一個排序的需求:
“點對點通訊協定 (PPP)”是設計用於在兩個對等端間傳輸資料包的簡單鏈路。這些鏈路支援全雙工系統同時雙方向的操作。“
底層必須以某個優先順序保持資料來源和目標之間的排序。
重排序一般引起的原因是EAP認證失敗,導使重跑EAP認證。在某種環境下,重排序經常發生,可以認為EAP認證也經常失敗。建議EAP只在提供排序把關的底層上運行;不建議在裸IP或UDP傳輸上運行。封裝有RADIUS的EAP滿足排序需求,因為RADIUS是一個鎖步協議,該協議是按順序遞送資料包的。
3.2 EAP在PPP中的使用
為了在一個點對點鏈路上建立通訊,在鏈路建立期間,PPP鏈路的第一個端點先發LCP包去配置資料鏈路。鏈路建成後,在進入網路層協義階段前,PPP提供一個可選的認證階段。
預設情況下,認證不是強制性的。如果鏈路要求認證,必須在鏈路建立階段指定一個認證協議配置選項。
如果對等端的身份在認證階段就已建立,伺服器可以根據該身份從選項裡選擇接下來的網路層協商。
如果與PPP配合,EAP就不用在PPP鏈路控制階段選擇一個特定的認證機制了。這樣就允許認證端在沒選用特定認證機制前請求更多的資訊。也允許使用後端伺服器,後端伺服器可以在PPP認證端僅通過認證交換時實現多種認證機制。PPP鏈路建立和認證階段以及認證協議配置選項在點對點通訊協定 (PPP)(PPP)裡有定義。
3.2.1. PPP配置選項格式
以下是PPP認證協議配置選的簡要介紹。資料轉送從左邊到右邊。
PPP資料連結層一幀資料中的資訊項僅包含一個EAP資料包,該包協議項的16進位值為C227。
Type
3
Length
4
AuthenticationProtocol
C227(16進位)表示可擴充認證協議EAP
3.3. EAP在IEEE802中的使用
IEEE802中的EAP封裝在IEEE-802.1X中有描述。IEEE802
EAP封裝包不涉及PPP,IEEE802.1X也不支援鏈路或者網路層協商。因此,在IEEE802.1X不支援協商非EAP認證機制,例如PAP和CHAP。
3.4. 底層指示
底層指示的可靠性和安全性是依賴於底層的。由於EAP是不依賴於媒介,底層安全性與否對處理EAP資訊影響不大。
為改進可靠性,如果對等端收到一個底層成功的指示(7.2節中有定義),即使一個成功包丟失了,也要裝作已收到一個成功包。其中包括有選擇忽略某些情況下(4.2節有描述)的成功。
在7.12中的安全性考慮有討論ppp、ieee802有線網路、IEEE802.11無線區域網路中的一些可靠性和安全性。
EAP認證完成後,對等端一般會通過認證端發送和接收資料。一般希望,傳輸資料的和完成認證的是同一個實體。為了實現該功能,底層必須能支援每包完整性、認證、複播保護和將每包服務與EAP認證時產生的密鑰綁在一起。否則,後面的資料轉送可能被修改、欺騙或者重播。
當底層加密所用的密鑰材料是由EAP提供時,密鑰協商和密鑰啟用就全都由底層控制。在PPP協裡,密鑰是與ECP協商的,所以,在完成ECP之前,不可能使用來自EAP認證的密鑰。因此,PPP密鑰保護不了初期的EAP交換,但可以保護EAP重認證。
IEEE802媒介中,初始化的密鑰啟用同樣會在EAP認證完成後發生。因此,底層保護不了初始化的的EAP交換,但可以保護重認證和預認證。