1. 程式人生 > >wifi網路接入原理(中)——認證Authentication

wifi網路接入原理(中)——認證Authentication

轉載請註明出處:http://blog.csdn.net/Righthek 謝謝!        

        還是用手機來舉例,掃描完成後,我們會選擇想要加入的WIFI熱點。此時,大部分都會彈出一個輸入密碼的視窗,當然也有不用輸入密碼的。這個過程叫做:認證(Authentication)。

        有時覺得搞技術的真累,當我們辛辛苦苦地在網上找資料學習新技術時,當我們漸漸掌握這門技術之後,才發現該技術對自己來說是新的,但是對現時來說,已經過時並且被遺棄了!所以說……Shit!

        由於網上大量講解WIFI技術的資料在認證方面都是側重講WEP加密方式。但是,時至今日,WEP已經屬於石器時代的技術了,而且破解方法滿天飛。雖然現在無線路由器都保留WEP加密方式,但是當你進行設定時,它會用紅字提醒你:

        注意:您選擇的WEP加密經常在老的無線網絡卡上使用,新的802.11n不支援此加密方式。所以,如果您選擇了此加密方式,路由器可能工作在較低的傳輸速率上。建議使用WPA2-PSK等級的AES加密。

        看到沒?現在的802.11n協議已經不支援WEP加密方式了,更何況最新的802.11ac。所以本文側重講解現當代正在使用的WPA/WPA2加密方式,特別是傾向於家庭網路的WPA-PSK/WPA2-PSK。

        無線網路所使用的媒介是經過特殊編碼與調製過的無線電波鏈路。它是眾所周知的開放標準,只要對無線傳輸有所研究和了解的人,都可以在無線覆蓋範圍內傳送和接收訊號。因此對資料的攔劫和非法灌注是多麼的簡單!

        由於無線網路的最大缺陷就是安全性,進行身份認證是必須的,同時認證的連線工作也必須予以加密,以防未經授權的使用者訪問。

        早期的IEEE802.11定義了兩種認證方式:

        (1)開放系統認證(OpenSystem authentication);

        (2)共享金鑰認證(SharedKey authentication)。

        開放系統認證是IEEE802.11預設的認證方式,實質上並沒有做認證。連線無線網路時,基站並沒有驗證工作站的真實身份。認證過程由以下兩個步驟組成:第一,工作站傳送身份宣告和認證請求;第二,基站應答認證結果,如果返回的結果是“successful”,表示兩者已相互認證成功。

        共享金鑰認證依賴於WEP(Wired Equivalent Privacy,有線等效加密)機制,而上文已經提到WEP漸漸被淘汰,我們就不講解了,接下來側重講解與我們家庭無線網路息息相關的WPA-PSK/WPA2-PSK認證機制。當我們進入無線路由器設定介面,開啟無線安全設定,就會看到以下資訊,如圖1。WPA(Wi-Fi Protected Access)是WIFI聯盟制定的安全性標準,WPA2是第二個版本。PSK(PreShared Key)叫做預共享金鑰。WPA-PSK/WPA2-PSK主要是針對個人或家庭網路等,對安全性要求不是很高的使用者。而WPA /WPA2是針對企業的,對安全性要求很高的使用者,在WPA/WPA2選項中,大家可以看到它比WPA-PSK/WPA2-PSK多了一個Radius伺服器,這個就是認證伺服器。而對我們家庭網路來說,適合選擇WPA-PSK/WPA2-PSK選項,因為我們不需要認證伺服器。現有我們來詳細分析WPA-PSK/WPA2-PSK認證機制。


圖1 WPA-PSK/WPA2-PSK、WPA/WPA2

        1、WPA-PSK

        WPA-PSK(Wi-Fi ProtectedAccess,Wi-Fi保護訪問)是WiFi聯盟推出的標準,它是為相容原有的WEP硬體產品,所以它採用的模式是:

WPA-PSK = PSK + TKIP + MIC

        PSK:PreShared Key,預共享金鑰。

        TKIP:Temporal KeyIntegrity Protocol,臨時金鑰完整性協議。

        MIC:Message IntegrityCode,訊息完整性校驗碼。

        TKIP的開發目的是為了提高原有的基於WEP硬體的安全性,因此它和WEP一樣都是採RC4加密演算法,同時保留了WEP的基本結構和操作方式。TKIP是一種過渡的加密協議,現已被證明安全性不高。因此,我們就不去詳細的講解了。

        2、WPA2-PSK

        WPA2是在802.11i頒佈之後,WIFI聯盟隨即推出的最新無線安全標準,它遵循802.11i標準,以下是它採用的模式:

WPA2-PSK= PSK + AES + CCMP

        PSK:PreShared Key,預共享金鑰,它是一種802.11身份驗證方式,以預先設定好的靜態金鑰進行身份驗證,此金鑰必須手動進行傳遞,即是我們的手機連線WIFI熱點時需要輸入的密碼。

        AES:Advanced EncryptionStandard,高階加密標準。AES是美國NIST制定的替代DES的分組加密演算法。AES具有優秀的金鑰擴充套件方案,靈活的金鑰生成演算法。演算法對記憶體要求極低,即使在限制較大的環境中也能獲得很好的效能。分組和金鑰被設計成可以在三種長度中自由選擇的形式,AES具有128、192、256位的金鑰。802.11規定CCMP中的AES使用的是128位金鑰,它的加密塊大小也是128位。

        CCMP:Counter modewith Cipher-block chaining Message authentication code Protocol,計數器模式及密碼塊鏈訊息認證碼協議。它是基於高階加密標準(AES)的CCM(CTR with CBC-MAC)模式。CCM是一種通用的模式,它可以使用在任何成塊的加密演算法中。CCM模式使用CTR(Counter Mode)提供資料保密,並採用密碼塊鏈資訊認證碼(Cipher-Block Chaining with Message Authentication Code,CBC-MAC)來提供資料認證和完整性服務。

        CCMP加密時由以下四個輸入項組成:

        (1)明文(Plaintext MPDU);

        (2)臨時金鑰(TK);

        (3)封包編號(PN);

        (4)金鑰識別符號(KeyId);

        CCMP的加密和解密過程如圖2、圖3。


圖2  CCMP加密過程


圖3  CCMP解密過程

        下面讓我們來看看CCMP幀封裝格式,如圖4。MAC Header是明文(Plaintext MPDU)原封不動傳遞過來的,該MAC Header符合802.11MAC標準幀格式。CCMP擴充套件了原始的MPDU長度到16個octet(注:在網路術語中,用octet表示8 bits),包括8 octets的CCMP頭部和8 octets的MIC。CCMP頭部由PN、ExtIV、KeyID組成。PN是48位的代表6個octets的陣列,在PN中,PN5是最重要的的,PN0是重要性最低的。Data(PDU)是我們需要傳輸的資料。MIC(Message Integrity Code)是訊息完整性檢驗碼,它是針對一組欲保護資料計算出來的雜湊值,用以防止資料遭人篡改。FCS(Frame Check Sequence)是幀檢驗序列,處於802.11網路幀的尾部,用來偵測資料是否損壞,若接收端所計算出的FCS與幀中記載的FCS值不同,則可推斷出該幀已經損壞並將其丟棄。


圖4  CCMP幀封裝格式



轉載請註明出處:http://blog.csdn.net/Righthek 謝謝!

轉載請註明出處:http://blog.csdn.net/Righthek 謝謝!        

        還是用手機來舉例,掃描完成後,我們會選擇想要加入的WIFI熱點。此時,大部分都會彈出一個輸入密碼的視窗,當然也有不用輸入密碼的。這個過程叫做:認證(Authentication)。

        有時覺得搞技術的真累,當我們辛辛苦苦地在網上找資料學習新技術時,當我們漸漸掌握這門技術之後,才發現該技術對自己來說是新的,但是對現時來說,已經過時並且被遺棄了!所以說……Shit!

        由於網上大量講解WIFI技術的資料在認證方面都是側重講WEP加密方式。但是,時至今日,WEP已經屬於石器時代的技術了,而且破解方法滿天飛。雖然現在無線路由器都保留WEP加密方式,但是當你進行設定時,它會用紅字提醒你:

        注意:您選擇的WEP加密經常在老的無線網絡卡上使用,新的802.11n不支援此加密方式。所以,如果您選擇了此加密方式,路由器可能工作在較低的傳輸速率上。建議使用WPA2-PSK等級的AES加密。

        看到沒?現在的802.11n協議已經不支援WEP加密方式了,更何況最新的802.11ac。所以本文側重講解現當代正在使用的WPA/WPA2加密方式,特別是傾向於家庭網路的WPA-PSK/WPA2-PSK。

        無線網路所使用的媒介是經過特殊編碼與調製過的無線電波鏈路。它是眾所周知的開放標準,只要對無線傳輸有所研究和了解的人,都可以在無線覆蓋範圍內傳送和接收訊號。因此對資料的攔劫和非法灌注是多麼的簡單!

        由於無線網路的最大缺陷就是安全性,進行身份認證是必須的,同時認證的連線工作也必須予以加密,以防未經授權的使用者訪問。

        早期的IEEE802.11定義了兩種認證方式:

        (1)開放系統認證(OpenSystem authentication);

        (2)共享金鑰認證(SharedKey authentication)。

        開放系統認證是IEEE802.11預設的認證方式,實質上並沒有做認證。連線無線網路時,基站並沒有驗證工作站的真實身份。認證過程由以下兩個步驟組成:第一,工作站傳送身份宣告和認證請求;第二,基站應答認證結果,如果返回的結果是“successful”,表示兩者已相互認證成功。

        共享金鑰認證依賴於WEP(Wired Equivalent Privacy,有線等效加密)機制,而上文已經提到WEP漸漸被淘汰,我們就不講解了,接下來側重講解與我們家庭無線網路息息相關的WPA-PSK/WPA2-PSK認證機制。當我們進入無線路由器設定介面,開啟無線安全設定,就會看到以下資訊,如圖1。WPA(Wi-Fi Protected Access)是WIFI聯盟制定的安全性標準,WPA2是第二個版本。PSK(PreShared Key)叫做預共享金鑰。WPA-PSK/WPA2-PSK主要是針對個人或家庭網路等,對安全性要求不是很高的使用者。而WPA /WPA2是針對企業的,對安全性要求很高的使用者,在WPA/WPA2選項中,大家可以看到它比WPA-PSK/WPA2-PSK多了一個Radius伺服器,這個就是認證伺服器。而對我們家庭網路來說,適合選擇WPA-PSK/WPA2-PSK選項,因為我們不需要認證伺服器。現有我們來詳細分析WPA-PSK/WPA2-PSK認證機制。


圖1 WPA-PSK/WPA2-PSK、WPA/WPA2

        1、WPA-PSK

        WPA-PSK(Wi-Fi ProtectedAccess,Wi-Fi保護訪問)是WiFi聯盟推出的標準,它是為相容原有的WEP硬體產品,所以它採用的模式是:

WPA-PSK = PSK + TKIP + MIC

        PSK:PreShared Key,預共享金鑰。

        TKIP:Temporal KeyIntegrity Protocol,臨時金鑰完整性協議。

        MIC:Message IntegrityCode,訊息完整性校驗碼。

        TKIP的開發目的是為了提高原有的基於WEP硬體的安全性,因此它和WEP一樣都是採RC4加密演算法,同時保留了WEP的基本結構和操作方式。TKIP是一種過渡的加密協議,現已被證明安全性不高。因此,我們就不去詳細的講解了。

        2、WPA2-PSK

        WPA2是在802.11i頒佈之後,WIFI聯盟隨即推出的最新無線安全標準,它遵循802.11i標準,以下是它採用的模式:

WPA2-PSK= PSK + AES + CCMP

        PSK:PreShared Key,預共享金鑰,它是一種802.11身份驗證方式,以預先設定好的靜態金鑰進行身份驗證,此金鑰必須手動進行傳遞,即是我們的手機連線WIFI熱點時需要輸入的密碼。

        AES:Advanced EncryptionStandard,高階加密標準。AES是美國NIST制定的替代DES的分組加密演算法。AES具有優秀的金鑰擴充套件方案,靈活的金鑰生成演算法。演算法對記憶體要求極低,即使在限制較大的環境中也能獲得很好的效能。分組和金鑰被設計成可以在三種長度中自由選擇的形式,AES具有128、192、256位的金鑰。802.11規定CCMP中的AES使用的是128位金鑰,它的加密塊大小也是128位。

        CCMP:Counter modewith Cipher-block chaining Message authentication code Protocol,計數器模式及密碼塊鏈訊息認證碼協議。它是基於高階加密標準(AES)的CCM(CTR with CBC-MAC)模式。CCM是一種通用的模式,它可以使用在任何成塊的加密演算法中。CCM模式使用CTR(Counter Mode)提供資料保密,並採用密碼塊鏈資訊認證碼(Cipher-Block Chaining with Message Authentication Code,CBC-MAC)來提供資料認證和完整性服務。

        CCMP加密時由以下四個輸入項組成:

        (1)明文(Plaintext MPDU);

        (2)臨時金鑰(TK);

        (3)封包編號(PN);

        (4)金鑰識別符號(KeyId);

        CCMP的加密和解密過程如圖2、圖3。


圖2  CCMP加密過程


圖3  CCMP解密過程

        下面讓我們來看看CCMP幀封裝格式,如圖4。MAC Header是明文(Plaintext MPDU)原封不動傳遞過來的,該MAC Header符合802.11MAC標準幀格式。CCMP擴充套件了原始的MPDU長度到16個octet(注:在網路術語中,用octet表示8 bits),包括8 octets的CCMP頭部和8 octets的MIC。CCMP頭部由PN、ExtIV、KeyID組成。PN是48位的代表6個octets的陣列,在PN中,PN5是最重要的的,PN0是重要性最低的。Data(PDU)是我們需要傳輸的資料。MIC(Message Integrity Code)是訊息完整性檢驗碼,它是針對一組欲保護資料計算出來的雜湊值,用以防止資料遭人篡改。FCS(Frame Check Sequence)是幀檢驗序列,處於802.11網路幀的尾部,用來偵測資料是否損壞,若接收端所計算出的FCS與幀中記載的FCS值不同,則可推斷出該幀已經損壞並將其丟棄。


圖4  CCMP幀封裝格式



轉載請註明出處:http://blog.csdn.net/Righthek 謝謝!