1.一种基于区块链和TEE的物联网终端无证书认证方法,其特征在于,构建包括终端设备、认证网关和区块链的无证书密码系统,其中每一个终端设备分配有一个TEE模块;构建无证书密码系统并初始化,包括:令G1、G2分别表示一个 阶乘法循环群,P为G1的一个生成元,为大素数;
设置双线性映射e:G1×G1→G2;
选取一个随机生成数 计算P0=sP,将P0作为主密钥进行保存,其中 表示中的一个数;
选择一个哈希函数H1,从而得到系统参数 ;
无证书密码系统中的任一终端设备的认证包括以下步骤:
S1.终端设备向认证网关发送认证请求request=(终端设备的ID,timestamp),其中timestamp为请求时间戳;
S2.认证网关检查timestamp是否有效,若有效,则执行步骤S3;若失效,则向终端设备返回refuse拒绝认证;
S3.认证网关根据终端设备的ID在区块链上查询得到终端设备的公钥PA,验证公钥PA是否有效,若有效,则向终端设备返回同意认证请求信息并执行步骤S4;若失效,则向终端设备返回refuse拒绝认证;
S4.终端设备在TEE模块中计算U=rQA,并将U发给认证网关;其中,QA为根据终端设备的ID计算的哈希值,r为随机数;
S5.认证网关接收到U后随机选择一个挑战值 返给终端设备;
S6.终端设备根据挑战值c在TEE模块中计算认证信息V=(r+c)SA,并将认证信息V发给认证网关;其中SA为终端设备的完整私钥;
S7.认证网关接收认证信息V并判断等式e(P,V)=e(P0+PA,U+cQA)是否成立,若成立则认证成功;其中P为乘法循环群G1的生成元,P0为系统的主密钥;
在执行步骤S1前,若终端设备并没有加入无证书密码系统,则所述认证方法还包括终端设备加入系统的注册阶段,注册具体过程为:S11.终端设备向认证网关发送注册申请,认证网关在区块链中查询该终端设备的ID是否正确,若正确,则执行步骤S12;若不正确,则拒绝注册申请;
S12.认证网关生成部分私钥DA=sQA,QA=H1(IDA),并选择一个秘密值 ,通过可信信道将部分私钥DA和秘密值xA一起返给终端设备;其中IDA表示终端设备的ID;
S13.终端设备将接收到的部分私钥DA存储在TEE模块中,然后在TEE模块中计算并存储完整私钥SA=(xAQA+DA);
S14.终端设备在TEE模块中计算公钥PA=xAP,并将公钥PA发送给认证网关,认证网关将公钥PA上传到区块链更新该终端设备的信息,并设置密钥有效期。
2.根据权利要求1所述的一种基于区块链和TEE的物联网终端无证书认证方法,其特征在于,步骤S7中,若认证成功,则上传终端设备信息tx=(终端设备的ID,timestamps,认证网关的ID,认证成功信息)到区块链;若认证失败,则上传终端设备信息tx=(终端设备的ID,timestamps,认证网关的ID,认证失败信息)到区块链;其中timestamps为密钥有效期。
3.根据权利要求1所述的一种基于区块链和TEE的物联网终端无证书认证方法,其特征在于,终端设备与区块链进行交互时,若区块链查询到终端设备的密钥有效期已经失效,则进行密钥更新,包括:S21.区块链通过认证网关向终端设备发送密钥更新操作;
S22.终端设备接收到密钥更新操作后向认证网关发送更新请求;
S23.认证网关向终端设备发送部分私钥DA和秘密值yA;
S24.终端设备在TEE模块中删除完整私钥,然后根据认证网关发送的部分私钥DA和秘密值yA重新计算完整私钥并存储在TEE模块中;
S25.终端设备根据秘密值yA重新计算公钥并发送给认证网关,认证网关将新的公钥上传到区块链更新该终端设备的信息,并设置密钥有效期。
4.根据权利要求1所述的一种基于区块链和TEE的物联网终端无证书认证方法,其特征在于,无证书密码系统为终端层‑网关层‑区块链的三层结构。
5.根据权利要求4所述的一种基于区块链和TEE的物联网终端无证书认证方法,其特征在于,终端层包括多个终端设备,每个终端设备包括一个TEE模块、应用模块接口组件、终端应用程序和传感器。