260 likes | 376 Views
802.16 PKM 協定. PKM 協定提供憑證交換、認證、密鑰的管理 ( 產生、傳遞、生命週期參數等 ) , MS/SS 透過 PKM 協定通過 BS 的授權,同時從 BS 取得密鑰和加密相關資料。 MS/SS 和 BS 也利用 PKM 協定進行週期性重新授權以及密鑰更新的動作。 PKM 協定包含 授權訊息交換:授權狀態機 (Authorization state machine) 金鑰訊息交換: TEK 狀態機 (TEK state machine) 授權狀態機與 TEK 狀態機之間有主從關係
E N D
802.16 PKM協定 • PKM協定提供憑證交換、認證、密鑰的管理(產生、傳遞、生命週期參數等),MS/SS透過PKM協定通過BS的授權,同時從BS取得密鑰和加密相關資料。MS/SS和BS也利用PKM協定進行週期性重新授權以及密鑰更新的動作。 • PKM協定包含 授權訊息交換:授權狀態機(Authorization state machine) 金鑰訊息交換:TEK狀態機(TEKstate machine) • 授權狀態機與TEK狀態機之間有主從關係 TEK狀態機由授權狀態機來啟動。在運作上一(授權狀態機)對多(TEK狀態機),必須經過授權成功後才會進行TEK金鑰,所以當授權狀態機更換AK時,即使TEK狀態機的密鑰尚未過期,也須進行更換。
802.16 PKM協定 • 802.16d安全認證機制命名為PKMv1,其支援RSA協定。只提供設備單向認證。即由基地台(BS)檢驗設備(SS),設備無法檢驗基地台,這是安全上的漏洞,在安全上會出現連上假基地台的問題。 • 802.16e安全認證機制命名為PKMv2,其支援RSA協定以及EAP協定。提供基地台(BS)和設備(MS)相互認證(Mutual Authenication)功能。
802.16 PKM協定 PKMv1提供 • 設備單向認證,即由基地台(BS)檢驗設備(SS)。 設備無法檢驗基地台,這是安全上的漏洞,在安全上會出現連上假基地台的問題。 PKMv2提供 • Single EAP認證設備認證或使用者認證 • Double EAP認證 設備和使用者同時認證 • 結合EAP協定,提供多種EAP認證方法 如:EAP-TLS、EAP-TTLS、EAP-SIM、EAP-AKA…..等 • 由於行動性的問題,加入認證金鑰轉移(AK-transfer) 處理基地台換手的問題
PKM RSA/EAP 認證協定 PKMv1支援RSA協定,而PKMv2支援RSA協定及EAP協定 PKM RSA/EAP 認證協定 • PKM RSA認證協定使用X.509數位憑證來做認證。X.509數位憑證內含用戶台的公鑰(Public Key)以及用戶台的MAC位址(憑證持有者的身分)。 • 使用RSA認證的用戶台持有兩張憑證, 用戶台製造商的憑證 用戶台本身的憑證。由製造商出廠時設定,以製造商的私鑰簽署。用戶台憑證產生時,會配發一組公鑰(載於數位憑證)與私鑰(存放用戶台)
PKM RSA/EAP 認證協定 PKM EAP 認證協定 • PKM EAP利用IETF RFC 3748(ExtensibleAuthentication Protocol )所定義的EAP認證協定來提供用戶端(使用者和設備)的認證 • 802.16e並沒有限制EAP方法以及憑證型態。 營運者可以自己選擇不同的EAP方法和憑證型態。若EAP方法選擇EAP-TLS,則憑證型態可以使用X.509數位憑證。
PKMv1 協定 • 金鑰功能介紹: 1. AK:用來產生KEK和HMAC-digest 2. KEK(金鑰加密金鑰):用來加密BS傳送給SS的TEK金鑰 以避免TEK金鑰在傳輸過程中被惡意擷取 3. HMAC-digest(訊息驗證金鑰):經由SHA演算法對整個訊息封包做計算。 如此BS與SS可確認連線兩端是否擁有正確的AK值 =>是否為合法的SS或BS
PKMv1 程序 PKMv1授權訊息交換的程序如下: • 1. SS傳送認證訊息給BS => 驗證SS的身分 • 2. SS傳送授權請求訊息給BS =>BS取得的SS公鑰 • 3. 憑證驗證成功後,BS產生AK,並用SS公鑰將AK加密後,回傳SS授權回覆封包 • 4. SS收到授權回復後,利用本身的私鑰解密取得AK,並且對每個SAID啟動一個TEK狀態機進行金鑰訊息交換。 目的在為每一個連線產生個別的TEK加密金鑰並且定期更新TEK金鑰 • 5. BS確認金鑰請求封包無誤後,BS產生兩把TEK金鑰(新鑰和舊鑰,而新的TEK比舊的TEK序號大1。兩把TEK金鑰的生命週期有重疊的部分),用KEK將兩把TEK加密後,連同AK序號、SAID、TEK生命週期、序號、提供DES CBC mode加密使用之64bits CBC-IV值,利用金鑰回覆(Key Reply)封包回覆給SS
授權回覆封包內容包括 a.加密後AK、AK生命週期及序號 b.同意SS採用之加密認證技術(SAID) c.PKM相關設定 (主要為認證階段的Timer與更新Key階段等待與逾時時間參數設定),可用來確保在認證與換Key的過程中,兩端等待時間週期的一致 P.S. 通過授權後,SS的授權狀態機定期向BS要求重新授權以便在AK生命週期結束前更新AK。 同時,SS會為每個SAID啟動各別的TEK狀態機。BS會提供兩把TEK密鑰給SS,而TEK狀態機將定期向BS更新TEK密鑰。
AK管理 • AK金鑰較不常更換。其生命週期最短為一天,最長為七十天,而預設值則為七天。 • 為避免在重新授權期間造成服務中斷,SS須在AK的生命週期結束前的期限(Grace Time)內,向BS提出授權申請。 以便在舊的AK過期前SS能獲得新的AK • 在過渡期間內,BS可根據SS送來的KeyRequest訊息內的AK序號判斷SS使用哪一把AK來計算HMAC-digest。 情境1:SS使用舊AK來計算Key Request訊息內的HMAC-digest =>BS也會使用舊的AK來驗證計算Key Request訊息。 同時利用舊的AK來產生KEK以及計算KEY Reply訊息內的HMAC-digest。 • 情境2:SS使用新AK來計算Key Request訊息內的HMAC-digest =>BS知道SS已經取得新的AK,BS也會使用新的AK來驗證計算Key Request訊息。同時利用新的AK來產生KEK以及計算KEYReply訊息內的HMAC-digest。
TEK管理 • TEK因直接對資料加密,為避免被破解,須經常更換。其生命週期設定最短為30分鐘,最長為七天,預設值則為12小時。 • BS選擇TEK的原則如下: 1. BS可以使用新舊兩把TEK密鑰來解密資料。 根據GenericMAC Header內的encryption key sequence來判斷SS用哪把TEK加密。 2. BS使用兩把有效TEK金鑰中的舊TEK來加密資料。 • SS選擇TEK的原則如下: 1. SS可以使用新舊兩把TEK密鑰來解密資料 根據GenericMAC Header內的encryption key sequence來判斷BS用哪把TEK加密。 2. SS使用兩把有效TEK金鑰中的新TEK來加密資料。
備註 • SAID: 一個在SS和BS之間共同使用的ID,用來識別兩者之間的安全關係 • 對於每個SAID,BS必須維持兩把有效的TEK金鑰,新TEK比舊TEK的序號多1,而兩把TEK金鑰的生命週期有重疊的部分 • PKMv1協定運作時,用來解開基地台傳來的授權金鑰(Authorization Key;AK) • PKMv2協定運作時,用來解開基地台傳來的授權金鑰 pre-PAK(Primary Authorization Key)
PKMv2 協定 • PMKv2的認證機制採用基於RSA以及EAP兩種認證方法,PKMv1只定義BS對SS設備做認證,PKMv2協定則略作補強,PKMv2 RSA定義了SS和BS相互認證。 • 802.16e加進了移動與漫遊功能,因此除了原先對裝置(Device)的認證外,亦須增加對使用者(Subscriber)的認證,PKMv2 EAP結合AAA提供了一個更為彈性的架構,可對裝置做認證,亦可對使用者做認證,或對兩者同時做認證,以適用於不同的商業模式需求。 • PKMv2協定同樣由PKMv2授權狀態機與TEK狀態機來控制授權訊息交換與金鑰訊息交換兩部分
基於RSA雙向授權認證機制 SS和BS的雙向認證模式有兩種,一種是只進行雙向認證,另一種是進行雙向認證後再進行EAP認證。 相互認證是由PKMv2授權狀態機所控制,程序如下: • 1. BS驗證SS的身分 • 2. SS驗證BS的身分 • 3. BS產生AK,並將AK傳送給SS,AK將用來產生金鑰加密金鑰(Key Encryption Key;KEK)和訊息驗證金鑰(HMAC-digest) • 4. BS提供SA和SAID給SS。
RSA簽章流程 • SigSS(SigBS):用SS(BS)私鑰簽署RSA簽章,驗證訊息完整性
基於RSA雙向授權認證機制流程 1. SS傳送認證訊息給BS(SS製造商的X.509憑證) 2. SS傳送PKMv2 RSA-Request給BS,內容包含: • SS產生的亂數(MS_Random) • 製造商發給SS的X.509憑證,內含SS的公鑰 • Primary SAID 3. BS收到PKMv2 RSA-Request後 • 驗證SS的憑證 • 驗證PKMv2 RSA-Request封包的完整性(SigSS) • 回覆PKMv2 RSA-Reply給SS,內容包含: • MS_Random:此數值為PKMv2 RSA-Request內的MS_Random。 • BS產生的亂數(BS_Random) • 利用SS公鑰加密的pre-PAK(Primary Authorization Key) ,PAK生命週期和PAK序號。pre-PAK將用來產生AK、KEK、MAC訊息認証金鑰以及EIK。 • BS的X.509憑證,內含BS的公鑰。 • SigBS 4. SS收到PKMv2 RSA-Reply後 • 驗證BS的憑證 • 驗證PKMv2 RSA-Reply封包的完整性(SigBS) • BS進行3方SA-TEK交握 • 確認彼此擁有相同的AK以及協商加密方法 • 在進行3方SA-TEK交握前,SS和BS皆已利用pre-PAK得到AK、KEK、HMAC金鑰或CMAC金鑰 5. 進行TEK金鑰的請求
基於EAP認證機制 • 在EAP的架構下,MS為請求者(Supplicant),BS只扮演中繼 • 者的角色,將EAP訊息轉送給認證者(Authenticator) • 認證者為AAA client,負責將EAP封包利用RADIUS協定轉送 • 給AAA伺服器 • EAP訊息交換的動作只在MS和AAA伺服器內交換 • IEEE只定義MS和BS之間的PKM協定,BS和Authenticator以 • 及Authenticator和AAA伺服器之間的議題由WiMAX論壇定義 • 當只須對使用者做認證或只須對裝置做認證時,須使用標準 • 的EAP,即單層EAP;但當兩者都要做認證,且分別用不同 • 的認證伺服器時(如兩個認證伺服器分別位於不同的CSN), • 就要用到雙層EAP(Double EAP),即Authenticated-EAPafter- • EAP機制
在EAP的架構下,MS為請求者(Supplicant),BS只扮演中繼者的角色,將EAP訊息轉送給認證者(Authenticator)在EAP的架構下,MS為請求者(Supplicant),BS只扮演中繼者的角色,將EAP訊息轉送給認證者(Authenticator) • 認證者為AAA client,負責將EAP封包利用RADIUS協定轉送給AAA伺服器 • EAP訊息交換的動作只在MS和AAA伺服器內交換 • IEEE只定義MS和BS之間的PKM協定,BS和Authenticator以及Authenticator和AAA伺服器之間的議題由WiMAX論壇定義 • 當只須對使用者做認證或只須對裝置做認證時,須使用標準的EAP,即單層EAP;但當兩者都要做認證,且分別用不同的認證伺服器時(如兩個認證伺服器分別位於不同的CSN),就要用到雙層EAP(Double EAP),即Authenticated-EAPafter-EAP機制
雙層EAP認證流程 • 1. MS與BS間透過SBC請求與回覆來協商使用PKMv1或PKMv2、認證政 • 策、MAC模式以及PKMv2中是使用單層EAP或雙層EAP。 • 2. MS發出PKMv2 EAP start訊息,此訊息內沒有任何參數,BS收到後進 • 入EAP交換程序。 • 3. MS和AAA伺服器進行第一次EAP認證,此時BS為中繼角色,MS和BS • 的EAP訊息利用放在PKMv2 EAP Transfer內,此時由於尚未獲得AK, • 所以PKMv2 EAP Transfer沒有CMAC digest的保護。
雙層EAP認證流程 • 4. 若步驟3 EAP認證成功,BS將EAP-Success訊息透過PKMv2 EAPComplete內送給MS,同時等待MS送來PKMv2 Authenticated EAP • start訊息。 • 5. 當MS收到PKMv2 EAP Complete時,MS和AAA伺服器各自從EAP交換的訊息中,產出相同的MSK,做為將來產出其他金鑰的基礎。 • 由於之前認證者都只扮演中繼者的角色,並未檢查EAP封包的內容,故須依賴AAA伺服器將產出的MSK傳送給認證者(BS)。 • MS與認證者再各自由MSK來產生PMK和EAP Integrity Key(EIK)。
雙層EAP認證流程 • 6. MS收到PKMv2 EAP Complete後,發出PKMv2 Authenticated EAP • start訊息進行第二次EAP認證。 • 此訊息由CMAC digest提供完整性確認 • CMAC_KEY_*由第一次EAP認證過程中得到的EIK提供 • BS收到PKMv2 Authenticated EAP start後利用CMAC_KEY_*進行訊息完整性確認,確認成功後BS啟動第二次EAP認證。
雙層EAP認證流程 • 7. MS和AAA伺服器進行第二次EAP認證,BS為中繼角色,MS和BS的EAP訊息利用放在PKMv2 Authenticated EAP Transfer內,由CMAC提供訊息完整性的保護。 • 8. 若步驟7 第二次EAP認證成功,BS將EAP-Success訊息透過PKMv2 Authenticated EAP Complete內送給MS,結束第二次EAP認證。 • 9. 第二次EAP認證成功後,MS和AAA伺服器各自從第二次EAP交換的訊息中,產出相同的第二把MSK2,AAA伺服器將產出的MSK2傳送給認證者(BS),MS和認證者(BS)再各自由MSK2來產生成第二把對主金鑰PMK2。MS和認證者(BS)利用PMK和PMK2各自產生相同的AK。
雙層EAP認證流程 • 10. ~12.MS和BS進行3方SA-TEK交握,確認彼此擁有相同的AK以及協商加密方法。 • 13. ~14.MS和BS進行TEK金鑰的請求。 • 認證成功後,MS和BS會根據PMK和PMK2的生命週期進行重新認證的程序。重新認證的程序與初始認證程序一樣,不同的是重新認證程序的第一次EAP認證的PKMv2封包會利用前一個雙層EAP認證得到的AK來提供訊息完整性的保護