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