<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                由圖6-7所示的RP協議交互流程可知,Discovery Phase階段之后,STA和AP將通過EAP包交換來完成安全信息協商。WSC規范利用EAP的擴展功能新定義了一種EAP算法,即EAPWSC。EAP-WSC的包格式如圖6-22所示。 :-: ![](https://box.kancloud.cn/dd718e1e9dee1b5819bed797432690ee_1192x490.jpg) 圖6-22 EAP-WSC包格式 對于EAP-WSC來說,圖6-22中各字段取值情況如下。 * Type取值為254,代表EAP包中的內容由Vendor定義。 * 對于WSC來說,Vendor-Id取值為0x00372a,Vendor Type取值為0x0000-0001(WFA中,該值表示Simple-Config)。 * Op-Code及以后的內容由EAP-WSC定義,其取值有六種情況(見表6-5)。 * Flags包含兩個標志位,一個是MF標志位(More Fragments,取值為0x01,代表EAP分片包),另一個是LF標志位(Length Field,值為0x02)。 * 如果LF標志位被設置,則Message Length字段存在。該字段表示Message data的長度。 * Message data為WSC定義的Attribute。和WSC IE類似,WSC規范對不同EAP-WSC包攜帶的Attribute有嚴格要求。 表6-5所示為EAP-WSC Op-Code的取值。 :-: ![](https://box.kancloud.cn/0360ba4a62bd0ecc0c33cab794237fb6_1267x593.jpg) 表6-5 EAP-WSC Op-Code取值說明 EAP-WSC和第4章介紹的4-Way Handshake類似,STA和AP雙方要派生一些Key用于加密所傳輸的信息。 在STA和AP雙方開展EAP-WSC流程前,AP需要確定STA的Identity以及使用的身份驗證算法。該過程涉及三次EAP包交換(參考圖3-38)。這三次包交換的內容分別如下。 * AP發送EAP-Request/Identity以確定STA的ID。 * 對于打算使用WSC認證方法的STA來說,它需要在回復的EAP-Response/Identity包中設置Identity為"WFA-SimpleConfig-Enrollee-1-0"。 * AP確定STA的Identity為"WFA-SimpleConfig-Enrollee-1-0"后,將發送EAPRequest/WSC_Start包以啟動EAP-WSC認證流程。這個流程講涉及M1~M8相關的知識。 下面我們將結合實例來介紹。 >[info] 注意 這些知識也是后續分析代碼時的理論依據,請讀者務必認真體會。 **1、M1和M2** M1消息由STA發送給AP。圖6-23所示為Galaxy Note 2發送的M1消息。 如前文所述,EAP-WSC消息的組成結構也是一個一個Attribute。圖6-23所示的大部分Attribute在前文都已見過了,此處僅介紹黑框中所列的幾個Attribute。 :-: ![](https://box.kancloud.cn/7b6d3fe92d5331b3e92c6ceac53dc7ae_620x678.jpg) 圖6-23 M1消息示例 * Message Type:代表Enrollee和Registrar發送的消息類型,其可取值從0x01(代表Beacon幀)到0x0F(代表WSC_DONE)。該屬性一般只在EAP-WSC幀中用到。對于M1消息而言,其Message Type取值為0x04。 * UUID-E:代表STA的UUID。MAC Address代表STA的MAC地址。 * Enrollee Nonce:代表STA產生的一串隨機數,它用于后續的密鑰派生等工作。 * Public Key:STA和AP的密鑰派生源頭也是PMK。不過和第4章介紹的PSK不同的是,在WSC PIN法中并沒有使用PSK(PIN碼的作用不是PSK)。雙方采用了Diffie-Hellman[6](D-H)密鑰交換算法。該算法使得通信的雙方可以用這個方法確定對稱密鑰。注意,D-H算法只能用于密鑰的交換,而不能進行消息的加密和解密。通信雙方確定要用的密鑰后,要使用其他對稱密 * 鑰操作加密算法以加密和解密消息。Public Key屬性包含了Enrollee的D-H Key值。 * Authentication Type Flags和Encryption Type Flags:表示Enrollee支持的身份驗證算法以及加密算法類型。 * Connection Type Flags:代表設備支持的802.11網絡類型,值0x01代表ESS,值0x02代表IBSS。 圖6-24所示為Galaxy Note 2中Authentication Type Flags和Encryption Type Flags兩個屬性的取值情況。 :-: ![](https://box.kancloud.cn/3b0b862f049da615669295d81bc01f73_1199x233.jpg) 圖6-24 Authentication/Encryption Type Flags取值示例 圖6-24左圖所示為Authentication Type Flags的取值情況。其中,"WPA"和"WPA2"標志位是"WPA-Enterprise"以及"WPA2-Enterprise"之意。 AP收到并處理M1后,將回復M2。M2的內容如圖6-25所示。 :-: ![](https://box.kancloud.cn/dde233bb19176e9b2c24bd3d6e7b24fa_600x693.jpg) 圖6-25 M2消息示例 圖6-25中,AP的M2將攜帶以下信息。 * Registrar Nonce:Registrar生成的隨機數。 * Public Key:D-H算法中,Registrar一方的D-H Key值。 * Authenticator:由HMAC-SHA-256及AuthKey(詳情見下文)算法得來一個256位的二進制串。注意,Authenticator屬性只包含其中的前64位二進制內容。 >[info] 提示 AP發送M2之前,會根據Enrollee Nonce、Enrollee MAC以及Registrar Nonce并通過DH算法計算一個KDK(Key Derivation Key),KDK密鑰用于其他三種Key派生,這三種Key分別用于加密RP協議中的一些屬性的AuthKey(256位)、加密Nonce和ConfigData(即一些安全配置信息)的KeyWrapKey(128位)以及派生其他用途Key的EMSK(Extended Master Session Key)。 **2、M3和M4** STA處理完M2消息后,將回復M3消息,其內容如圖6-26所示。 :-: ![](https://box.kancloud.cn/91c247f7850c85f45a1013b6b8e9d351_873x667.jpg) 圖6-26 M3消息示例 圖6-26中: * Registrar Nonce值來源于M2的Registrar Nonce屬性。 * E Hash1和E Hash2屬性的計算比較復雜,詳情見下文。 * Authenticator是STA利用AuthKey(STA收到M2的Registrar Nonce后也將計算一個AuthKey)計算出來的一串二進制位。 根據WSC規范,E Hash1和E Hash2的計算過程如下。 1. 利用AuthKey和PIN碼利用HMAC算法分別生成兩個PSK。其中,PSK1由PIN碼前半部分生成,PSK2由PIN碼后半部分生成。 2. 利用AuthKey對兩個新隨機數128 Nonce進行加密,以得到E-S1和E-S2。 3. 利用HMAC算法及AuthenKey分別對(E-S1、PSK1、STA的D-H Key和AP的D-H Key)計算得到E Hash1。E Hash2則由E-S2、PSK2、STA的D-H Key和AP的D-H Key計算而來。 AP收到并處理完M3后將回復M4,其內容如圖6-27所示。 :-: ![](https://box.kancloud.cn/324e7e73ffd1f072e39635c58bc90305_840x561.jpg) 圖6-27 M4消息示例 由圖6-27可知: * AP將計算R Hash1和R Hash2。其使用的PIN碼為用戶通過AP設置界面輸入的PIN碼。很顯然,如果AP設置了錯誤PIN碼的話,STA在比較R Hash 1/2和E Hash 1/2時就會發現二者不一致,從而可終止EAP-WSC流程。 * Encrypted Settings為AP利用KeyWrapKey加密R-S1得到的數據。 **3、M5和M6** M5消息和M4消息類似,如圖6-28所示。 :-: ![](https://box.kancloud.cn/f2fd897bbb2ba5eef2dc1a750d9b68fd_845x473.jpg) 圖6-28 M5消息示例 圖6-28所示的Encrypted Settings為STA利用KeyWrapKey加密E-S1得來。 M6消息如圖6-29所示。 :-: ![](https://box.kancloud.cn/2c91e60d1cd26b52fc444eeabcb27c7f_837x391.jpg) 圖6-29 M6消息示例 圖6-29所示的M6消息中,Encryped Settings為AP利用KeyWrapKey加密R-S2而來。 **4、M7和M8** 由M5、M6的內容可知,STA的M7將發送利用KeyWrapKey加密E-S2的信息給AP以進行驗證,如圖6-30所示。 :-: ![](https://box.kancloud.cn/6457f15d5afba8c862b28f4358fd6a72_840x477.jpg) 圖6-30 M7消息示例 當AP確定M7消息正確無誤后,它將發送M8消息,而M8將攜帶至關重要的安全配置信息,如圖6-31所示。 :-: ![](https://box.kancloud.cn/19895ba3edab961f600200327c7c16d1_847x305.jpg) 圖6-31 M8消息示例 圖6-31中,安全配置信息保存在Encrypted Settings中,它由KeyWrapKey加密。WSC規范規定,當Enrollee為STA時(對Registrar來說,AP也是Enrollee),Encrypted Settings將包含若干屬性,其中最重要的就是Credential屬性集合,該屬性集的內容如表6-6所示。 :-: ![](https://box.kancloud.cn/433eac38b405140b2679d5c948d0c8a5_1264x407.jpg) 表6-6 Credential屬性集合的內容 由表6-6可知,當STA收到M8并解密其中的Credential屬性集合后,將得到AP的安全設置信息。很顯然,如果不使用WSC,用戶需要手動設置這些信息。使用了WSC后,這些信息將在M8中由AP發送給STA。 接下來,STA就可以利用這些信息加入AP對應的目標無線網絡了。 **5、EAP-WSC總結** EAP-WSC M1~M8一共涉及8次EAP包交換,每次幀交換的內容如圖6-32所示。 :-: ![](https://box.kancloud.cn/88fc2cab0b3d0b269bf8a335ef530cd2_599x447.jpg) 圖6-32 EAP-WSC幀交換內容 圖6-32對前面幾小節所提到的EAP-WSC幀內容進行了簡化,其中: * Description代表UUID、Manufacturer、MAC地址等信息。 * PKE和PKR代表D-H算法的Enrollee方的Key以及Registrar方的Key。 * M*x代表沒有包含HMAC-SHA-256結果的第X次消息內容。 * HMACAuthenKey代表利用AuthenKey和HMAC-SHA-256算法進行計算。 * ENCKeyWrapKey代表利用KeyWrapKey進行加密。 * “[…]”中的內容為可選信息。 * N1和N2分別代表Enrollee和Registrar的Nonce。 STA處理完M8消息后,將回復WSC_DONE消息給AP,表示自己已經成功處理M8消息。接下來的工作就如圖6-7所示一樣。 * AP發送EAP-FAIL以及Deauthentication幀給STA。STA收到該幀后將取消和AP的關聯。 * STA將重新掃描周圍的無線網絡。由于STA以及獲取了AP的配置信息,所以它可以利用這些信息加入AP所在的無線網絡。 以上對WSC理論知識進行了一番介紹。其中有一些知識點請讀者注意。 * WSC的組成結構。規范中定義了AP、Enrollee和Registrar三大組件。日常生活中比較常見的實體是作為Enrollee的智能手機,以及集成了AP和Registrar功能的無線路由器(StandaloneAP)。 * WSC拓展了802.11 IE的內容,而WSC IE包含了由WSC定義的不同Attribute。了解這些Attribute的作用對于理解WSC非常重要。另外,規范還對管理幀包含什么樣的Attribute有嚴格規定。 * STA和Standalone AP使用RP協議交互的流程如圖6-7所示。另外,請讀者掌握EAP-WSCM1到M8幀包含的屬性及作用。 >[info] 注意 完整的WSC規范所包含的知識點比本節闡述得要多。在此,建議讀者先學完本章內容后再去研讀WSC規范。 下面來看Android中WSC相關的實現代碼。如果讀者真正掌握本節所示知識點的話,下面一節的學習過程將非常輕松。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看