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