Wireless Network Security (无线网络安全)

jeffleecm

贡献于2012-10-30

字数:0 关键词: 嵌入式开发

1 無線網路安全 主講人:郭文光 助理教授 國立成功大學電機工程學系 助理教授 TEL:(06) 275-7575 EXT 62446 E-mail:wkuo@ee.ncku.edu.tw FAX:(06)-234-5482 2 WEP(Wired Equivalent Privacy) „ 在802.11標準定案時,在Link Layer也同時定義了 WEP(Wired Equivalent Privacy)作為防止資料遭到竊 取與攻擊的加密機制. WEP定案之後,陸續就有人開始 針對這方面的安全問題加以探討,進而找出了WEP加密 的弱點. „ 無線網路的環境,透過WEP加密傳送封包時只有MAC Address與IV欄位是明碼,其餘部分都會經由RC4編碼 加密來傳送。 „ RC4為一種對稱式的金鑰加密方法,也就是在加密的兩 端之間(WLAN Client與Access Point)都要維持一個相 同的Key,共同用這把Key來加解密。 3 WEP(Wired Equivalent Privacy) cont. „ 加密的方式主要可以分為兩類Block Cipher與Stream Cipher,所謂的Block Cipher指的就是針對一個一個區 塊的加密方式,這樣的方式實做起來比較複雜,而且會需 要多餘的記憶體來儲存暫存的資料. 另一種方式就是 Stream Cipher,把所要加密的資料一個byte一個byte的 加密,好處就是實做簡單,可以快速的產生加密後的資 料。 4 RC4 Algorithm Diagram Plaintext Plaintext Secret key IV Session key Derivation Key stream Generator Session key Derivation Key stream Generator Secret key Stream cipher Stream cipher Ciphertext K k K 5 WEP(Wired Equivalent Privacy) cont. „ 資料傳輸時,WEP Key是不變的,唯一會改變的就是24 bits長 度的IV值,根據不同廠商實做的方式,IV值可以隨著每個封包 的傳送而改變,也可以維持一定的週期不重複,不過由於IV值 是由24bits的長度所組成,所以最大的IV週期將不會超過 2^24(16777216)個封包,也就是說,如果惡意攻擊者在WEP Key不更新的情況下,只要連續監聽不超過2^24封包就可以 偵測到重複的IV值了. 尤其如果每次IV值都是由小到大重複 計算送出,那樣當系統重置時(重新開機或是重新插拔 PCMCIA網卡),就有可能會導致IV值重複出現的機率大幅增 加。 „ 由此我們可以知道在WEP的保護下,基本上外人是無法得知 實際上傳輸的資料內容,除非惡意的使用者知道了我們使用 的WEP Key 。 6 WEP(Wired Equivalent Privacy) cont. „ 如下所示,為一個封包透過RC4加密的流程,首先系統 會產生一組24 bits動態產生的IV值,這個IV值與系統 所使用者WEP Key一起經由RC4運算後,經由Stream Cipher的方式透過XOR加密使用者所要傳送的封包, 在使用者加密後的封包要送出時,剛剛產生的IV直就 會附在封包之前,接收者只要根據這個IV直與兩邊共 同擁有的WEP Key,就可以把加密過的封包資料解回 來了。 7 WEP-IV Encryption IV WEP Key RC4 Plaintext CRC IV Ciphertext Plaintext CRC Key stream IV Ciphertext Transmission Data 8 WEP-IV Encryption „ 在接收端收到封包後,就可以把IV值與接收端的 WEP Key經過RC4運算後,再與原本加密過的封包 做一次XOR運算,就可以把封包給解回來。 9 WEP-IV Decryption IV Secret Key RC4 Plaintext CRC IV Ciphertext Key stream Check CRC CRC 原始資料的CRC 接收資料的CRC 10 WEP-IV Decryption „ 在我們清楚了WEP加密的機制之後,我們再針對WEP所可能發生 的安全問題加以介紹,首先就是由於這樣的加密流程,WEP Key本 身是不變的,改變的是長度為24bits的IV值(IV值在WEP2時已經加 長到128bits),所以說一旦被入侵者收到同樣的IV值且內容不同的 封包,那樣就可以建立起一個統計IV直的資料庫,而對封包加以破解, 如以下例子 Figure:透過IV值的重複取得明碼 „ 透過這樣的方式,如果我們又可以推出其中一個PlainText1內容的 話,就可以把另一個文字內容給解開。 „ 如果我們知道那個IV值配上那個RC4(WEP Key,IV)值,那我就可以 組合出一樣的CheckSum值,送出我自己想要送出的資料封包(例 如:ICMP),進而來拆解出我們所要的WEP Key 。 11 IEEE 802.11i (1/3) „ 早期無線網路是透過WEP(Wired Equivalent Private) 與固定的WEP Key作為加密機制,這樣的加密方式主 要是透過RC4配合 64 bits與128 bits Key兩種不同長度 的WEP Key作為加密保護,由於原本無線網路在WEP Key所採用的IV值都是以24 bits的長度,而且只有IV值 是變動的,之後 40 bits 或是 104 bits的Key都是固定 不變的。 也就是說對於要入侵網路的駭客而言,基本 上只要可以累積相同的IV值封包,就可以進行對IV值 之後 40 bits 或是 104 bits加密Key的破解,進而實現 入侵無線網路的的企圖。因此,過去企業採用無線網 路時,由於WEP Key的內容都是固定的,為了避免惡 意的入侵,網管人員必須每隔一段時間通知使用者更 換加密的WEP Key,進而降低被入侵的風險。 12 IEEE 802.11i (2/3) „ 有鑑於此,IEEE 802.11i針對無線網路原本所具備 的弱點加以補強,但由於IEEE 802.11i的標準尚未 制訂完成,在WIFI的推動下,制訂了 “WIFI Protected Access” 標準,以IEEE 802.11i Draft為 藍圖,去建構出一個符合現今需求,具備更進一 步安全性的無線網路環境。 „ 目前802.11i主要定義的加密機制可以分為TKIP (Temporal Key Integrity Protocol) 與AES,其中 TKIP就是目前WPA 1.x (WPA/SSN)主要採用的加 密機制。 13 IEEE 802.11i (3/3) „ TKIP主要的設計是相容於原本802.11的硬體產品,透過韌 體與軟體升級來提高加密的安全,一樣是透過RC4加密, 但是可以讓每個封包都提供不同的加密Key值。原本的 WEP加密使用24-bit的IV值,目前的TKIP使用48-bit IV值。 如此大幅減低IV值重複的問題。 因此WPA可以說是基於 802.1x與EAP提供更高的使用者認證與安全能力,雖然目 前的WPA TKIP已經比起原本單純的WEP加密更為可靠, 但這只是目前WPA第一個版本的方案,在未來WPA的版本 中,將進一步採用AES做為傳輸加密機制。 „ WPA TKIP相較於過去WEP加密,主要的不同在於過去是 直接把收到的WEP Key作為加密的運算值,可是WPA TKIP並不是如此,而是將所收到的Key值,重新運算出加 密的金鑰,在透過計算出來的加密金鑰進行後續加密的動 作。 14 TKIP (1/5) „ 目前的 WPA 1.x TKIP 相較於原本的WEP加密 機制,多了以下的能力。 „ 48-bits的IV值。 „ TKIP Per-Packet Key加密機制Î每個 Packet都產生不同加密的Key 。 „ MIC(Message Integrity Code)Î訊 息完整性編碼機制。 15 TKIP (2/5) „ 如 Figure: TKIP Per-Packet加密示意圖所示,在TKIP 加密的機制下,會透過兩個階段產生之後要透過RC4 加密的Key,也就是說基本上TKIP的加密機制與128- bits WEP Key 是一樣的,只是在於產生Key的方式不 同,主要的差別就是WEP Key是把使用者輸入的WEP Key與 IV 值直接作為加密的RC4 Key值,可是對於 TKIP而言使用者所輸入的TKIP Key與封包的IV值都只 是產生最後加密所用128 bits的參數,而不是直接把輸 入或是夾帶的IV值拿來加密,相對的也就提高他的安 全性。更可為每一個封包不同加密的128 bits Key值, 提供最完整的安全性。 „ 而原本用來加密的48 bits IV值,被分為兩個部分(32 bits與16 bits),分別在Phase 1與 Phase 2的程序中參 與加密Key的產生。 16 TKIP Encryption per packet (3/5) 128 bits Base key 48 bits Transmitter Adder 48 bits IV 128 bits per-packet key Phase Key Mixing Phase 2 Key Mixing 32 bits IV 16 bits IV Array 16 bits + 5(80 bits) 17 TKIP (4/5) „ 除了產生Key的方式更為安全以外,還多了對於傳送封 包完整性的確認,如 (Figure:在802.11 WPA下的封包 格式)所示,在目前的WPA中還加入了 MIC(Message Integrity Code) 用來確認訊息完整性的編碼機制,透 過在每一個封包的後面加入一個MIC值,來確認彼此 封包的完整性,比起過去只單純的透過CRC值來確認 封包的正確性,又提高了可靠度。 „ 基本上MIC的運作機制是,送端在送出封包前,把未 加密過的資料內容透過Michael演算法,求得一個64 bits的MIC值,對收端來說,把收到的封包解密後,依 樣針對資料內容透過Michael演算法計算一次MIC值, 如果一致就表示封包正確無誤,如果不一致,就表示 封包在傳輸過程中發生錯誤。 18 TKIP Encryption (5/5) 48-bit IV 128-bit Base key Phase I Key Mixing Phase II Key Mixing 48-bit Transmission Adder 16-bit 80-bit key RC4 IV Cipher text Plain text MIC ICV128-bit WEP key 19 MIC Mechanism 48-bit IV MIC ICV 802.11 Header 48-bit IV Payload 802.11 Header Payload MIC(Michael Algorithm) ICV(CRC) 20 802.1x Port-Based Network Access Control (1/4) „ 由於原本無線網路安全性問題逐漸浮現,因此IETF也著手制訂 “IEEE 802.1X RADIUS Usage Guidelines ” 為802.1x 與 Radius 之間AAA的認證機制建立一套標準流程,也進一步的提供無線網 路使用者端連線動態更換WEP Key的能力,並且Access Point可 以為每個無線網路使用者端提供不同的WEP Key值。但由於無線 網路的加密機制仍舊是採用原本固定WEP Key的加密方式,也就 是說雖然可以透過802.1x提供動態設定WEP Key的機制,但在下 一次透過APOL-Key更換WEP Key之前,無線網路傳輸的兩端都 會透過同一把WEP Key進行加密,對於惡意入侵無線網路的人而 言,如果設定動態更新WEP Key的時間週期過長,也不足以確保 無線網路的安全性。 „ 進一步的,由於802.1x更新WEP Key的機制,並沒有一個 Handshaking的流程,所有更換WEP Key的動作都是透過Access Point告知無線網路使用者端,因此如果設定更新WEP Key的週 期很短,在更多使用者加入使用並且頻繁更新WEP Key的情形 下,也容易發生使用者端無法正確接收Key導致WEP Key更新錯 誤連線中斷的問題。 21 802.1x Port-Based Network Access Control (2/4) „ 在正式介紹到EAP(Extensible Authentication Protocol)認證 的機制以前,在無線網路安全架構下(802.11i)將會引入 802.1x Port-Based Network Access Control的機制,透過這 樣的機制,Access Point可以用來過濾沒有經過後端認證伺 服器(Radius Server)許可的使用者封包。 „ 當Access Point與Radius Server 進行Radius Protocol的協 議流程時,如果收到Access-Reject的封包,就表示該使用者 認證失敗,被Radius Server拒絕登入. 如果Access Point收 到Access-Accept,就表示該使用者認證成功,Radius Server 同意其登入網域,之後只要是由該使用者經過認證的主機所 送出的封包,經過Access Point時就會放行通過。 22 802.1x Port-Based Network Access Control (3/4) RADIUS ServerAP EAPOL (EAP Over LAN) RADIUS Protocal Authentication Authentication Server Ethernet 23 802.1x Port-Based Network Access Control (4/4) „ 無線網路認證認證的機制會包括EAP,EAPOL與Radius Protocol „ EAP(Extensible Authentication Protocol) 是一個 PPP(Point-to- Point Protocol) 的延伸,主要用來在PPP中提供額外的認證機制,以 提供遠端登入的認證機制,基於不同的安全需求與使用考量,EAP 提供了不同的認證方式(例如: MD5-Challenge, TLS(Transport Level Security,可透過Smart Card認證). „ EAPOL(EAP Over Lan) 是屬於無線網路協定裡IP Layer以下的 通訊協定, 可以讓使用者在未經過EAP認證登入以前的封包,透過 EAPOL的傳送,經由Access Point與後端AAA (Authentication, Authorization, and Accounting) Server進行認證. „ Radius ProtcolÎ主要用來提供Authentication機制,用來辨認使用 者的身份與密碼,確認通過之後,經由Authorization授權使用者登入 網域使用相關資源,並可提供Accounting機制,保存使用者在網路上 的活動記錄,以提供系統服務業者完整認證收費機制的一個基礎. 24 WPA 認證程序與Key的交換 (1/2) „ 在過去的802.1x換Key的程序中,使用者端並沒有回應的機制,也就 是說在過去的Access Point透過802.x的EAPOL-Key送出換WEP Key 的命令時,由於使用者端並沒有回應的機制,如果說這一個EAPOL- Key的封包遺失了,那將會造成使用者端與Access Point端無法進行 同步的換WEP Key的動作 „ 在完成完整的EAP認證後,最後Access Point會送出EAPOL-EAP Success的訊息,之後就是連續兩次分別設定使用者端Session Key(每個使用者端專屬的WEP Key)與Group Key(全部使用者端共用 的WEP Key)的EAPOL封包。 „ 對於Access Point而言,與每個各別的使用者端通訊使用的是 Session Key,由於每個使用者端的Session Key都不同,所以可以確 保每個不同使用者端一定程度的安全機制,而對於要廣播給在這區域 內所有使用者的資訊,就可以透過Group Key傳遞。 25 WPA 認證程序與Key的交換 (2/2) „ 由於EAPOL的封包,是屬於MAC Layer的封 包,並不像上層的TCP封包一樣,有既定的封 包重送機制,如果送給使用者端的EAPOL封包 內容是錯誤的,或是封包遺失,都很可能會造 成兩端換WEP Key的動作無法順利的接續下 去,而造成使用者端的網路連線中斷。 „ WPA在換Key的動作部分定義了不同的協議過程,讓 換Key的流程可以有一個完整與安全的協議過程,基本 上WPA定義的換Key可以分為兩個部分: „ Unicast Key Î屬於每個使用者端專屬的Key „ Group Key Î屬於同一個Access Point涵蓋區域內,所以使用 者共用的Key 26 常用的EAP認證方式 (1/5) „ EAP-MD5 CHAP(Extensible Authentication Protocol- Message Digest 5 Challenge Handshake Authentication Protocol)Î採單一密碼,非常容易破 解。 „ 其中Client端一開始會先送出EAPOL-Start的訊息,如果 網路上有支援802.1x服務的Access Point,該Access Point一收到EAPOL-Start的訊息就會透過EAPOL 送出 EAP-Packet,也就是EAP-Identity用來要求使用者確認 身份,使用者端程式收到EAP-Identity之後,就會要求使 用者輸入帳號與密碼. 使用者輸入之後,就會先把身 份認證的資料(帳號)送給Access Point, Access Point 與後端網路上的Radius Server使用的通訊協定為 Radius Protocol,在收到使用者的EAP訊息後,就會把 EAP訊息加到Radius Protocol的Attribute後送出給 Radius Server 。 27 常用的EAP認證方式 (2/5) „ 再來Radius Server會送出Access-Challenge(Radius Protocol)給 使用者, 使用者端的程式收到後,就會把使用者的密碼經由Hash後 產生的結果透過Access Point以Access-Request(Radius Protocol) 送回給Radius Server. 在Radius Server端收到這項要求後,就會根 據自己所管理的使用者帳號,根據其密碼也同樣經過Hash處理比 對兩者是否一致,如果一致的話,就會送出Access-Accept(Radius Protocol)的訊息給Access Point,如果兩者不同,表示該使用者的身 份確認上有誤,就會送出Access-Reject(Radius Protocol)給 Access Point,當Access Point收到該訊息後,就會對使用者送出 EAPOL-Fail的訊息,此時使用者端的802.1x程式就會顯示出無法 登入的訊息,並且要求使用者再次輸入正確的使用者帳號與密碼, 便於進行下一次的登入嘗試。 28 常用的EAP認證方式 (3/5) 802.11 association request 802.11 association response EAPOL Start EAPOL-EAP-request/Identity EAPOL-EAP-response/Identity EAPOL-EAP-request/challenge EAPOL-EAP-request/credential EAPOL-EAP-success RADIUS-Access Request RADIUS-Access Challenge RADIUS-Access Request RADIUS-Access Accept Supplicant AP RADIUS 29 常用的EAP認證方式 (4/5) „ EAP-TLS(Extensible Authentication Protocol- Transport Level Security)ÎEAP-TLS以Certificate方式認 證,也就是說每個使用者再使用EAP-TLS 認證的服務以前,都必須要先取得網路上 負責認證CA的Certificate, Certificate的 存放可以透過Smart Card,磁片 或是經由 網路下載後安裝。 30 常用的EAP認證方式 (5/5) „ EAP-TLS的好處在於使用者端與Radius Server端可以 共同產生一把用來加密無線網路資料的WEP Session- Key,Access Point端收到Radius-Acess的訊息時,其中 就會有一個欄位夾帶著Session Key,Access Point端要 透過與Radius Server彼此共同擁有的Shared Key與其 他資料,來解開這把Session Key. 之後根據要指定使用 者使用不同的Brocast Key與Session Key的考量,分別 送出設定使用者這兩把Key的EAPOL封包。 „ 之後使用者端與Access Point就會透過設定好的WEP Key來加密通訊資料,由於我們都知道WEP Key加密資 料時的漏洞,所以說透過這樣的方式,我們可以定義出動 態設定WEP Key的機制,也就是說可以週期性的送出要 求更改WEP Key 的EAPOL封包,讓使用者端與Access Point兩邊彼此都擁有不固定的WEP Key加密機制,以 便於減低WEP Key被破解的機會。 31 RC4 Algorithm „ A stream cipher designed in 1987 „ Variable key-size stream cipher „ Based on the use of random permutation 32 RC4 Algorithm „ Used in SSL(Secure Socket Layer) / TLS (Transport Layer Security) standard that has been defined for the communication between web browsers and servers „ Also used in IEEE 802.11 WEP 33 RC4 Algorithm „ A variable length key of from 1~256 bytes is used in to initialize a 256-byte state vector S, W/ elements from S[0]…S[255]. For encryption and decryption, a byte k is generated from S. 34 RC4 Algorithm Key K Key K Pseudo random number generator + Pseudo random number generator + Ciphertext byte stream Plaintext M k Plaintext byte stream Encryption Decryption 35 Initialization of S „ To begin, S[0]=0, S[1]=1, …S[255]=255 „ T : temporary vector „ If the length of the key k is 256 bytes, then k is transferred to T o.w, for a key of length keylen bytes, the 1st keylen elements of T are copied from K and then K is repeated as many times as necessary to fill out T. 36 Initialization of S /* Initialization */ For i= 0 to 255 do S[i]= i; T[i]= k[i mod keylen]; 37 Initialization permutation of S „ Next, we use T to produce the initial permutation of S „ Starting from S[0] and go through to S[255] and for each S[i], swap S[i] w/ another byte in S according to a scheme dictated by T[i] 38 Initialization permutation of S /* Initialization permutation of S */ j= 0; For i= 0 to 255 do j= (j+ S[i]+ T[i]) mod 256; swap(S[i], S[j]); 39 Stream generation „ To generate the ciphertext, each byte of plaintext is XORed w/ a value of k as produced by the RC4 Algorithm 40 Stream generation /* Stream generation */ i, j= 0; while (true) i= (i+1) mod 256; j= (j+S[i]) mod 256; swap(S[i], S[j]); t= (S[i]+S[j]) mod 256; k= S[t];

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档