1.一种基于区块链的物联网设备身份认证方法,其特征在于,包括:选用多个区块链节点搭建区块链网络;
将物联网设备的标识和公钥对(ID,PK)存储在区块链中以完成物联网设备注册;
区块链节点根据存储的公钥PK对接入的物联网设备提供的标识ID进行认证;
所述将物联网设备的标识和公钥对(ID,PK)存储在区块链中以完成物联网设备注册的步骤包括:
‑SK
物联网设备利用私钥SK生成公钥PK=g modp,将设备标识和公钥对(ID,PK)发送给对应区块链节点进行注册请求,采用分布式数据存储方式来安全存储物联网设备的标识和公钥对(ID,PK),其中,p为一个大素数,而g为q阶元素;
对应区块链节点根据物联网设备的标识ID查询区块链中是否已存在与该标识ID相关联的注册交易区块或者撤销交易区块,如果不存在,则通过该注册请求;
注册请求通过后,对应区块链节点生成注册区块链交易<ID||PK||Reg>,并封装成相应的注册数据区块,发送给其他的区块链节点进行共识,共识完成后注册数据区块存储在区块链的分布式账本中,Reg为注册操作符;
对应区块链节点向所述物联网设备返回注册成功消息;
所述区块链节点根据存储的公钥PK对接入的物联网设备提供的标识ID进行认证的步骤包括:
物联网设备向区块链发起认证请求,对应区块链节点向所述物联网设备返回一个随机数e;
r
物联网设备选择一个随机数r,计算x′=Hash(g mod p)和y=r+e·SK mod q,将(x′,y)发送到对应区块链节点;
对应区块链节点根据物联网设备的标识ID查询区块链,得到与该标识ID对应公钥PK,e y
并利用公钥PK和y,计算y′=Hash(PK g mod p);如果y′等于x′,说明公钥PK与物联网设备的标识ID相匹配,物联网设备的认证请求通过;
对应区块链节点生成认证区块链交易<ID||PK||Auth>,并封装成相应的认证数据区块,发送给其他区块链节点进行共识,共识完成后认证数据区块存储在区块链中,其中,Auth为认证操作符;
对应区块链节点向所述物联网设备返回认证成功消息。
2.根据权利要求1所述的一种基于区块链的物联网设备身份认证方法,其特征在于,还包括:撤销已注册的物联网设备的标识和公钥对(ID,PK),具体步骤包括:物联网设备向区块链发起撤销请求,对应区块链节点对物联网设备进行认证,如果认证成功,则通过该撤销请求,反之,则拒绝该撤销请求;
撤销请求通过后,对应区块链节点生成撤销区块链交易<ID||PK||Rev>,并封装成相应的撤销数据区块,发送给其他区块链节点进行共识,共识完成后撤销数据区块存储在区块链中,其中,Rev为撤销操作符;
对应区块链节点向所述物联网设备返回撤销成功消息。
3.根据权利要求1所述的一种基于区块链的物联网设备身份认证方法,其特征在于,还包括:更新已注册的物联网设备的标识和公钥对(ID,PK)中的公钥PK,具体步骤包括:物联网设备向区块链发起更新请求,对应区块链节点对物联网设备进行认证,如果认证成功,则通过该更新请求,反之,则拒绝该更新请求;
更新请求通过后,对应区块链节点先生成一个关于物联网设备原标识和公钥对(ID,PK)的撤销区块链交易<ID||PK||Rev>,然后再生成一个关于物联网设备新标识和公钥对(ID,PK′)的注册区块链交易<ID||PK'||Reg>,将撤销区块链交易<ID||PK||Rev>和注册区块链交易<ID||PK'||Reg>分别封装成对应的撤销数据区块和更新数据区块,发送给其他区块链节点进行共识,共识完成后更新数据区块存储在区块链中,其中,PK′为新的公钥;
对应区块链节点向物联网设备返回更新成功消息。