文章出處

  802協議楨格式

  802.11和Wi-Fi技術并不是同一個東西。Wi-Fi標準是802.11標準的一個子集,并且是Wi-Fi聯盟負責管理

  802協議楨格式:

協議發布年份/日期Op.標準頻寬實際速度 (標準)實際速度(最大)半徑范圍(室內)半徑范圍(室外)
Legacy 1997 2.4-2.5 GHz 1 Mbit/s 2 Mbit/s  ?  ?
802.11a 1999 5.15-5.35/5.47-5.725/5.725-5.875 GHz 25 Mbit/s 54 Mbit/s 約30米 約45米[3]
802.11b 1999 2.4-2.5 GHz 6.5 Mbit/s 11 Mbit/s 約30米 約100米
802.11g 2003 2.4-2.5 GHz 25 Mbit/s 54 Mbit/s 約30米 約100米
802.11n 2009 2.4 GHz or 5 GHz bands 300 Mbit/s (20MHz*4 MIMO) 600 Mbit/s (40MHz*4 MIMO) 約70米 約250米
802.11p 2009 5.86-5.925 GHz 3 Mbit/s 27 Mbit/s 約300米 約1000米
802.11ac 2011.11 5 GHz 433Mbit/s, 867Mbit/s (80MHz), (160MHz為可選) 867Mbit/s, 1.73 Gbit/s, 3.47 Gbit/s, 6.93 Gbit/s (8 MIMO, 160MHz) 約35米[4]

  

  無線網絡協議楨的分類

  類型和字段定義了無線網絡的三種類型,分別是:

  1: Management frames,它的主要作用是維護接入點和無線客戶端之間的通信,管理該框架擁有以下子類型:

    Authentication

    De-authentication

    Association Request

    Association Response

    Reassociation Request

    Reassociation Response

    Disassociation

    Beacon

    Probe Request

    Probe Response

   2:  Control frames

    控制幀是負責客戶端和接入點的數據交換,類型為:

    Request to Send (RTS)    Clear to Send (CTS)    Acknowledgement (ACK)

    這些數據可以在一些報文請求中看到。 

   3: Data frames

  這些不同類別的數據包被統稱為"數據包類型"。

  WLAN有以下三種網絡拓撲結構

1) 獨立基本服務集(Independent BSS, IBSS)網絡(也叫ad-hoc網絡)
2) 基本服務集(Basic Service Set, BSS)網絡
3) 擴展服務集(Extent Service Set, ESS)網絡

  1) AD-Hoc網絡

  win7自帶的AD-Hoc組建功能,可以讓我們很方便的在一個小范圍內快速組建"局域網",聯網打游戲啥的很方便

  2) BSS網絡

對于個人PC來說,使用最多的所謂"無線Wi-Fi"指的就是BSS網絡模式,我們通過AP(Access Point)接入點來接入網絡

  3) ESS網絡

其中,ESS中的DS(分布式系統)是一個抽象系統,用來連接不同BSS的通信信道(通過路由服務),這樣就可以消除BSS中STA與STA之間直接傳輸距離受到物理設備的限制。

 

  無線網絡協議楨的三種類型

  我們知道數據鏈路層是一個很靠近底層的通信協議,它使用Bit來表示信息(也使用Bit來標識數據包的開始和結束),所以數據鏈路層的協議格式并沒有強制要求一個固定的長度,即802.11協議長度是可變的。不同功能的數據幀長度會不一樣。這一特性說明mac802.11數據幀顯得更加靈活,然而,也會更加復雜。

  mac 802.11的數據幀長度不定主要是由于以下幾點決定的

1. mac地址數目不定,根據幀類型不同,mac 802.11的mac地址數會不一樣。比如說 ACK幀僅有一個mac地址,而數據幀有3個mac地址,在WDS模式下,幀頭有4個mac地址。
2. 802.11的管理幀所攜帶的信息長度不定,在管理幀中,不僅僅只有一些類似于mac地址,分片標志之類的這些信息,而且另外還會包括一些其它的信息,這些信息有關于安全設置的,有關于物理
通信的,比如說我們的SSID名稱就是通過管理幀獲得的。AP會根據不同的情況發送包含有不同信息的管理幀。 
3. 加密(wep,wpa等)信息,QOS(quality of service)信息,若有加密的數據幀格式和沒有加密的數據幀格式還不一樣,加密數據幀格式還多了個加密頭,用于解密用。然則QOS也是同樣道理

  1: 控制幀

  0x0: Frame Control字節結構:

  2: 管理幀

  0x1: 管理幀協議格式

(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),用于檢錯,注意是檢錯不是糾錯 

 

  3 : 數據幀

  0x2: 數據幀協議格式

  數據幀的形式取決于網絡的形式。幀究竟屬于哪種類型,完全取決于subtype(子類型)位,而與其他位是否出現在幀中無關

數據幀的形式取決于網絡的形式。幀究竟屬于哪種類型,完全取決于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),用于檢錯,注意是檢錯不是糾錯 

  0x3: 控制幀協議格式

  (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),用于檢錯,注意是檢錯不是糾錯

  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加密的連接過程

  這兩種連接交互過程原理上和無加密方式(開放系統方式)相同,感興趣的朋友可以使用wireshark進行抓包實驗

   參考

  Wireshark 802.11 Display Filter Field Reference : http://www.willhackforsushi.com/papers/80211_Pocket_Reference_Guide.pdf

  快速讀懂無線安全 : http://www.freebuf.com/articles/wireless/112221.html#

  802.11協議幀格式、Wi-Fi連接交互過程、無線破解入門研究 : http://www.cnblogs.com/LittleHann/p/3700357.html

廈門點燃未來網絡科技有限公司, 是廈門最好的微信應用, 小程序, 微信網站, 公眾號開發公司


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()