Page 339 - 《软件学报》2021年第8期
P. 339
魏欣 等:基于联盟链的物联网跨域认证 2621
网关与 CA 及联盟链之间的交互主要包括以下几项:设备的注册、更新、以及查询.
网关向 CA 发起的请求格式如下.
Request {
“gateway”:gatewayID, //网关 ID
“CA”:CAid, //为该网关签发许可的 CA 公钥
“commandtype”:command, //请求类型,包括写入、更新、查询.
“DeviceID”:Public key, //对应的设备公钥
“Description”:[
“Attribute1”:value1, //属性 1
“Attribute2”:value2, //属性 2
], //对于写入及更新的请求,需要更新的信息封装为 json 字段
}
查询请求的 description 字段为空,合约为其返回对应设备的信息.注册请求需提供设备描述及权限许可等
属性信息.更新请求的 description 字段只包括需要更新的信息.
网关向网关发出的跨域认证请求如下.
Authenticate{
“gateway”:gatewayID, //网关 ID
“CA”:CAid, //为发起请求的网关签发许可的 CA 公钥
“message1”:Y,
“message1”:T,
“message1”:C, //Y,T,C 为网关为设备跨域访问生成的加密字段
“time”:timestamp;
}
当收到请求的网关完成验证,交换会话密钥后,网关向网关发出的跨域访问请求如下.
Access{
“gateway”:gatewayID, //网关 ID
“CA”:CAid, //为发起请求的网关签发许可的 CA 公钥
“DeviceID”:Public key, //需控制的设备公钥
“Deviceswitch”:switch, //设备开关
“commandtype”:[
“func1”:value 1, //设备功能 1 的值
“func 2”:value 2, //设备功能 2 的值
“func n”:value n, //设备功能 n 的值
]
“time”:timestamp;
}
此时收到请求的网关校验权限允许之后,执行 conmandtype 中的函数.
4 认证机制分析
4.1 正确性证明
在第 3.1 节的机制设计中,提出了认证时使用的数据,被请求的网关校验通过后证明该请求来自于合法的
网关或设备.其中,为证明校验的正确性,证明如下.