精述wifi、zigbee在鏈路層的安全原理:CCM模式

一.前言

物聯網及無線傳感器網絡的特色都爲低帶寬,節點的存儲空間、計算性能、能量供應都較低在鏈路層中,業界主流的協議包括Wi-fi(IEEE 802.11),zigbee(IEEE 802.15.4)和藍牙(IEEE 802.15.1)。
Wi-fi和zigbee的安全機制我已經在以前的一篇博客中有較詳細介紹,這兩種協議在鏈路層都是基於CCM機制作擴展,Wi-fi稱爲CCMP,zigbee成爲CCM*。但總歸CCM機制是這兩種協議鏈路層安全的主體部分。算法

然而CCM這個英文縮寫的全稱還比較繞,理解起來比較麻煩。
CCM的全稱是Counter mode with CBC-MAC,而CBC-MAC的全稱又是Cipher Block Chain-Message Authentication Code mode。。。
但總之,簡單地說:
CCM模式由Counter mode(計數器模式)和CBC-MAC mode兩種模式組成,其中Counter mode主要功能爲加密,CBC-MAC主要功能爲利用MAC對消息進行驗證。(注意:此處的MAC並不是平時說的網卡地址,而是消息驗證碼)安全

下面咱們就來深刻鑽研下CCM究竟是個什麼樣的存在。首先在第二部分介紹MAC,而後在第三部分介紹counter mode 和 CBC mode,最後在第四部分作總結。網絡

二.MAC(Message Authentication Code)的機制及做用

MAC的機制:
通訊雙方互相約定一個對稱祕鑰s,發送方在要發送明文m尾部串接加上s造成總體(m+s),而後對總體利用hash函數造成摘要H(m+s),並放在原發送明文尾部造成總體(m,H(m+s))發送給接收方。
接收方收到消息(m,x)後,先把m和雙方約定好的對稱祕鑰s串接並造成摘要H(m+s),再把此摘要和x進行比較。若相等,則消息的完整性獲得驗證;若否,則說明消息在傳輸過程當中遭到破壞,好比中間人攻擊(如篡改、僞造等)。函數

但有一個問題是MAC是否起到了對發送方的身份驗證的做用?
在wikiPedia上,介紹MAC提供了身份驗證機制,在tinySec的論文中也不少次提到利用MAC機制實現身份驗證。
我認爲MAC確定實現了對傳輸信息的完整性驗證(即驗證消息在傳輸過程當中沒有遭到破壞);而後,鑑於通訊雙方確實提早約定好了對稱祕鑰,MAC的產生也是須要用到此祕鑰的,因此也可認爲MAC是提供了對發送方的身份驗證。由於只有想要通訊的人才擁有此對稱密鑰。
(固然若是攻擊人得到了此對稱祕鑰,而後本身僞造消息造成MAC碼,那接收方應該是判斷不出來的。但這是另外一回事了)性能

三.CTR、CBC、CBC-MAC及分塊密碼的工做模式

**具體到Counter Mode(CTR,計數器模式)和CBC Mode(密碼塊連接模式),這兩種都是塊密碼(block cipher)中對密碼塊的不一樣處理方式。
首先,對稱祕鑰根據對原文的加密方式的不一樣,分爲流密碼(stream cipher)和塊密碼兩種。**
**塊密碼的工做機制爲把原文分紅多個等長的模塊(block)(一般爲8或16字節),而後使用肯定的算法和對稱密鑰對每組分別加密解密。DES,AES,RC5都是分塊加密方式。
但須要加密的原文一般遠長於16字節,因此使用k字節的分塊加密方式須要把原文分紅相等的n個k字節塊,而後對每一塊使用特別的方式進行替代、變化等多種迭代處理方式達到加密效果。對每一個塊的加密方式有不少種,如CTR,CBC,OFB,ECB等。其中,CBC是最爲經常使用的工做模式,CTR很適合運用於多處理器的硬件上**加密

CTR模式爲將塊密碼變爲流密碼,它經過遞增一個加密計數器以產生連續的密鑰流,其中,計數器能夠是任意保證長時間不產生重複輸出的函數,但使用一個普通的計數器是最簡單和最多見的作法,CTR的加解密過程分別如圖1,2所示。
CTR容許在解密時進行隨機存取,而且加密和解密過程都可以進行並行處理,這是它很適合運用於多處理器硬件上的緣由。spa

圖片1.png

圖1     CTR的加密過程

圖片2.png

圖2     CTR的解密過程

而在CBC模式中,每一個明文塊先與前一個密文塊進行異或操做後,再進行加密。在這種方法中,每一個密文塊都依賴於它前面的全部明文塊,明文中的微小改變會致使其後的所有密文塊發生改變。同時,爲了保證每條消息的惟一性,在第一個塊中須要使用初始化向量。
它的主要缺點在於加密過程是串行的,沒法被並行化,並且消息必須被填充到塊大小的整數倍。解決後一個問題的一種方法是利用密文竊取。
可是CBC模式在解密時是能夠並行化的。密文中一位的改變只會致使其對應的明文塊徹底改變和下一個明文塊中對應位發生改變,不會影響到其它明文的內容,從兩個鄰接的密文塊中便可獲得一個明文塊。code

圖片3.png

圖3     CBC的加密過程

圖片4.png

圖4     CBC的解密過程

四.總結

CCM機制是保障Wifi和zigbee在鏈路層安全的關鍵。
CCM機制由counter mode 和 CBC-MAC mode兩部分組成。這兩種模式都是分組加密中對分組塊的不一樣處理方式。圖片

counter mode的做用爲對傳輸數據進行加密,以保障數據在傳輸過程當中不會被惡意攻擊者竊聽;
CBC-MAC mode的做用爲對傳輸數據進行驗證,以保障所接收數據確實來源於通訊的另外一方以及檢驗數據在傳輸過程當中是否有丟失。
此處的MAC爲message authentication code(消息驗證碼),並不是咱們平時說的MAC地址(鏈路層網卡地址,media access control)。ip

具體機制能夠看第二部分和第三部分。

(參考資料:虞志飛,ZigBee 技術及其安全性研究,計算機技術與發展,2008 年8 月;任秀麗,ZigBee技術的無線傳感器網絡的安全性研究,儀器儀表學報,2007年12月Wikipedia)

相關文章
相關標籤/搜索