無線電傳輸的資料,最怕就是被別人竊取,甚至是偽造再重新發送。防止竊取的做法就是資料加密(Encryption),而防止別人假造資料的方式就是認證(Authentication)。

<加密(Encryption)>

Zigbee支援先進加密標準 AES (Advanced Encryption Standard),AES是DES的下一代演算法,用來保護下一個世代(30年)的資料安全。AES屬於對稱式編加密的一種,所謂對稱式加密就是說要加密與解密適用同一個密碼。你拿到密碼你就可以用來做加密以及解密,你若要換密碼,加密端與解密端需要一併更換。他的流程是這樣的,假設你有一段訊息,稱為明文(plaintext),你想要用一個金鑰(key),把明文加密成,密文(ciphertext)。然後用密文在無線電上傳輸,這樣即使截取到的人,截到的也是密文,看不懂內容,這樣就達到加密保護的作用了。收到密文的一端,再用一樣的金鑰,把密文解成明文,這樣就完成整個通訊程序了。由此可以看的出來,金鑰,是最重要的事情,一旦流出去就毀了,所有的秘密也都守在這一個點上,你也可以說,當金鑰越長安全性也就越高,目前Zigbee只支援到AES 128,也就是每次加密的單位為128 bit,我猜是由於移動設備的運算能力關係,才沒有用目前安全性較高的AES256。

整個的操作上使用兩種key,

1. link key: 在兩台device間分享。

2. network key: 分享在整個網路上。

設計上有一台特殊的ZigBee device稱為 信任中心(trust center),用來發布link key以及network key。這樣的機器在整個網路上只能有一台,由coordinator決定其位址,存放在APS IB的屬性apsTrustCenterAddress內部。

已經了解到加密與解密都要用到同一把金鑰,有三種device獲取金鑰的方法,這裡指的是link key,

1. 預載 (preinstallation): 由廠商預載設定好的key。

2. 傳送金鑰 (key transport): device去問trust center而得到key。

3. 確立金鑰 (key establishment): 在兩台device內創立一個不溝通的random key,倚靠的是一個預載的common key。

 

<認證(Authentication)>

這裡又分兩種,資料認證以及機器認證

<機器認證,Device Authentication>

發生於一台device想要加入一個有安全性的網路,當要求加入時,trust center會同意或拒絕他的加入。

<資料認證,Data Authentication>

目的是確保資料在傳送過程中沒有被竄改,做法是傳輸的框架使用 訊息完整性檢察碼MIC (Message Integrity Code)。MIC的位數越多,資料完整性的認證也就越好,目前支援32 bit, 64 bit and 128 bit的MIC碼。

創作者介紹
創作者 oldmonkey的部落格 的頭像
oldmonkey

oldmonkey的部落格

oldmonkey 發表在 痞客邦 留言(0) 人氣( 1340 )