802.11標準將全部的數據包分爲3種:算法
1. 數據: 數據數據包的做用是用來攜帶更高層次的數據(如IP數據包,ISO7層協議)。數組
它負責在工做站之間傳輸數據緩存
2. 管理: 管理數據包控制網絡的管理功能sass
1) 信標幀(Beacons): 在無線設備中,定時依次按指定間隔發送的有規律的無線信號(相似心跳包),主要用於定位和同步使用安全
2) 解除認證(Deauthentication)數據包網絡
3) Probe(request and response)分佈式
4) Authenticate(request and response)性能
5) Associate(request and response)ui
6) Reassociate(request and response)atom
7) Dissassociate(notify)
管理幀負責監督,主要用來加入或退出無線網絡,以及處理接入點之間鏈接的轉移事宜
3. 控制: 控制數據包得名於術語"媒體接入控制(Media Access Control, MAC)",是用來控制對共享媒體(即物理媒介,如光纜)的訪問
1) 請求發送(Request To Send,RTS)數據包
2) 清除發送(Clear To Send,CTS)數據包
3) ACK確認(RTS/CTS)
4) PS-Poll: 當一部移動工做站從省電模式中甦醒,便會發送一個 PS-Poll 幀給基站,以取得任何暫存幀
控制幀一般與數據幀搭配使用,負責區域的清空、信道的取得以及載波監聽的維護,並於收到數據時予以正面的應答,藉此促進工做站間數據傳輸的可靠性
這些不一樣類別的數據包被統稱爲"數據包類型"。
802.11的兩類服務:
1. 站點服務SS(每一個STA都要有的服務)
1) 認證(Authentication)
2) 解除認證(Deauthentication)
3) 加密(Privacy)
4) MSDU傳遞(MSDU delivery)
2. 分佈式系統服務DSS(DS特有服務)
1) 關聯(Association)
2) 解除關聯(Deassociation)
3) 分佈(Distribution)
4) 集成(Integration)
5) 重關聯(Ressociation)
管理幀協議格式
(Beacon(信標)幀)
(Probe Request(探測請求)幀)
(Probe Response(探測響應)幀)
(ATIM幀)
(Disassociation(解除關聯)與Deauthentication(解除認證)幀)
(Association Request(關聯請求)幀)
(Reassociation Request(從新關聯請求)幀)
(Authentication(身份認證)幀)
1. 幀控制結構(Frame Control) 1) Protocol Version: (協議版本)一般爲0 2) Type: 幀類型,管理幀: 00 3) Subtype: 進一步判斷幀的子類型 3.1) Beacon(信標)幀 3.2) Probe Request(探測請求)幀 3.3) Probe Response(探測響應)幀 3.4) ATIM幀 3.5) Disassociation(解除關聯) 3.6) Deauthentication(解除認證)幀 3.7) Association Request(關聯請求)幀 3.8) Reassociation Request(從新關聯請求)幀 3.9) Authentication(身份認證)幀 4) To DS: 代表該幀是不是BSS向DS發送的幀 5) From DS: 代表該幀是不是DS向BSS發送的幀 6) More Fragment: 用於說明長幀被分段的狀況,是否還有其它的幀,若是有則該值設置爲1 7) Retry(重傳域): 表示該分段是先前傳輸分段的重發幀。 8) Power Management: 表示傳輸幀之後,站所採用的電源管理模式 8.1) 爲1: STA處於power_save模式 8.2) 爲0: STA處於active模式 9) More Data: 表示有不少幀緩存到站中。即至少還有一個數據幀要發送給STA是設置爲1。 10) Protected Frame: 表示根據WEP(Wired Equivalent Privacy)算法對幀主體進行加密。若是幀體部分包含被密鑰套處理過的數據,則設置爲1,不然設置爲0 11) Order(序號域): 在長幀分段傳送時,該域設置爲1表示接受者應該嚴格按照順序處理該幀,不然設置爲0 2. Duration/ID(持續時間/標識) 代表該幀和它的確認幀將會佔用信道多長時間,Duration 值用於網絡分配向量(NAV)計算 3. Address Fields(地址域): 1) Destination Address 2) Source Address 3) BSS ID 4. Sequence Control(序列控制域): 用於過濾重複幀 1) MSDU(MAC Server Data Unit), 12位序列號(Sequence Number) 2) MMSDU(MAC Management Server Data Unit), 4位片斷號(Fragment Number)組成 5. Frame Body(Data): 發送或接收的信息。對於不一樣類型的數據幀來講,這個域的格式差異較大 1) Beacon(信標)幀 1.1) Timestamp(時戳)位: 可用來同步 BSS 中的工做站 BSS 的主計時器會按期發送目前已做用的微秒數。當計數器到達最大值時,便會從頭開始計數 1.2) Beacon interval位: AP點每隔一段時間就會發出的Beacon(信標)信號,用來宣佈 802.11網絡的存在。咱們打開無線鏈接的時候之因此能看到不少Wi-Fi點就是由於它 1.3) Capability information位: 發送Beacon信號的時候,它被用來通知各方,該網絡具有哪一種性能 1.4) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱 1.5) 跳頻參數組合(PH Parameter Set): 包含了加入 802.11跳頻(frequency-hopping)網絡所須要的參數 1.6) 直接序列參數集合(DS Parameter Set): 指明網絡所使用的信道數 1.7) 免競爭參數集合(CF Parameter Set): 出如今支持免競爭接入點所發送的 Beacon幀中,並不是必須 1.8) IBSS 參數集合(IBSS Parameter Set): 指明ATIM window (數據待傳指示通知信息間隔期間) 1.9) TIM數據待傳信息(Traffic Indication Map): 指示有哪些工做站須要接收待傳數據 1.10) Country: 國家識別碼 1.11) 功率限制(Power Constraint): 讓網絡得以向工做站傳達其所容許的最大傳輸功率 1.12) 信道切換宣告(Channel Switch Announcement): 爲了警告網絡中的工做站即將變換信道 1.13) 禁聲(Quiet): 爲了不與特定的軍事雷達技術彼此干擾 1.14) 發射功率控制報告(TPC Report): 指明鏈路的衰減狀況,能夠幫助工做站了解該如何調整傳輸功率 1.15) 擴展物理層(ERP) 1.16) 支持速率(Supported Rates): 無線局域網絡支持數種標準速率。當移動工做站試圖加入網絡,會先檢視該網絡所使用的數據速率。有些速率是強制性的,每部工做站都必須支持 ,有些則是選擇性的 1.17) RSN強健安全網絡(Robust Security Network) 2) Probe Request(探測請求)幀 2.1) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱 2.2) Supported Rate(支持速率) 2.3) 擴展支持速率(Extended Supported Rate) 3) Probe Response(探測響應)幀 3.1) Timestamp(時戳)位: 可用來同步 BSS 中的工做站 BSS 的主計時器會按期發送目前已做用的微秒數。當計數器到達最大值時,便會從頭開始計數 3.2) Beacon interval位: AP點每隔一段時間就會發出的Beacon(信標)信號,用來宣佈 802.11網絡的存在。咱們打開無線鏈接的時候之因此能看到不少Wi-Fi點就是由於它 3.3) Capability information位: 發送Beacon信號的時候,它被用來通知各方,該網絡具有哪一種性能 3.4) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱 3.5) 支持速率(Supported Rates): 無線局域網絡支持數種標準速率。當移動工做站試圖加入網絡,會先檢視該網絡所使用的數據速率 3.6) 跳頻參數組合(PH Parameter Set): 包含了加入 802.11跳頻(frequency-hopping)網絡所須要的參數 3.7) 直接序列參數集合(DS Parameter Set): 指明網絡所使用的信道數 3.8) 免競爭參數集合(CF Parameter Set): 出如今支持免競爭接入點所發送的 Beacon幀中,並不是必須 3.9) IBSS 參數集合(IBSS Parameter Set): 指明ATIM window (數據待傳指示通知信息間隔期間) 3.10) Country: 國家識別碼 3.11) FH Hopping Parameters 3.12) FH Pattern Table 3.13) 功率限制(Power Constraint): 讓網絡得以向工做站傳達其所容許的最大傳輸功率 3.13) 信道切換宣告(Channel Switch Announcement): 爲了警告網絡中的工做站即將變換信道 3.14) 禁聲(Quiet): 爲了不與特定的軍事雷達技術彼此干擾 3.15) IBSS 動態選項(IBSS DFS):在 IBSS 中負責動態選頻的工做站能夠在管理幀中傳遞 IBSS DFS 信息元素 3.16) 發射功率控制報告(TPC Report): 指明鏈路的衰減狀況,能夠幫助工做站了解該如何調整傳輸功率 3.17) 擴展物理層(ERP) 3.18) 擴展支持速率(Extended Supported Rate) 3.19) RSN強健安全網絡(Robust Security Network) 4) ATIM幀 5) Disassociation(解除關聯) 5.1) Beacon Code 6) Deauthentication(解除認證)幀 6.1) Beacon Code 7) Association Request(關聯請求)幀 7.1) Capability information位: 發送Beacon信號的時候,它被用來通知各方,該網絡具有哪一種性能 7.2) Listen interval位: 爲了節省電池的電力,工做站能夠暫時關閉 802.11網絡接口的天線。當工做站處於休眠狀態,接入點必須爲之暫存幀 7.3) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱 7.4) Supported Rate(支持速率) 8) Reassociation Request(從新關聯請求)幀 8.1) Capability information位: 發送Beacon信號的時候,它被用來通知各方,該網絡具有哪一種性能 8.2) Listen interval位: 爲了節省電池的電力,工做站能夠暫時關閉 802.11網絡接口的天線。當工做站處於休眠狀態,接入點必須爲之暫存幀 8.3) Current AP Address位: 使用Current AP Address(目前接入點的地址)位來代表目前所鏈接的接入點的 MAC地址 8.4) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱 8.5) Supported Rate(支持速率) 9) Authentication(身份認證)幀 9.1) Authentication Algorithm Number: 指明認證程序所使用的認證類型 9.2) Authentication Transaction Sequence Number: 用以追蹤身份認證的進度 9.3) Status Code: 狀態代碼用來表示某項過程成功或失敗 9.4) 質詢口令(Challenge Text): 802.11所定義的共享密鑰身份認證系統。會要求移動工做站必須成功解碼一段加密過的質詢口令。這段質詢口令的發送系經過 Challenge Text (質詢口令)信息元素 6. FCS(CRC): 包括32位的循環冗餘校驗(CRC),用於檢錯,注意是檢錯不是糾錯
數據幀協議格式
數據幀的形式取決於網絡的形式。幀究竟屬於哪一種類型,徹底取決於subtype(子類型)位,而與其餘位是否出如今幀中無關。
(IBSS 數據幀的一種)
(接入點發送(From AP)的幀,數據幀的一種)
(發送至接入點(To AP)的幀,數據幀的一種)
(WDS幀,數據幀的一種)
1. 幀控制結構(Frame Control) 1) Protocol Version: (協議版本)一般爲0 2) Type: 幀類型,數據幀: 10 3) Subtype: 進一步判斷幀的子類型,不一樣類型的數據幀這個字段的格式是不一樣的 3.1) IBSS幀 3.1.1) 0000: Data 3.1.2) 0010: Null 3.2) From AP幀 3.2.1) 0000: Data 3.2.2) 1000: Data+CF+ASK 3.2.3) 0100: Data+CF+Poll 3.2.4) 1100: Data+CF+ACK+CF+Poll 3.2.5) 1010: CF+ACK 3.2.6) 0110: CF+Poll 3.2.7) 1110: ACK+CF+Poll 3.3) To AP幀 3.3.1) 0000: Data 3.3.2) 1000: Data+CF+ACK 3.3.3) 0010: Null 3.3.4) 1010: CF+ACK(no data) 3.4) WDS幀 null 4) To DS: 代表該幀是不是BSS向DS發送的幀時 4.1) IBSS: 設置爲0 4.2) To AP: 設置爲1 4.3) From AP: 設置爲0 4.4) WDS: 設置爲1 5) From DS: 代表該幀是不是DS向BSS發送的幀時 5.1) IBSS: 設置爲0 5.2) To AP: 設置爲0 5.3) From AP: 設置爲1 5.4) WDS: 設置爲1 6) More Fragment: 用於說明長幀被分段的狀況,是否還有其它的幀,若是有則該值設置爲1 7) Retry(重傳域): 表示該分段是先前傳輸分段的重發幀。 8) Power Management: 表示傳輸幀之後,站所採用的電源管理模式 8.1) 爲1: STA處於power_save模式 8.2) 爲0: STA處於active模式 9) More Data: 表示有不少幀緩存到站中。即至少還有一個數據幀要發送給STA是設置爲1。 10) Protected Frame: 表示根據WEP(Wired Equivalent Privacy)算法對幀主體進行加密。若是幀體部分包含被密鑰套處理過的數據,則設置爲1,不然設置爲0 11) Order(序號域): 在長幀分段傳送時,該域設置爲1表示接受者應該嚴格按照順序處理該幀,不然設置爲0 2. Duration/ID(持續時間/標識) 代表該幀和它的確認幀將會佔用信道多長時間,Duration 值用於網絡分配向量(NAV)計算 3. Address Fields(地址域): 這個域的具體格式和控制幀的子類型有關,不一樣的子類型會有一些微小的差異 1) IBSS 1.1) Destination Address 1.2) Source Address 1.3) BSSID 每一個BSS都會被賦予一個BSSID,它是一個長度爲48個bit的二進制識別碼,用來辨識不一樣的BSS 2) From AP 2.1) Destination Address 2.2) BSSID 2.3) Source Address 3) To AP 3.1) BSSID 3.2) Source Address 3.3) Destination Address 4) WDS 4.1) BSSID 4.2) Source Address 4.3) Destination Address 4. Sequence Control(序列控制域): 用於過濾重複幀 1) MSDU(MAC Server Data Unit), 12位序列號(Sequence Number) 2) MMSDU(MAC Management Server Data Unit), 4位片斷號(Fragment Number)組成 [SA,只有WDS中的幀有這個字段] 5. Frame Body(Data): 發送或接收的信息。 6. FCS(CRC): 包括32位的循環冗餘校驗(CRC),用於檢錯,注意是檢錯不是糾錯
控制幀協議格式
(RTS幀,控制幀的一種)
(CTS幀,控制幀的一種)
(ACK幀,控制幀的一種)
(PS-Poll幀)
1. 幀控制結構(Frame Control) 1) Protocol Version: (協議版本)一般爲0 2) Type: 幀類型,控制幀: 01 3) Subtype: 進一步判斷幀的子類型: 控制幀 3.1) 請求發送(Request To Send,RTS)數據包 3.2) 清除發送(Clear To Send,CTS)數據包 數據幀 3.3) ACK確認(RTS/CTS) 3.4) PS-Poll: 當一部移動工做站從省電模式中甦醒,便會發送一個 PS-Poll 幀給基站,以取得任何暫存幀 4) To DS: 代表該幀是BSS向DS發送的幀時,該值設置爲1 5) From DS: 代表該幀是DS向BSS發送的幀時,該值設置爲1 控制幀負責處理無線介質的訪問,所以只可以由無線工做站產生。傳輸系統並不會收送控制幀,所以這兩個Bit必然爲0 6) More Fragment: 用於說明長幀被分段的狀況,是否還有其它的幀,若是有則該值設置爲1。 控制幀不可能被切割,這個Bit必然爲0 7) Retry(重傳域): 表示該分段是先前傳輸分段的重發幀。 控制幀不像管理或數據幀那樣,必須在序列中等候重送,所以這個 Bit必然爲0 8) Power Management: 表示傳輸幀之後,站所採用的電源管理模式 8.1) 爲1: STA處於power_save模式 8.2) 爲0: STA處於active模式 9) More Data: 表示有不少幀緩存到站中。即至少還有一個數據幀要發送給STA是設置爲1。 More Data bit只用於管理數據幀,在控制幀中此Bit必然爲0 10) Protected Frame: 表示根據WEP(Wired Equivalent Privacy)算法對幀主體進行加密。若是幀體部分包含被密鑰套處理過的數據,則設置爲1,不然設置爲0。 控制幀不會通過加密。所以對控制幀而言,Protected Frame bit必然爲0。 11) Order(序號域): 在長幀分段傳送時,該域設置爲1表示接受者應該嚴格按照順序處理該幀,不然設置爲0。 控制幀是基本幀交換程序(atomic frame exchange operation)的組成要件,所以必須依序發送。因此這個Bit必然爲0 2. Duration/ID(持續時間/標識) 代表該幀和它的確認幀將會佔用信道多長時間,Duration 值用於網絡分配向量(NAV)計算。 注意: 在PS-Poll幀中不包含Duration/ID這個字段 3. Address Fields(地址域): 這個域的具體格式和控制幀的子類型有關,不一樣的子類型會有一些微小的差異 3.1) RTS(請求發送幀) 3.1.1) Receiver Address(接收端地址) 接收大型幀的工做站的地址 3.1.2) Transmitter Address(發送端地址) RTS幀的發送端的地址 3.2) CTS(容許發送) 3.2.1) Receiver Address(接收端地址) 3.3) ACK(應答) 3.3.1) Receiver Address(接收端地址) 3.4) PS-Poll(省電模式一輪詢) 3.4.1) AID(鏈接識別碼 association ID) 鏈接識別碼是接入點所指定的一個數值,用以區別各個鏈接。將此識別碼置入幀,可以讓接入點找出爲其(移動工做站)所暫存的幀 3.4.2) BSSID 此位包含發送端目前所在 BSS(AP)的BSSID ,此BSS 創建自目前所鏈接的AP 3.4.3) Transmitter Address(發送端地址) 此爲PS-Poll幀之發送端的 MAC地址 4. FCS(CRC): 包括32位的循環冗餘校驗(CRC),用於檢錯,注意是檢錯不是糾錯
3. Wi-Fi認證過程
有了802.11協議的基本格式以後,咱們可使用wireshark進行抓包實驗,驗證一下咱們的理論
ifconfig -a ifconfig wlan1 up airmon-ng start wlan1 啓動wireshark,選擇mon0網卡(開啓了Monotor模式的虛擬網卡
0x1: 普通無加密鏈接過程
1. AP發送Beacon廣播管理幀
由於AP發送的這個Beacon管理幀數據包是廣播地址,因此咱們的PCMIA內置網卡、或者USB外界網卡會接收到這個數據包,而後在咱們的"無線鏈接列表"中顯示出來
2. 客戶端向承載指定SSID的AP發送Probe Request(探測請求)幀
當咱們點擊"鏈接"的時候,無線網卡就會發送一個Prob數據幀,用來向AP請求鏈接
3. AP接入點對客戶端的SSID鏈接請求進行應答
AP對客戶端的鏈接做出了迴應,並表示不接受任何形式的"幀有效負載加密(frame-payload-encryption)"
4. 客戶端對目標AP請求進行身份認證(Authentication)
5. AP對客戶端的身份認證(Authentication)請求做出迴應
AP迴應,表示接收身份認證
6. 客戶端向AP發送鏈接(Association)請求
身份認證經過以後,全部的準備工做都作完了,客戶端這個時候能夠向WLAN AP發起正式的鏈接請求,請求接入WLAN
7. AP對鏈接(Association)請求進行迴應
AP對客戶端的鏈接請求(Association)予以了迴應(包括SSID、性能、加密設置等)。至此,Wi-Fi的鏈接身份認證交互就所有結束了,以後就能夠正常進行數據發送了
8. 客戶端向AP請求斷開鏈接(Disassociation)
當咱們點擊"斷開鏈接"的時候,網卡會向AP發送一個斷開鏈接的管理數據幀,請求進行斷開鏈接
由此,咱們能夠發現,基於對數據幀格式的瞭解,黑客能夠發起一些針對協議的攻擊。
1. Deanthentication攻擊 2. Disassociation攻擊
黑客能夠利用這種方式加快對WEP/WPS-PSK保護的無線局域網的攻擊,迫使客戶端從新鏈接而且產生ARP流量(基於WEP的攻擊)、或捕獲從新進行WPA鏈接的四次握手,而後能夠對密碼進行離線字典或彩虹表破解攻擊
0x2: 基於WEP加密的鏈接過程
0x3: 基於WPA-PSK加密的鏈接過程
這兩種鏈接交互過程原理上和無加密方式(開放系統方式)相同,
4. 802.11標準中的數據安全加密協議
在IEEE 802.11協議中的加密算法有以下幾個
1. WEP,Wired Equivalent Privacy: 802.11中最先期的加密標準 http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy 2. CCMP(CTR with CBC-MAC Protocol): 基於AES的全新加密協議,在IEEE 802.11i中提出 http://en.wikipedia.org/wiki/CCMP 3. WPA(Wi-Fi Protected Access) http://en.wikipedia.org/wiki/WPA 4. TKIP(Temporal Key Integrity Protocol) http://en.wikipedia.org/wiki/Temporal_Key_Integrity_Protocol 5. WPA2(Wi-Fi Protected Access 2) http://en.wikipedia.org/wiki/WPA2