電腦網路與連結技術第十五章 無線區域網路 上一頁    下一頁

15-5 IEEE 802.11 認證與保密

內容:

『認證』(Authentication是確定對方身份的真實性,以避免他人入侵或冒名進入系統,或與身分不明的對象溝通;『保密』(Privacy是保護傳輸中的資料不被他人竊聽。一般在單一基本服務區(BSS)內,多半只會發生工作站向擷取點要求認證的程序,也就是說,擷取點負責整個 BSS 內工作站的登入工作站;但有時候也會發生在兩個工作站之間的身分認證。IEEE 802.11 提供兩種認證方式:『開放式系統』(Open System『共享式密匙』(Shared Key,前者是內定的認證方式,不過工作站提出認證要求時,可以指定採用哪種方法來進行雙方認證。至於保密措施,IEEE 802.11 採用『有線等效保密演算法』(Wired Equivalent Privacy Algorithm,以下針對這三個主要措施來加以介紹。

15-5-1 開放式系統認證

『開放式系統』(Open System認證是最簡單的認證方式,欲登入網路的工作站只要依照本身的 MAC 位址,即可詢問系統是否同意。大部份的無線網路都採用MAC 位址控制』(MAC Address Control方式,它的做法是網路上有一控制中心(大多由擷取點負責),登錄可登入工作站的 MAC 位址,當任一工作站啟動而欲登入網路時,便由控制中心檢視 MAC 登錄表,決定是否同意該工作站登入網路。因此,工作站欲加入某一網路之前,必須向該控制中心登錄本身的 MAC 位址。

15-31 為開放式系統的運作圖,工作站欲加入網路時,送出一個『要求』(Request訊號給控制中心,其中包含工作站位址(SA)與認證模式(Open System),訊號格式(部份訊息)如圖 15-31 所示。控制中心收到要求認證訊息後,檢視其工作站位址是否合乎登入權限,而回應同意或不同意訊息,其中包含工作站位址(SA)、認證模式(Open System)與認證結果。工作站通過認證後,系統才會給予服務,否則無法進入。

 

15-31 開放系統式認證的運作程序

15-5-2 共享密匙式認證

『共享式密匙』(Shared Key認證表示求證雙方都共同擁有一隻秘密鑰匙,認證時便依照此秘密鑰匙來證實對方的身分。這隻秘密鑰匙也許是透過某一個認證系統所分配,或是透過人工的傳遞,這已不是 IEEE 802.11 所管轄的範圍,而需要另一個系統來製作(如 RADIUS 系統)。秘密鑰匙是屬於個人性的,這表示每一登入網路者都擁有一個獨立的秘密鑰匙;如果網路上有許多工作站的話,控制中心就必須管理許多秘密鑰匙,這也是非常困擾。在許多情況下,秘密鑰匙都屬群體性的,也就是說,同一群組(或同一無線網路)共同使用一個秘密鑰匙,這對於控制中心來講比較容易管理,但多人共用容易洩漏秘密鑰匙,造成網路安全問題。

共享式密鑰的運作方式是採用『盤問與回應』(Challenge/Response機制,簡單的原理是要測試對方所擁有的密匙是否和自己的相同。它的做法是先送一段資料給對方,對方用密匙加密後回應給測試端,測試端再用自己的密匙來解密。解密後的資料若和原來傳送的資料相同,便表示雙方的密鑰相同,可以認證對方的身分。

15-32 為共享式密匙的運作程序,其中包含有四個步驟:

(1) 一開始工作站送出要求加入網路訊息(Request)(訊息 (1)),也指明認證方式(Shared Key)。

(2) 控制中心收到對方要求認證時,便隨機產生一串長度為 128 位元組的盤問全文(Challenge Text),附加在回應訊息傳送給對方(訊息 (2))。

(3) 接下來,工作站收到對方的盤問命令(Transaction No=2),便將訊息內的盤問全文以共享密匙來加密,並回應給控制中心(訊息 (3))。

(4) 控制中心收到對方再要求訊號(Transaction No=3),便知道是經由盤問回來的回應,於是將訊息內的盤問全文以自己的共享密匙來解密。如果經解密後的全文和原來傳送的盤問全文相同,即表示對方所擁有的秘密鑰匙和自己的相同,於是就能確認對方身分(和自己屬於同一群組的成員),而回應同意加入訊息(訊息 (4))。

15-32 共享式密匙認證的運作程序

15-5-3 有線等效保密 演算法

『有線等效保密演算法』(Wired Equivalent Privacy Algorithm,簡稱 WEP 演算法)是希望建立一個類似有線網路保密功能的演算法。由於無線電波是廣播式傳遞,只要能接收到該廣播訊號,就能竊聽到網路上所傳輸的資料,這比有線網路還不安全。欲竊聽有線網路所傳輸的資料,至少還需要連接到有線網路上,對一般入侵者仍保有相當的防護功能。為了解決這個問題,IEEE 802.11 標準中制定了一個與有線網路具有同等功效的資料保密演算法,這就是 WEP 演算法。

簡單的說,WEP 演算法是屬於一般『加密/解密』(Enciphering /Deciphering的機制,傳送者與接收者都擁有一支秘密鑰匙,資料傳輸之前利用鑰匙加密後再傳送給對方,對方收到資料後也利用解密鑰匙解密來得到原來的資料;加密與解密都用同樣一把秘密鑰匙,因此對於鑰匙的管理就顯得特別重要。另一方面,IEEE 802.11 所採用的共享密匙機制中,秘密鑰匙大多屬於群組共用,亦即同一群組的成員都擁有一隻相同的秘密鑰匙,這對安全防護上又是一個大漏洞。但如讓每個工作站都有一支獨立的秘密鑰匙,控制中心的管理負荷將相對繁重,因為它可能必須隨時處理使用者變更或遺失鑰匙的問題。IEEE 802.11 為了彌補這個缺憾,便使用一個變動的向量值,來和共享密匙組合成一個新的秘密鑰匙,如果向量值隨使用者及時間改變,則此秘密鑰匙便可隨時處於改變中,如此便能提高保密措施的完整性,這就是 WEP 演算法的基本原理。

(A) WEP 演算法特色

IEEE 802.11 規範中提到 WEP 演算法有下列特色:

(1) 抗竊聽性強:一般入侵者欲盜取資料大多使用『暴力攻擊法』(Brute-force Attack,也就是連續用不同的鑰匙來嘗試解密,如解密出有效資訊便表示密匙破解成功。WEP 為了防護暴力攻擊,於是利用共享密匙和一個『起始向量值』(Initialization Vector, IV來組合成它的密匙,並隨時藉由 IV 的改變來變動秘密鑰匙,讓暴力攻擊來不及破解密匙。

(2) 具有自我同步能力WEP 針對每一筆資料都具有『自我同步』(Self-synchronization的能力。如使用於資料流失率低,並且能盡力傳送的環境下,它的效益已接近於資料鏈結層(Data-Link Layer)的加密演算法功能。

(3) 效率高:WEP 演算法的執行效率高,並可用硬體或軟體技術來製作。

(4) 出口爭議性:美國基於國防安全性的考量,對於安全性較高的加密演算法一般都有限制出口。WEP 所使用的加密演算法是否可以依照商業環境需求而順利出口,還是存在許多爭議性的問題。

(5) 選項功能: IEEE 802.11 的標準規範下,WEP 是一種選項設施,使用者可以決定是否採用 WEP 演算法。也有許多公司為了安全性考量,而採取不同的加密演算法,來提高系統的安全性。

(B) WEP 運作原理

所謂『加密』(Encryption就是用特殊方法將原始二進位資料處理成亂碼,以將資料隱藏起來。未經加密的資料稱之為『原文』(Plaintext, P,或稱明文),而經過加密處理的資料,則稱之為『密文』(Ciphertext, C。將密文還原成原文的過程稱之為『解密』(Decryption。密碼演算法(Cryptographic Algorithm, 簡稱 Cipher)就是用來對資料進行加密和解密的數學函數。近代密碼學都採用鑰匙』(Key, K,一般又稱 "金鑰"技術來進行加密或解密的工作,而 WEP 是採用共享密匙方式,也就是說,解密和加密是採用同樣一把秘密鑰匙。圖 15-33 為加密/解密的基本過程,其中加密函數』(Encryption Function, E處理原文 P 後得到密文 C 的運算式如下:

EK(P) = C

欲還原時,經由解密函數』(Decryption Function, D,利用相同的鑰匙 K 處理密文 C,而得到原文 P 的運算式如下:

DK(C) = DK(EK(P)) = P

 

15-33 加密/解密的基本過程

WEP 演算法是將一段原文區塊(Plaintext Block)與一個等長度的隨機鑰匙序列』(Random Key Sequence做位元與位元之間的互斥運算(XOR Operation),此隨機鑰匙序列是由 WEP 所產生。另外,WEP 演算法是一種對稱性的演算法,加密和解密都是用同一串的隨機鑰匙序列來做 XOR 運算。

15-34 WEP 加密演算法的處理過程,乃先藉由一個『密匙』(Secret Key和初始向量(IV)組合成一個『種子』(Seed,並將此種子作為虛擬亂數產生器』(Pseudo Random Number Generator, PRNG的輸入參數。隨後 PRNG 產生一個具有隨機性質的『鑰匙序列』(Key Sequence其長度也是隨機改變,但一定能符合 MPDUMAC Protocol Data Unit)的最大長度限制。而原文不僅經過加密處理,為了檢驗出傳遞當中的訊息是否發生錯誤,原文必須先經過完整演算法』(Integrity Algorithm計算後,得到一個完整檢查碼』(Integrity Ckeck Value, ICV,再經過加密後,隨著密文(資料)傳送給對方。

 

15-34 WEP 演算法的加密過程

初始向量為 24 位元,可以週期性的變化,它與密匙(40 位元)結合而成為 64 位元的種子(Seed),種子的結構是最左邊 40 位元填放密匙(40 位元),而右邊 24 位元則放置初始向量。種子的結構如下所示:

在加密過程中,虛擬隨機亂數產生器(PRNG)為最主要的關鍵組件,它負責將相對較短的密匙轉換成任意長度(與 MPDU 同樣長度)的鑰匙序列,如此可以簡化密匙的傳遞負荷。在通訊進行期間,由於起始向量(IV)可以週期性的變化,而密匙則可以保持不變,如此,雖然使用同樣的密匙來加密,但所產生的鑰匙序列也能週期性的變化。如果遭受暴力攻擊,竊聽者也很難有足夠的時間來破解,甚至可以每一個 MPDU 都使用不同的起始向量來增加安全性。另一方面,雖然初始向量是隨訊息傳送給對方(未經加密處理),但初始向量和密匙沒有任何關係,盜取者雖然取得初始向量,也無法計算出密匙及鑰匙序列。另有一重要的特性,就是 WEP 也利用初始向量的改變來達到自我同步的功能。

WEP 演算法是針對一個 MPDUMAC Protocol Data Unit)為處理單位,輸出的訊息結構如圖 15-35 所示,其中起始向量(IV)欄位和完整檢查碼欄位(ICV)都是 4 個位元組。一般完整演算法都是利用 CRC-32 演算法,因此,完整檢查碼欄位的內容是 CRC 檢查碼經過加密後的結果。另外,初始向量雖然佔用了 4 個位元組空間,但事實上它本身的長度只有 3 個位元組,另外一個位元組則包含一個填塞(PAD, 6 位元)及鑰匙碼(Key ID, 2 位元),其中鑰匙碼是用來通知接收端在解密時應該使用四種個可能密匙中的哪一個。

 

15-35 WEP 處理後的訊息格式

15-36 WEP 解密處理的運作程序,當工作站收到一筆 MPDU 訊框時,首先由訊框的前頭取出初始向量,並與事先協調的密匙組合成虛擬亂數產生器的種子;種子經由 PRNG 處理後可得到鑰匙序列,此序列會和傳送端的序列相同。鑰匙序列與密文進行 XOR 運算後便得到明文和完整向量檢查碼,明文再經過完整演算法(CRC 除法器)後,與解密所得的完整檢查碼相比較(ICV = ICV ?),如果兩者相同,表示傳輸資料正常;如不相同,表示資料可能被竄改過,此時除了不能將錯誤資料傳送給上層外,並應通知 MAC 管理軟體。

15-36 WEP 演算法的解密過程

 

翻轉工作室:粘添壽

 

電腦網路與連結技術:

 

 

翻轉電子書系列: