ZIGBEE学习之---ZSTACK1.4.3修改密钥(CC2430)
10.安全(Security)
10.1?概述(Overview)
ZigBee security is built with the AES blockcipher and the CCM mode of operation as the underlying security primitive。AES/CCM安全算法是ZigBee聯(lián)盟以外的研究人員發(fā)明的,并且廣泛應(yīng)用于其他通訊協(xié)議之中。
ZigBee提供如下的安全特性:
l??構(gòu)造安全 (Infrastructure security)
2? 網(wǎng)絡(luò)訪問(wèn)控制(Network access control)
3??應(yīng)用數(shù)據(jù)安全
10.2? 配置(Configuration)
為了擁有一個(gè)安全的網(wǎng)絡(luò),首先所有的設(shè)備鏡像的創(chuàng)建,必須將預(yù)處理標(biāo)志位SECURE都置為1。在文件“f8wConfig.cfg”文件中可以找到。
接下來(lái),必須選擇一個(gè)默認(rèn)的密碼。這個(gè)可以通過(guò)“f8wConfig.cfg”文件中的DEFAULT_KEY來(lái)設(shè)置。理論上,這個(gè)值設(shè)置為一個(gè)隨機(jī)的128位數(shù)據(jù)。內(nèi)容如下,上電聯(lián)網(wǎng)依靠這個(gè)128位數(shù)值查找。
/* Default security key. 連網(wǎng)密鑰,從協(xié)調(diào)器下發(fā)或者同一配置成相同的值 受gPreConfigKeys變量控制*/
-DDEFAULT_KEY="{0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x00, 0x02, 0x04, 0x06, 0x08, 0x0A, 0x0C, 0x0D}"
這個(gè)默認(rèn)的密碼可以預(yù)先配置到網(wǎng)絡(luò)上的每個(gè)設(shè)備或者只配置到協(xié)調(diào)器上,然后分發(fā)給假如網(wǎng)絡(luò)的所有設(shè)備。這個(gè)可以通過(guò)文件“Z_Globals.c”文件的 gPreConfigKeys變量 選項(xiàng)來(lái)配置。如果這個(gè)值為真,那么默認(rèn)的密碼將被預(yù)先配置到每一個(gè)網(wǎng)絡(luò)設(shè)備上。如果這個(gè)值為假,那么默認(rèn)的密碼只需配置到協(xié)調(diào)器設(shè)備當(dāng)中。注意,在以后的場(chǎng)合,這個(gè)密碼將被分發(fā)到每一個(gè)加入網(wǎng)絡(luò)當(dāng)中的設(shè)備。因此,加入網(wǎng)絡(luò)期間成為“瞬間的弱點(diǎn)”,競(jìng)爭(zhēng)對(duì)手可以通過(guò)偵聽獲取密碼,從而降低了網(wǎng)絡(luò)的安全性能。
10.3?網(wǎng)絡(luò)訪問(wèn)控制(Network access control)
在一個(gè)安全的網(wǎng)絡(luò)中,當(dāng)一個(gè)設(shè)備加入網(wǎng)絡(luò)時(shí)會(huì)被告知一個(gè)信任中心(協(xié)調(diào)器)。協(xié)調(diào)器擁有允許設(shè)備保留在網(wǎng)絡(luò)或者拒絕網(wǎng)絡(luò)訪問(wèn)這個(gè)設(shè)備的選擇權(quán)。
信任中心可以通過(guò)任何邏輯方法決定一個(gè)設(shè)備是否允許進(jìn)入這個(gè)網(wǎng)絡(luò)中。其中一種就是信任中心只允許一個(gè)設(shè)備在很短的窗口時(shí)間加入網(wǎng)絡(luò)。這個(gè)是可能的,舉例說(shuō)明,如果一個(gè)信任中心設(shè)備有一個(gè)“push”按鍵。當(dāng)按鍵按下,在這個(gè)很短的時(shí)間窗口中,它允許任何設(shè)備加入網(wǎng)絡(luò)。否則所有的加入請(qǐng)求都將被拒絕。以他們的IEEE地址為基礎(chǔ),一個(gè)秒級(jí)的時(shí)間段將被配置在信任中心用來(lái)接收或者拒絕設(shè)備。
這種類型的策略可以通過(guò)修改ZDSeeMgr.c模塊中的ZDSecMgrDeviceValidate()函數(shù)來(lái)實(shí)現(xiàn)。
10.4?更新密碼(Key Updates)
信任中心可以根據(jù)自己的判斷更新通用網(wǎng)絡(luò)密碼。應(yīng)用程序開發(fā)人員修改網(wǎng)絡(luò)密碼更新策略。默認(rèn)信任中心執(zhí)行能夠用來(lái)符合開發(fā)人員的指定策略。一個(gè)樣例策略將按照一定的間隔周期更新網(wǎng)絡(luò)密碼。另外一種將根據(jù)用戶輸入來(lái)更新網(wǎng)絡(luò)密碼。ZDO安全管理器(ZDSecMgr.c)API通過(guò) “ZDSecMgrUpdateNwkKey”和“ZDSecMgrSwitchNwkKey”提供必要的功能。“ZDSecMgrUpdateNwkKey”允許信任中心向網(wǎng)絡(luò)中的所有設(shè)備廣播新的網(wǎng)絡(luò)密碼,此時(shí),新的網(wǎng)絡(luò)密碼將被作為替代密碼保存在所有網(wǎng)絡(luò)設(shè)備中。一旦信任中心調(diào)用“ZDSecMgrSwitchNwkKey”,一個(gè)全網(wǎng)范圍的廣播將觸發(fā)所有的網(wǎng)絡(luò)設(shè)備使用替代密碼。
10.5?快速參考(Quick Reference)
?修改密鑰,只改前3步就可以了。
使能安全(Enabling Security) | SECURE = 1(f8wConfig.cfg) |
使能預(yù)配置網(wǎng)絡(luò)密碼(Enabling Preconfig Network Key) | gPreConfigKeys = TRUE(Z_Globals.c) |
設(shè)置預(yù)配置網(wǎng)絡(luò)密碼(Setting Preconfig Network Key) | 設(shè)置defautlKey = {KEY}( nwk_globals.c) |
使能/禁止信任中心的加入許可功能(Enabling/Disabling joining permission on the Trust Center) | 調(diào)用函數(shù)ZDSecMgrPermitJoining()(ZDSecMgr.c) |
加入期間特定設(shè)備批準(zhǔn)(Specific device validation during joining) | 修改ZDSecMgrDeviceValidate(ZDSecMgr.c) |
網(wǎng)絡(luò)密碼更新(Network key updates) | 調(diào)用ZDSecMgrUpdateNwkKey()和ZDSecMgrSwitchNwkKey()函數(shù)(ZDSecMgr.c) |
?
總結(jié)
以上是生活随笔為你收集整理的ZIGBEE学习之---ZSTACK1.4.3修改密钥(CC2430)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 删除注册表之后office2013 无法
- 下一篇: QML窗口最大化、最小化、无边框