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 部分填充密钥更新的频率.此字段为空时,说明无
                 需更换.
   333   334   335   336   337   338   339   340   341   342   343