在通信階段使用NetKey,AppKey和DevKey簇爆。
Network Key:用來在Network Layer加密通信數(shù)據(jù)癞松。NetKey是16字節(jié)爽撒。NetKey使用隨機(jī)數(shù)產(chǎn)生方式,避免沖突响蓉。NetKey屬于Configuration Client維護(hù)的NetKey List(12bits NetKey Index)硕勿,可以多達(dá)4096個(gè)NetKey〔扪可以通過Config NetKey Add的Message來給Node分配NetKey首尼。
Application Key:用來在Upper Transport Layer加密通信數(shù)據(jù)挑庶。在Provisioning結(jié)束后言秸,進(jìn)入Configuration過程,添加AppKey并且把AppKey和具體的Model綁定迎捺。一個(gè)Model可以有251個(gè)AppKey举畸。APPKey是16字節(jié)。AppKey使用隨機(jī)數(shù)產(chǎn)生方式凳枝,避免沖突抄沮。APPKey屬于Configuration Client維護(hù)的APPKey List(12bits AppKey Index),可以多達(dá)4096個(gè)AppKey岖瑰∨崖颍可以通過Config AppKey Add的Message來給Node分配AppKey。
NetKey Index(12bits)+AppKey Index(12bits)=24bits蹋订,使用3個(gè)字節(jié)表達(dá)率挣。
Device Key:Configuration Client(比如Provisioner)通過這個(gè)密鑰來管理Node,同時(shí)發(fā)布更新的網(wǎng)絡(luò)信息和Application Key露戒。
Configuration message通過這個(gè)Key來加密信息椒功。
一個(gè)節(jié)點(diǎn)可以有一個(gè)Device Key,多個(gè)AppKey智什,多個(gè)NetKey动漾,如下圖所示:
Session Key:Provisioning過程使用到這個(gè)Key,在Provisioning的交換公開密鑰獲得ECDHSecret以及認(rèn)證通過后荠锭,通過k1算法獲得Session
Key旱眯。然后,Provisioner和Device用這個(gè)Session Key交換Provisioning Data证九。