Page 338 - 《软件学报》2021年第8期
P. 338
2620 Journal of Software 软件学报 Vol.32, No.8, August 2021
发送δ=(Y,C)到 gw n ,进入第 5 步
5. gw n 校验身份:
h′ = H (ID ,PK 2 ,PK 1 )
i 0 gw i gw i gw i
R′ (SK 1 gw i + SK gw i ) Y′ = − 1 i
2
s = H ()R′ ⊕ C
2
if 请求来自设备 pid j :
h′ = H (T + PKT 1 ,PKT 2 , pid ) .
1 j j j
若 h′ H ((s PKT⋅ 1 + h′ = ⋅ (PKT + 2 h PK⋅ ′ 1 )), pid ) ,校验通过
1 j j i gw m j
if 请求来自网关:
h′ = H (ID ,PK 2 ,PK 1 ) .
m 0 gw m gw m gw m
若 h′ H 1 ( (s PK⋅ 1 gw m + h′ = ⋅ (PK gw m + h′ m ⋅ PK 2 ))) ,校验通过.
2
3.2 消息协议设计
设备接入到网关的底层通信协议,根据设备的不同有所不同;但写入到网关的上层数据格式可统一如下:
设备的信息按照 json 格式列出如下.
Device {
“Type”:devicetype, //设备类型
“ID”:deviceID, //设备 ID
“GID”:Gateway ID, //所属网关
“Version”:key version //密钥版本
“Pubkey”:public key, //设备公钥
“keyvalue”:[
Key:protected key //私钥或加密后的私钥
Keytype:key //密钥生成算法
Validate:validate, //密钥有效期
]
“Permission”:permissioned type, //权限许可类型 PRT
“Privacy”:[ //隐私描述
“Period”:key period, //密钥更新周期
“Signdate”:Sign date, //当前密钥签发时间
]
“Deviceswitch”:switch, //设备开关
“devicefunction”:[
“func1”:value 1, //设备功能 1 的值
“func 2”:value 2, //设备功能 2 的值
“func n”:value n, //设备功能 n 的值
]
}
其中:当设备密钥由设备自身生成时,填写加密后的私钥;由网关生成,则直接填充密钥.
权限许可类型分为 3 类:public,protected,private.对于 public 设备,可直接发起调用;protected 需获取到本地
网关的许可;private 情形下,需获取到设备自身的许可.privacy 部分填充密钥更新的频率.此字段为空时,说明无
需更换.