• 沒有找到結果。

無線網路環境下無接縫換手軟體之設計

N/A
N/A
Protected

Academic year: 2021

Share "無線網路環境下無接縫換手軟體之設計"

Copied!
6
0
0

加載中.... (立即查看全文)

全文

(1)

無線網路環境下無接縫換手軟體之設計

黃一軒

1

曾偉縉

2

王思惟

3

楊正仁

4

元智大學資訊工程學系

320 中壢市遠東路 135 號

{ihhuang

1

,czyang

4

}@syslab.cse.yzu.edu.tw

{s922344

2

,s922351

3

}@mail.yzu.edu.tw

摘要

Client/server 加密通訊軟體的應用日漸普及, 透過加密傳輸的保護,使用者的資料可以免於外洩 的風險。不過隨著無線網路的普及,加密通訊軟體 的設計必須加入無接縫換手機制,這樣才能保證使 用者在漫遊時仍然能夠不受干擾的使用加密通訊 軟體。在本論文中,我們提出一個整合現行加密通 訊軟體和無接縫換手機制的設計。此外,傳統之 SSH 通訊軟體常會因無線網路之換手情況而斷線,為了 驗證我們的設計,我們實際修改了 OpenSSH 伺服 器和 Putty SSH 客戶端連線軟體。實驗結果顯示我 們提出的設計確實可以保證通訊軟體的正常運作 並且擁有很短的換手延遲。 關鍵詞:換手、無線網路、加密、通訊軟體、軟體 設計。

Abstract

The applications of client/server encryption Internet software have received huge attention recently. Under the protection of encryption techniques, user data will not be stolen by malicious users. However, with the popularity of wireless networking, current encryption Internet software must add seamless handoff mechanism to guarantee normal operation in the wireless networking environment. In this paper, we propose a new software design to integrate current encryption Internet software and the seamless handoff mechanism. Besides, since the connection of traditional SSH software is often corrupted due to handoff in wireless networks, we revise the OpenSSH server and the Putty SSH client software to prove our proposal. The experimental result shows that our design is effective and costs very short handoff latencies.

Keywords: seamless handoff, wireless network, encryption, network software, software design.

1. 前言

近 年 來 加 密 傳 輸 的 概 念 被 廣 泛 加 入 於 client/server 通訊軟體的設計中。在加密傳輸機制的 保護下,使用者帳戶和傳輸的資料不會被惡意的使 用者取得。例如,電子郵件系統是日常生活中重要 的一項網路服務。不過大部分電子郵件系統的傳輸 方式都是遵循 POP3 [1]網路通訊協定,而利用 POP3 網路通訊協定傳輸的資料是以明文(plaintext)的 形式在網路上傳輸。一旦惡意的使用者攔截了 POP3 網路封包,他可以輕易的取得電子郵件使用者的帳 號密碼以及郵件的內容。為了保護使用者的資料, 像 Gmail [2]等的電子郵件服務便開始提供基於 POP3s [3]網路通訊協定的傳輸機制。透過 POP3s 傳輸機制的保護,即使惡意使用者成功擷取傳輸的 封包也無法解讀封包中記載的內容。 不幸的是,雖然 client/server 加密通訊軟體的 設計已經相當成熟,但是隨著無線網路環境的逐漸 普及,client/server 加密通訊軟體的設計在無線網路 的環境中受到相當大的考驗。這是因為在無線網路 環境下,因為網路頻寬較小且不穩定,導致 session 的時間容易變得很長。在 session 運作的期間,使用 者可能會不斷地移動,並且在不同的網路間漫遊。 由於使用者不斷地改變所在的位置,傳輸到一半的 session 很容易因為換手情況而中斷。 為 了 讓 使 用 者 在 無 線 網 路 漫 遊 時 使 用 client/server 加密通訊軟體不受到影響,在現行的 client/server 加密通訊軟體設計中必須加入無接縫 換手(seamless handoff)機制。無接縫換手指的是 當使用者因為網路漫遊而導致網路位址變更時,無 接縫換手機制必須保證 client/server 加密通訊軟體 的網路連結不會中斷。此外,在加入無接縫換手機 制時應該從修改軟體本身來著手。如果不限制只能 從修改軟體本身著手,也可以在網路中置換路由器 等硬體,或是設置新的代理人節點來協助達成無接 縫換手。但是這麼一來將會花費大量的成本在改變 既有網路基礎建設上,所要付出的時間、金錢、與 人力並不符合經濟效益。 在本論文中我們提出一個加入無接縫換手機 制的 client/server 加密通訊軟體設計。為了避免改變 既有網路基礎建設的成本,所提出的無接縫換手機 制只修改軟體本身,而不需要網路硬體的支援。我 們的想法是,若將 client 端定義為 MH(mobile host),而 server 端定義為 CN(corresponding node), 當 MH 從一個無線網路漫遊到另一個無線網路時, MH 主動發送一個重新連線的訊息給 CN,而在 MN 離開原先網路到恢復連線的期間,原先運作到一半

(2)

TCP/UDP 加解密模組 加解密模組 AAA模組 Session管理模組 核心處理模組 Session管理模組 資料處理模組 Server Client 圖 1:現行 client/server 加密通訊軟體模型。 的 session 則暫停運作,並且保存在 CN 上。當 CN 收到來自 MN 的重新連線訊息後,經過適當的驗 證,CN 可以恢復暫停運作的 session,並且讓 session 傳輸資料到 MN 的新網路位址。這些程序則由修改 後的 client 端和 server 端加密通訊軟體來達成。另 一方面,由於加密通訊軟體中常常利用網路位址來 定義加解密的金鑰,因此,金鑰有可能會因為使用 者變更網路位址而變動。此時,金鑰的替換和管理 也必須被列入考慮。在提出的設計中,MN 和 CN 會把漫遊前的金鑰儲存起來,並且利用這個金鑰來 驗證發出接續連線請求的使用者。為了減少產生新 金鑰的額外花費,在我們的設計中,如果使用者是 因為漫遊而導致網路位址變更,系統不會重新產生 金鑰。在本論文中我們同時以 SSH [4]為範例結合 所提出的加密通訊軟體設計,並且說明實作心得和 量測的效能數據。 本論文的第二節將回顧現行 client/server 加密 通訊軟體的設計方法。第三節敘述如何整合現行 client/server 加密通訊軟體設計、無接縫換手機制和 金鑰管理機制。第四節我們以 mobile SSH 為實例討 論 client/server 加密通訊軟體如何在無線網路環境 下運作。最後總結本文並探討未來研究方向。

2. 現行

client/server

加密通訊軟體之設計

設計 client/server 加密通訊軟體的相關技術發 展至今已經相當成熟,根據我們的研究,client/server 加密通訊軟體可以根據功能的不同而分割成許多 模組,我們將各個模組的功能簡述如下。 圖 1 是現行 client/server 加密通訊軟體模型。 首先,在 client/server 加密通訊軟體模型中,我們通 常可以區分為 client 端和 server 端。Client 端軟體的 功能比較簡單,主要是將使用者的請求透過網路發 送給 server 端的軟體處理以及將處理好的數據呈現 給使用者。而 server 端的功能主要是處理來自 client 端的請求。例如,以 POP3s 電子郵件伺服器為例, client 端的軟體負責將收信的請求發送給 server,當 server 接收到請求後,它必須到信件暫存區中找出 相對應的電子郵件,並且將電子郵件傳送給 client。 最後,client 端的軟體再負責將電子郵件呈現給使 用者。 如圖 1 所示,目前主流的 client/server 加密通 訊軟體是建立在 TCP/UDP 通訊協定之上。換句話 說,目前主流的加密通訊軟體所傳輸的資料都是交 由 TCP/UDP 通訊協定的機制來管理,包括與 IP 層、底層的網路硬體的溝通。在 TCP/UDP 之上才 是屬於通訊軟體的部分。 在 加 密 通 訊 軟 體 最 底 層 的 模 組 是 加 解 密 模 組。加密通訊軟體傳輸的資料必須經過加密處理才 能傳送,因為 TCP/UDP 本身並不具備加密功能, 這個功能由軟體內的加解密模組負責。另一方面, 當加密通訊軟體得到加密的訊息後也會將資料交 給加解密模組進行解譯。 在 server 端部分,在加解密模組之上的是 AAA (authenticating、authorizing、accounting)模組。 通常每一個使用者都會擁有一組帳號密碼,用以識 別身份。這一組帳號密碼不僅僅是允許存取服務的 取可證,它同時也可以用來區分哪些功能是可以存 取的,以及定義存取的權限。同時,當使用者開始 存取服務以後,為了防止系統遭到攻擊,系統還必 須紀錄使用者執行的每一個動作。當使用者執行了 違規的行為,系統必須紀錄使用者的行為並且通知 系統管理員。這三個功能都由 AAA 模組負責。 接著是 session 管理模組。Session 指的是從使 用者登入服務以後直到登離服務的網路連結。每當 使用者登入服務就會開啟一個 session,當使用者離 開時 session 也隨之結束。如果使用者再次登入系統 則會開啟一個新的 session。在 session 管理模組中, 它負責管理使用者的暫存檔案、活動記錄和負責管 理同步控制、流量控制等機制。 在 server 端,最上層的模組是核心的處理模 組。這個模組視服務的不同而提供各種的功能。譬 如電子郵件服務提供分信服務,檔案傳輸服務提供 開啟檔案、讀取檔案和寫入檔案的服務。相對地,

(3)

TCP/UDP 加解密模組 加解密模組 AAA模組 Session管理模組 核心處理模組 Session管理模組 資料處理模組 Server Client 無接縫換手模組 無接縫換手模組 圖 2:無線網路下之 client/server 加密通訊軟體模型。 在 client 端,最上層的模組負責將接收到的資料呈 現給使用者。 在設計加密通訊軟體時,選擇合適的加解密演 算法是很重要的。一個好的加解密演算法可以提供 較好的安全性、較佳的加解密速度或是較省電的電 力消耗。目前在加密通訊軟體中使用的加解密演算 法可以分為兩類。第一類的加密演算法是對稱式加 密演算法。在對稱式加密演算法中,client 和 server 都擁有同一把 secret key,加解密模組以這一把 secret key 來加密和還原傳輸的資料。不過對稱式加 密演算法中使用的 secret key 必須在加密傳輸前就 讓 client 和 server 都擁有同一把 secret key,因此如 何有效率地散播 secret key 是一大挑戰。第二類的 加解密演算法是非對稱式加密演算法。這一類的演 算法可以用公開金鑰機制 [5] 做為代表,server 端 事先計算出一個 public key,並放在網路上供 client 下載。當 client 要送出訊息前,client 會先到網路上 下載 public key,並且即時計算出一個 session key, 並以 public key 加密這一把 session key 再傳送給 server。當 server 收到加密後的 session key,server 可以用相對應的 private key 來還原加密的資料並取 得 client 的 session key。接著,server 就用這一把 session key 來和 client 進行加密傳輸。目前大多數 的加密通訊軟體都是選擇這一類的加密演算法。

3. 無線網路環境下

client/server

加密通訊軟

體之設計

如前所述,雖然加密通訊軟體的設計已經相當 完善,但是一旦將操作環境轉移到無線網路後,因 為 session 可能會變得很長以及受到網路不穩定的 影響,加密通訊軟體的 session 很容易發生錯誤。因 此,如圖 2 所示,我們在現行的加密通訊軟體中加 入無接縫換手機制,使得加密通訊軟體不會因為使 用者在無線網路間漫遊而無法正常運作。 為了避免更動到底層的網路基礎設施,我們提 出的無接縫換手機制只修改軟體本身。我們的作法 是加入一個無接縫換手模組。當使用者離開一個網 路而進入另一個網路時,無接縫換手模組負責發送 一個重新連線的訊息給伺服器,而在網路中斷的這 一段時間,伺服器不要馬上將 session 中斷而是將資 料暫存在記憶體中,當伺服器端收到使用者發送的 重新連線訊息後再將暫存的 session 導向到使用者 新的網路位置。 為了提供無接縫換手的功能,有以下三個議題 必須考慮。首先,當 MH 試圖接續 session 時,為 了避免惡性使用者假冒 MN 竊取資料,CN 必須先 確認發出接續請求的 MN 是原先的 MN。我們的作 法是,因為只有原先的 MN 知道 session key,因此 MN 用 public key 加密 session key 傳送給 CN,而 CN 可以比對暫停的 session 所擁有的 session key, 如果 session key 相同則恢復 session。

其次,當 MH 試圖接續 session 時,由於有部 分封包可能已經被 CN 傳送到舊的網路位址,此時 MH 必須先和 CN 同步,將送出的封包重新傳送到 MH 的新位址。在我們的設計中,為了達成同步的 功能,CN 上的封包必須加以編號。每次 CN 送出 封包後資料都先不刪除並且暫存在緩衝區中,當接 續時,MN 會送出最後收到的封包的編號給 CN, 此時 CN 會接著這個號碼重傳接序的封包。值得注 意的是,萬一在 MN 最後的封包前還有一些封包也 沒有收到,MN 同樣必須送出 retransmit 的請求給 CN。 最後,由於加密演算法中使用的 session key 常 常是根據網路位址來計算得出的,所以當 MN 切換 網路位址後 session key 可能會隨之改變。不過因為 session key 本來就是只有 CN 和 MN 雙方知道,因 此在我們的設計中,MN 和 CN 都會將 session key 存在各自的記憶體中,即使 MN 切換網路位址也不 重新計算 session key。當 MN 請求接續 session 時, MN 會以儲存的 session key 作為原本 MN 的身份證 明,並且以此 session key 繼續加密 session 的資料。

4. 實例探討:Mobile SSH

(4)

OpenSSH Server Access Point 1 Access Point 2

Mobile Host

Establish a new SSH session (addrA)

Key exchangement and user authentication

Data Transfering The host roams

from Network A

to Network B Session corrupted

Start a whole new session 圖 3:使用者漫遊後 session 中斷,MN 只能重新開啟一個新的 session。 SSH(secure shell)是一種廣泛被使用且具有 安全性的網路應用。使用者可以透過具有安全性的 SSH 通道,利用遠端的方式登入 server。然而,SSH 的通訊協定缺乏了機動性,一個 SSH session 很容 易因為進行無線網路的漫遊被迫中斷。舉例來說, 當使用者在校園或是街道上進行漫遊時,可能會切 換隸屬不同子網路的基地台。當進行切換時,SSH 的連線會因此中斷,在遠端的 shell 也會被迫結束。 如圖 3 所示,當 MN 從網路 A 漫遊到網路 B 後,原 先的 session 會中斷。此時,MN 只能請求重新建立 一個全新的 session。為了解決因為進行漫遊時 session 連續性的問題,SSH 通訊軟體需要加入無接 縫換手機制。 為了驗證我們提出的加密通訊軟體設計,我們 讓 MH 透過加密的重連方式直接提供新的 IP 資訊 給遠端的 server,當漫遊導致 SSH session 中斷時, SSH 的 MH 會送出一個重連的要求。一旦 SSH server 收到重連的請求,它會更新原先 session 的 IP 資訊,進而重建一個安全的連線。 我們的 mobile SSH 通訊協定有兩個主要的特 色。第一,因為是軟體層級的換手機制,所以因為 換手而造成的延遲會縮短。當 MN 取得新的 IP 資 訊後,會直接傳送一個重連的請求給 server,而不 需要經過任何 agent 的轉送。第二,我們所提出的 通訊協定可以充分支援舊有的 SSH。因為我們在重 連的要求當中加入了一個 flag,可以用來進行區 別,因此具有向下相容的特性。 圖 4 顯示我們的 mobile SSH 通訊協定。一開 始,MN 會結合網路位址 addrA,並且與 server 建立 一個 SSH session。當 MN 漫遊到無線網路 B,MN 會釋放 addrA,並重新結合 addrB。同時,因為 MN 的網路位址改變,所以 SSH server 會暫停正在執行 的 shell。換句話說,MN 會不斷的監視網路位址是 否改變。一旦與新的網路位址結合,MN 會使用新 的 IP 送出一個重連的請求給 SSH server。SSH server 就會接收重連的請求。為了要能夠與正常建立 SSH session 的連線請求做區別,我們使用了一個額外的 flag,加入到 SSH 的封包當中。 當 SSH server 收到重連的請求之後,首先會先 進行認證,確保是否為原先的 MN,在重連的請求 當中附帶原先 SSH 的 session key,用來與儲存在 SSH server 的 session key 做認證比對。 在認證通過 之後,在 SSH daemon 的 process 會透過 message passing 的方式將新的 socket descriptor 傳給原先被 暫停的 shell。而原先被暫停的 shell 就會被叫醒, 並且將 socket descriptor 更新為新的內容,同時,被 叫醒的 shell 會根據之前重送的請求當中包含的同 步參數,將遺失的封包重送。最後,SSH session 就 會重新連上。 4.1 相關設計議題 在此設計當中,包含了五個相關議題如下: 1. 認證。因為 daemon process 負責辨認 MN 的 身份,所以 daemon process 必須存有每一個 session key。因此當 SSH session 建立之後,daemon process 將會把 session key 存進一個 table 中。除此之外, 因為 session key 必須在 daemon process 以及 shell 之間共享,因此 table 的實作就必須使用 shared memory。

2. 同步。當 MN 漫遊至一個新的網路,shell 可 能 已 經 傳 送 好 幾 個 封 包 給 舊 的 網 路 。 因 此 當 server 回復 SSH session 之後,server 必須重送遺失 的封包,而且 SSH server 會根據重送的請求當中所 含有的 sequence number 重送封包。

3. 同步控制。因為我們把重連的 process 當作 一個特殊的操作,我們已經將同步控制包含進我們 的 mobile SSH 通訊協定,用來避免 SSH server 同時

(5)

OpenSSH Server

Access Point 1 Access Point 2

Mobile Host

Establish a new SSH session (addrA)

Key exchangement and user authentication

Data Transfering

Request to reconnect the SSH session (addrB,encrypted session key,

sequence number)

Compare the session key and retransmit

lost packets Session Reconnected

The host roams from Network A

to Network B The shell is

busy waiting Save the session key 圖 4:Mobile SSH 通訊協定。 處理不同的 MN 重連的請求。因為每一個重連的 process 必須要通過認證,所以我們將儲存 session key 的 table 加入 semaphore 機制,確保同一時間只 有一個請求可以進行認證。因此如果 CN 正在處理 一個重連的請求,則在相同 SSH session 沒有其他 的重連請求可以進行處理。 4. 與舊有 SSH 的相容性。因為建置 mobile SSH 可能會很緩慢,因此我們的 SSH 通訊協定必須向下 相容。我們只有在封包中加入額外的 flag,所以 mobile SSH 通訊協定可以的與舊有的 SSH 通訊協 定相容。 5.攻擊與容錯。在提出的方法中,當 MN 改變 了網路位址,在 SSH server 端相對應的 shell 將會被 暫停。同時,SSH server 必須為暫停的 process 保留 資源。然而很不幸的,惡意的有心人士可能會假裝 正常的使用者來建立很多的 SSH session。這些 SSH sessions 將會耗費大量的資源,而且無法正常的終 止。換言之,如果一個 MN 離開原先的網路,並沒 有漫遊至另一個網路,則資源仍然無法被回收。為 圖 5:Mobile SSH 換手延遲。 了避免資源被惡意的有心人士以及錯誤的 MN 耗 盡,idle 過久的 session 將會被作業系統回收。因此 我們改善了攻擊以及容錯的能力。 4.2 效能量測 我們已經將提出的mobile SSH通訊協定實作 在OpenSSH 4.3p2 [6]和Putty 0.58 SSH client [7]。在 Putty的部份,大部份的修改是在Microsoft Windows XP的event handler上。當一個使用者建立了一個新 的SSH session,修改過的Putty會將session key儲存 在記憶體中。這個儲存的session key用來回復SSH session。當變換了新的IP,event handler會抓取新的 IP位址。接著Putty會自動送出重連的請求給遠端的 SSH server。在這個請求當中包含了新的IP資訊、舊 的session key以及封包的sequence number。這些資 料會經過原先SSH server的public key加密,因此只 有SSH server可以解密這些認證的資訊。

在OpenSSH的部份,SSH session建立的程序須 做 修 改 。 OpenSSH daemon process 存 有 每 一 個 session的session key。儲存的session key是用來辨認 MN。 圖5顯示我們的mobile SSH通訊協定進行重連 的 流 程 。 實 驗 的 環 境 包 括 了 十 台 作 業 系 統 為 Windows XP 的 PC 和 一 台 作 業 系 統 為 Linux 的 OpenSSH server,在這些host之間透過網路連接。在 實驗當中,我們使用sniffer [8]來監視所有傳輸的封 包,並且計算host的傳輸延遲。我們一開始在這十 台host上執行修改過的Putty並建立SSH session,然 後將其中一台MN切換IP位址。在一開始server會收 到 好 幾 個 建 立 SSH session 的 封 包 。 在 圖 5 中 的 segment(A)呈現出使用者登入的程序。在進入shell 之後,MN漫遊至另一個網路。而圖5中的segment(B) 呈現出換手的程序。在segment(B)的時段中包含了

(6)

IP的切換時間、key的比對時間以及重送buffer的時 間。實驗結果顯示回復SSH session所耗費的時間大 約是19.75ms。

5. 結論

近年來 Client/server 加密通訊軟體的應用日漸 普及,透過加密傳輸的保護,使用者的資料可以免 於外洩的風險。不過隨著無線網路的普及,現行的 加密通訊軟體受到很大的挑戰。因為網路頻寬較小 和網路品質不穩定的影響,加密通訊軟體的 session 容易變得很長。因為在無線網路環境下使用者可能 會在不同的網路間漫遊,加密通訊軟體的 session 因此變得很容易中斷。 為了讓使用者在無線網路環境下也能順利使 用加密通訊軟體,在本論文中我們提出了一個整合 無接縫換手機制的加密通訊軟體設計。透過我們提 出的設計,當使用者從一個無線網路切換到另一個 無線網路時,使用者會主動發出接續連線的請求給 伺服器,並且在通過身份認證後恢復連線。 為了驗證我們提出的設計,我們以 OpenSSH 和 Putty 為例實作整合無接縫換手機制的加密通訊 軟體。實驗結果顯示我們提出的設計確實可以在無 線網路下操作,同時擁有很短的換手延遲。 在未來,我們希望能夠推廣提出的加密通訊軟 體設計到各種不同的網路服務中,這樣一來,使用 者就不需要擔心因為漫遊而導致網路服務中斷。此 外,我們也希望能夠繼續探討其他提供無接縫換手 的機制,例如在無線網路基地台安裝 agent 為 MH 提供具通透性之無接縫換手服務等等。

參考文獻

[1] J. Myers and M. Rose, “Post Office Protocol – Version 3,” RFC 1939, May 1996.

[2] Google Inc., www.gmail.com.

[3] C. Newman, “Using TLS with IMAP, POP3, and ACAP,” RFC 2595, June 1999.

[4] T. Ylonen, C. Lonvick, “The Secure Shell (SSH) Protocol Architecture,” RFC 4251, Jan. 2006. [5] W. Stallings, Cryptography and Network Security:

Principles and Practice, 2nd Ed., Prentice Hall, July 1998.

[6] http://www.openssh.org/

[7] http://www.chiark.greenend.org.uk/~sgtatham/putty/ [8] http://www.snifferpro.co.uk/

參考文獻

相關文件

主修模組必選課程,列屬主修模組選修規 定之 20 學分內,如不及格者,需另外修習 主修模組之其他選修課程 ,以補足所缺之

主修模組必選課程,列屬主修模組選修規 定之 20 學分內,如不及格者,需另外修習 主修模組之其他選修課程 ,以補足所缺之

主修模組必選課程,列屬主修模組選修規 定之 20 學分內,如不及格者,需另外修習 主修模組之其他選修課程 ,以補足所缺之

4 .專業選修課程應至少選修 33 學分,其中除 第一學年之不分組專業選修課程,以及所有

專業選修 至少應選修28學分(含模組選修10學分) 模組類別 社會照顧服務、兒少與家庭社會工作 自由學分

一、將△ABC 平移至△DEF,請問:A 點至 D 點、B 點至 E 點、C 點至 F 點,這三個點平移的 距離、方向是否相同. 二、將△ABC 平移至△DEF

Step 3: : : :模擬環境設定 模擬環境設定 模擬環境設定 模擬環境設定、 、 、 、存檔與執行模擬 存檔與執行模擬

微算機原理與應用 第6