• 沒有找到結果。

動態之跨網路預先認證機制的實作

第四章 : 跨網路預先認證的階層式移動網路之實作

4.3 動態之跨網路預先認證機制的實作

圖 4.7 IEEE 8021.x 實作示意圖

圖 4.7 列出我們實作 IEEE 802.1x 認證機制時,各元件所架設的應用軟體,

Supplicant 角色我們採用 Open1x XSupplicant 應用軟體實作;Authenticator 角 色也就是我們的 MR,我們採用 Hostapd 應用軟體實作;Authentication Server 角色我們採用 FreeRADIUS 應用軟體實作。其中,Authenticator 角色必須先架 設 Hostap driver 應用軟體,而 IEEE 802.1x 認證機制則全都在 Hostapd 應用軟 體中實作。然而 Supplicant 與 RADIUS 伺服器之間需要透過 Authenticator 來轉 送認證機制,因此底下我們必須先對 Hostapd 應用軟體的運作方式作個簡介。

Hostapd 應用軟體將整個 IEEE 802.1x 認證機制分成兩部分,並且使用兩 個狀態機器分別作處理,這兩個部分為:Supplicant 與 Authenticator 之間的 EAPOL 認證、以及 Authenticator 與 RADIUS 伺服器之間的 RADIUS 認證。

Hostapd 應用軟體將處理 EAPOL 認證的狀態機器命名為 AUTH_PAE 狀態機 器;將處理 RADIUS 認證的狀態機器命名為 BE_AUTH 狀態機器。以下將分 別針對這兩個狀態機器的狀態轉換作簡單介紹。

圖 4.8 AUTH_PAE 狀態機器的狀態流程圖 圖 4.8 為 AUTH_PAE 狀態機器的狀態流程圖,其流程為:

1. 執行 EAPOL 認證的初始化設定,當完成初始化設定後,則由 INITIAL 狀態進入 DISCONNECTED 狀態。

2. 如果沒有無線使用者進入,則繼續停留在 DISCONNECTED 狀態。

3. 當無線使用者進入後,則進入 CONNECTING 狀態。

4. 開始認證機制時,就會由 CONNECTING 狀態進入 AUTHENTICATING 狀態。

5. 當 RADIUS 後端認證還未完成,則會繼續停留在 AUTHENTICATIN 狀態 中。

6. 當 RADIUS 後端認證完後後,則會由 ATUTHENTICATING 狀態進入 AUTHENTICATED 狀態中,此時,無線使用者就可使用該存取點的網際 網路服務。

7. 等到無線網路使用者離開後,則進入 DISCONNECTED 狀態。

圖 4.9 BE_AUTH 狀態機器的狀態流程圖 圖 4.9 為 BE_AUTH 狀態機器的狀態流程圖,其流程為:

1. 執行 RADIUS 認證的初始化設定,當完成初始化設定後,則由 INITIAL 狀態進入 IDLE 狀態。

2. 如果不需要後端 RADIUS 認證,則繼續停留在 IDLE 狀態。

3. 如果需要後端 RADIUS 認證,則由 IDLE 狀態進入 RESPONSE 狀態。

4. 當 Authenticator 傳送 RADIUS 認證請求給 RADIUS 伺服器時,則由 RESPONSE 狀態進入 REQUEST 狀態。

5. 當 Authenticator 接收到 RADIUS 的回應訊息,則由 REQUEST 狀態進入 到 RESPONSE。

6. 當 Authenticator 接收到 RADIUS 認證成功的訊息,則由 RESPONSE 狀態 進入 SUCCESS。

7. 最後完成認證成功的設定後,則進入 IDLE 狀態。

4.3.1 Pre-Authentication 步驟之實作

根據 3.4 節所提出的設計方法,我們希望在 MR 與目前存取點訊號變弱 後,開始執行跨網路預先認證機制,因此我們將 AUTH_PAE 狀態機器的狀態 改成圖 4.10 所示:

圖 4.10 AUTH_PAE 狀態機器的預先認證機制流程圖

MR 在與目前存取點認證成功之後,目前存取點內的 AUTH_PAE 狀態機 器就會停留在 AUTHENTICATED 狀態中,當 MR 偵測到存取點訊號強度減弱 時,MR 會送出 Pre-Authentication Request 訊息,而目前的存取點會收到 MR 送來的 Pre-Authentication Request 訊息,當存取點收到該訊息後,AUTH_PAE 狀態就會由 AUTHENTICATED 狀態進入 PREAUTHENTICATE 狀態。

此時,BE_AUTH 狀態機器也會收到認證請求的通知,然後根據圖 4.9 的 狀態流程圖,BE_AUTH 狀態機器就會進入 RESPONSE 狀態,接著,目前存 取點會將 Pre-Authentication Request 訊息傳送給 RADIUS 伺服器,BE_AUTH 狀態機器就會進入 REQUEST 狀態,接著 RADIUS 伺服器就會與 MR 執行一 連串的 EAP 認證機制。所以 BE_AUTH 狀態機器會再 REQUEST 狀態與 RESPONSE 狀態中交互停留,然後收到認證成功的訊息,BE_AUTH 狀態機器 就會進入 SUCCESS 狀態,最後,完成認證成功的設定後,BE_AUTH 狀態機 器就會進入到 IDLE 狀態中。

當 BE_AUTH 狀態機器執行完後端認證之後,代表 AUTH_PAE 狀態機器 的 PREAUTHENTICATE 狀態已經處理完畢,因此 AUTH_PAE 狀態機器就會 再由 PREAUTHENTICATE 狀態回到 AUTHENTICATED 狀態,並完成跨網路 預先認證機制中的 Pre-Authentication 步驟。

4.3.1.1 Pre-Authentication Request message 之封包格式

圖 4.11 Pre-Authentication Request 封包格式

Pre-Authentication Request 封包如圖 4.11 所示,我們採用 EAP 的封包格 式,並且自訂一個 EAP 的類型(Type = 14)來處理我們跨網路預先認證機制 的封包,由於 Pre-Authentication Request 訊息需要告知位置伺服器,MR 目前 所在的絕對位置,所以在 Pre-Authentication Request 訊息封包中,會有 X 軸座 標以及 Y 軸座標的資訊,以提供給位置伺服器執行尋找存取點的策略。

4.3.1.2 Pre EAP-Success message 之封包格式

根據位置伺服器所選取的候選存取點,RADIUS 伺服器就會根據位置伺服 器所給予的 IP 位址,傳送多個 Pre EAP-Success 的訊息封包給所有的候選存取 點,這些 Pre EAP-Success 封包格式如圖 4.12 所示:

圖 4.12 Pre EAP-Success 封包格式

Pre EAP-Success 訊息封包會將預先認證過的 MR MAC 位址傳送給候選的 存取點,而候選存取點會將 MR 的 MAC 位址記錄起來,並且設定一個計時器,

如果在計時器已經超過時間,而 MR 還未到達這個存取點,則表示 MR 目前不 會由這個候選的存取點來提供網際網路服務,因此存取點就會將這筆預先認證 過的 MAC 位址刪除。

4.3.2 Re-association 步驟之實作

由 3.4.2 節中的 Re-association 步驟,我們可以知道當 MR 到達已經預先認 證過的存取點時,該存取點的 AUTH_PAE 狀態機器就會由 DISCONNECT 狀 態進入 CONNECTING 狀態。接著,該存取點就會開始對 MR 進行認證,此時,

AUTH_PAE 狀態機器就會進入 AUTHENTICATING 狀態,存取點就會請求 MR 提供身分認證的資訊,而 MR 會回應自己的身分認證給存取點,由於 MR

所回應的身分就是 MR 的 MAC 位址,因此根據 4.3.1 節中,存取點會記錄已 經預先認證過的 MR MAC 位址,存取點就能知道這個 MR 已經預先認證,此 時,存取點就會回傳一個 EAP-Success 訊息,AUTH_PAE 狀態機器得知認證 成功的訊息,隨即進入 AUTHENTICATED 狀態,並且讓 MR 得以使用存取點 所提供的網際網路服務。

4.3.3 Location management 步驟之實作

MR 所發出的 Pre-Authentication Request 與 Next AR Discovery Response 的 訊息為 EAP 格式的訊息封包,這些訊息封包都必須傳至 RADIUS 伺服器中進 行處理,RADIUS 伺服器收到這些封包之後,會先解析封包中的加密部分,最 後才能取得 MR 所傳遞的 EAP 封包。因此我們就將 3.4.3 節中所設計的位置伺 服器實作於 RADIUS 伺服器中,如此一來,我們就不需要額外地解析 EAP 格 式封包的加密部分,就能直接取得 EAP 的內容部分,並進而實作我們的設計 方法。

除了實作方便之外,將位置伺服器實作於 RADIUS 伺服器中還有另一項 優點,因為我們必須將多個 EAP 認證成功的訊息,由目前存取點轉送給候選 存取點,我們必須要確保所有候選存取點都是 RADIUS 伺服器所信任的存取 點,以免有偽裝的存取點藉此取得 MR 的資訊,因此如果我們在 RADIUS 伺 服器中記錄這些候選存取點,則代表這些候選存取點都是我們所信任的存取 點,所以我們就可放心地讓這些存取點接收 EAP 認證成功的訊息。