Page 337 - 《软件学报》2021年第8期
P. 337

魏欣  等:基于联盟链的物联网跨域认证                                                             2619


                    解密过程:
                                                                  −
                                                   R′ =  (SK 1 gw i  +  SK gw i  ) Y′ .
                                                                   1
                                                                2
                                                                    i
                    根据 R′恢复原始信息、设备身份 pid j 及 s:
                                                      pid j ||s=H 2 (R′)⊕C.
                    计算哈希值以完成校验:
                                                 h′ =  H  (ID  ,PK  2  ,PK  1  ),
                                                  i   0  gw i  gw i  gw i
                                                 h′ =  H 1 (T +  PKT j 1 ,PKT j 2 , pid  j  ).
                    若 h′  H 1 ( (s PKT⋅  1 j  +  h′ =  ⋅  (PKT +  j 2  h PK⋅  i ′  1 )), pid ,可确认设备身份.如该设备身份符合访问控制,则与其协商
                                                        )
                                                        j
                 本次会话密钥展开通信.
                    第 2)种情形与第 1)种类似,但以网关的身份对设备进行调用.此时,C=H 2 (R)⊕s.验证网关身份后,根据访问控
                 制策略决定是否执行来自该网关的指令.
                    假定 m 域的设备 pid j 访问 n 域内的 pid i ,跨域访问流程如下.
                    算法 1.  跨域访问流程.
                    1.  获取 pid i 权限配置
                      pid j 通过 gw m 调用合约,获取到 gw n 及为 gw n 签发身份的 CA
                    2. gw m 校验 pid i
                      if PRT i 存在(即 PR gw n  =  public )           //设备 i 的权限策略可查
                        gw m 校验本地是否存在 pid i 对 pid j 的授权:
                        若无权限,执行第 3 步;
                        若有权限,则按照 pid j 的参数发起调用并返回结果.
                      else if  PR  =  protect                      //设备 i 的权限需向 n 域的网关申请
                              gw n
                        gw m 查询是否有 gw n 的权限:
                        若无权限,执行第 4 步;
                        若有权限,按照 gw m 的参数调用 pid i .
                      else (即 PR  =  private )                     //设备 i 的权限需向设备 i 申请执行第 3 步
                               gw n
                    3. gw m 以 pid j 身份向 gw n 申请 pid i 权限
                      生成:
                        , r r ∈  Z * ,s =  (r +  SKT 1 )/(SKT +  1  h SKT⋅  2 )
                       1  2  q   1     j     j      j
                      T =⋅   , P h =  H  (T +  PKT 1 ,PKT 2 , pid  )
                         r
                          1      1       j    j   j   ,
                       R =  r ⋅  , P C =  H  ( )R ⊕  (pid  || )s
                          2       2        j
                      Y =  r ⋅  (PKT +  1  PKT +  2  h PK⋅  1  )
                       i  2     i     i      gw n
                      发送δ=(Y i ,T,C)到 gw n ,进入第 5 步
                    4. gw m 向 gw n 申请授权
                      发送 gw m 签名的授权请求
                      生成:
                       r ∈  Z  *
                       1  q
                       s =  (r +  1  SK 1 gw i  )/(SK 1 gw i  +  h SK gw i )
                                          ⋅
                                             2
                       h =  H  (ID  ,PK 2  ,PK 1  )
                       m    0  gw m  gw m  gw m
                      R=r 2 ⋅P,C=H 2 (R)⊕s
                      Y =  i  r ⋅  2  (PK 1 gw n  +  PK gw n  +  h ⋅  m  PK 2 ) (假定 gw n 由 CA2 签署)
                                     2
   332   333   334   335   336   337   338   339   340   341   342