Page 336 - 《软件学报》2021年第8期
P. 336
2618 Journal of Software 软件学报 Vol.32, No.8, August 2021
关身份的 CA(以 CA1 为例)发送其身份与公钥,并利用 CA1 的公钥对其进行加密 EN (PK 1 || ID ) .
PK 1 gw i gw i
在这一步的操作中,网关向 CA 提交了仅该 CA 可见的身份,请求验证.
2) CA1 收到消息后,对其进行解密,并校验网关的身份.校验通过后选择不大于 q 的整数 d i ,并计算:
2
2
2
PK gw i = d ⋅ i , P SK gw i = d + i SK H⋅ 1 0 (ID gw i ,PK gw i ,PK 1 gw i ) ;
而后,利用网关的公钥对其进行加密: EN 1 (SK 2 || PK 2 ) ,并发送回网关.在这一步的操作中,CA1 以
PK gw i gw i
gw i
密文方式回复给该网关完整的跨域交互所需公私钥对.
3) 网关解密该消息之后,得到自身的完整密钥对 SK = (SK 1 ,SK 2 ),PK = (PK 1 ,PK 2 ) ;同时,网关
gw i gw i gw i gw i gw i gw i
对该私钥进行验证.令 h = H (ID ,PK 2 ,PK 1 ) ,若 PK 2 + h PK⋅ = SK 2 ⋅ P ,则证明密钥可信.此时
i 0 gw i gw i gw i gwi i 1 gwi
)
向 CA1 发布 EN (ACK ,CA1 将 ID ,PK 2 ,PK 1 ,PR 发布到链上.其中, PR 指该域的授权模
PK gw i gw i gw i gw i gw i gw i
式.在这一步中,网关对自身获取到的身份进行了确认,且 CA 将其发布到链上,与其余 CA 进行了共享.
3. 设备注册到网关
由于部分哑设备不具备远距离通信及自主密钥的管理,网关协助 CA 对设备身份进行管理.鉴于设备与用
户的行为直接相关,隐私敏感,本文分析如下.
1) 网关用于扩展设备的安全及通信能力,与设备直接连接,获取到的是设备的明文信息.
2) 设备的身份及行为与用户密切相关,有必要对链上其余 CA 及网关保密.
3) 设备本身具有移动性,应确保即使其更换所属网关,仍可继续使用.
在此基础上,本文为设备设计流程如下.
1) 网关与设备建立连接,获取到设备的能力 f j ={method:type},并配置设备的权限管理策略 PRT j .
2) 网关对设备实施匿名化:生成随机数 w 后计算 pid j =hash(w+id j ),在本地建立身份映射.
1
3) 生成设备 j 的本地密钥对 PKT ,并用网关的域内私钥签名,完成域内注册.此时,该网关域内的设备可
j
对该新注册的设备进行访问.
4) 网关向自己所属的 CA 发出注册请求,该请求中包含有设备的匿名身份、功能列表、权限.
2
5) CA 校验了网关的签名后,为设备生成 PKT .得到网关的确认消息及设备信息后,使用设备注册合约,
j
将设备信息如功能描述、设备公钥、密钥版本、密钥有效期等发布上链.
6) 网关注销后,由于设备信息仍可在链上查到,仍可通过校验.但由于更新设备信息需要该网关签名,因
此,如果之前注册设备时使用的网关注销而需要更新权限规则或功能列表等信息,需重新注册到其他
网关.
7) 设备如需更新,网关可对更新信息进行签名并发布上链.注销是一种特殊的更新:将该设备状态更新
为不可用.为了避免设备行为被持续的分析挖掘,可通过对设备进行重新注册后注销原 ID 进行隐蔽.
4. 跨域通信
考虑以下两种情况.
1) 设备自身即具备与外部通信的能力,向非自身所在域的网关请求调用其他设备.
2) 通过网关向其余网关请求对应设备的服务.
对于第 1)种情形,当 gw m 域的设备 pid j 访问 gw i 的资源时,执行如下操作:
1) 设备利用自己的域内私钥及跨域私钥并结合随机数完成签名并加密,而后利用网关 gw i 的公钥对随
机数进行加密.由 j 随机选取两个不大于 q 的整数 r 1 ,r 2 ,计算:
T =⋅ , P h = H (T + PKT 1 , pid ),s = (r + SKT 1 )/(SKT + h SKT⋅ 2 ).
r
1
1 1 j j 1 j j j
而后计算 R=r 2 ⋅P,C=H 2 (R)⊕(pid j ||s),计算 Y = i r ⋅ 2 (PK 1 gw i + PK 2 gw i + h PK⋅ i 1 ) .而后,发出密文δ=(Y i ,T,C).该
信息不含明文,仅有目标所在网关可恢复携带信息.
2) 网关收到后,首先利用自身身份解密,获取到设备的签名及身份.而后对设备的身份展开校验.