一种物联网终端设备的注册和连接实现方法及装置制造方法及图纸

技术编号:38471755 阅读:16 留言:0更新日期:2023-08-11 14:48
本发明专利技术公开一种物联网终端设备的注册和连接实现方法及装置,适用于包含SDK、SE、上层应用的终端设备,当SDK接收到上层应用的调用时,判断SDK的状态的类型,如为制造前则将制造站公钥哈希值与设备归属信息的头部HMAC值对应保存在SE中,将SDK的非空闲状态设置为载入前;如为载入前则保存认证中心返回的重定向信息,将SDK的非空闲状态设置为转让前;如为转让前则用第二HMAC值替换SE中设备归属信息的头部HMAC值,将SDK状态设置为空闲;如为空闲则给上层应用返回空闲状态,上层应用与推送服务建立长连接进行业务处理。本发明专利技术将终端设备的注册、连接与业务处理进行区分,安全方便。安全方便。安全方便。

【技术实现步骤摘要】
一种物联网终端设备的注册和连接实现方法及装置


[0001]本专利技术涉及信息安全领域,尤其涉及一种物联网终端设备的注册和连接实现方法及装置。

技术介绍

[0002]物联网高速发展的今天涌现出非常多的终端设备厂商,各厂商对安全协议大多为自定义实现方案,这种自定义实现方案缺乏统一标准,且各终端设备的实现大多为业务和安全交叉,各厂商的终端设备在生产、运输、认证和安全机制方面均不一致,无法保证设备注册和连接的安全性,故亟需提供一种安全可靠便捷的注册和连接方法。

技术实现思路

[0003]本专利技术的目的是为了克服现有技术的不足,提供一种物联网终端设备的注册和连接实现方法及装置。
[0004]第一方面,本专利技术实施例提供了一种物联网终端设备的注册和连接实现方法,适用于包含SDK、SE、上层应用的终端设备,所述终端设备上电之后所述方法包括:步骤S1:当所述SDK接收到所述上层应用的调用时,判断SDK的状态,如为空闲则给所述上层应用返回空闲状态,执行步骤S12,如为非空闲则给所述上层应用返回非空闲状态,在接收到所述上层应用发送的运行请求时判断SDK的非空闲状态的类型,如为制造前则执行步骤S2,如为载入前则执行步骤S6,如为转让前则执行步骤S8,所述SDK的状态的初始值为非空闲状态的制造前;步骤S2:所述SDK判断是否保存有设备公钥,是则执行步骤S3,否则通知所述SE生成设备密钥对,执行步骤S3;步骤S3:所述SDK使用所述SE中的设备私钥对设备标识进行签名得到第一签名结果,根据所述第一签名结果、所述设备标识和设备公钥生成设备初始化启动请求,根据预置的制造站地址将所述设备初始化启动请求发送给制造站;步骤S4:所述SDK对接收到的所述制造站返回的设备归属信息的头部进行解析得到制造站公钥、认证中心地址和设备证书并保存,通过所述SE对所述设备归属信息的头部进行HMAC计算,将设备归属信息的头部HMAC值发送给所述制造站;步骤S5:所述SDK接收到所述制造站返回的成功响应后对所述制造站公钥计算哈希得到制造站公钥哈希值,将所述制造站公钥哈希值与所述设备归属信息的头部HMAC值对应保存在所述SE中,将SDK的非空闲状态设置为载入前,执行步骤S6;步骤S6:所述SDK根据设备标识生成载入请求并发送给认证中心,对接收到的所述认证中心返回的载入请求响应进行解析得到第一随机数,通过所述SE中的设备私钥对所述第一随机数和设备标识进行签名得到第二签名结果,根据所述第一随机数、所述设备标识和所述第二签名结果生成身份验证请求并发送给所述认证中心;步骤S7:所述SDK接收到所述认证中心返回的重定向信息并保存,将SDK的非空闲
状态设置为转让前,执行步骤S8;步骤S8:所述SDK根据设备标识、所述SE生成的第二随机数生成设备连接请求,根据保存的重定向信息中的推送服务地址将所述设备连接请求发送给对应的推送服务;步骤S9:所述SDK对接收到的所述推送服务返回的设备连接响应中的数据进行验证,如验证成功则通过所述SE中的设备私钥对所述设备标识和密钥交换参数进行签名得到第三签名结果,保存所述设备连接响应中的第三随机数,根据所述设备标识、密钥交换参数、第三签名结果和所述第三随机数生成设备证明请求并发送给所述推送服务;步骤S10:当所述SDK接收到所述推送服务返回的设备归属信息重置请求时根据所述密钥交换参数生成第二密钥,使用所述第二密钥对所述设备归属信息重置请求进行解密并验证解密结果,如验证成功则判断解密结果中的第三随机数和保存的第三随机数是否一致,是则对所述设备归属信息重置请求中的设备归属信息进行HMAC计算得到第二HMAC值,对所述设备归属信息重置请求中的推送服务公钥计算哈希值,并将推送服务公钥哈希值和所述第二HMAC值缓存在所述SE中;步骤S11:所述SDK将设备状态变化通知发送给所述推送服务,当接收到所述推送服务返回的确认响应时用所述第二HMAC值替换所述SE中保存的设备归属信息的头部HMAC值,给所述上层应用返回运行请求响应,将SDK状态设置为空闲并返回给所述上层应用,执行步骤S12;步骤S12:当所述上层应用接收到所述SDK返回的空闲状态时,所述上层应用根据所述设备标识和所述第二密钥生成长连接请求并发送给推送服务,当接收到所述推送服务返回的连接成功响应时与所述推送服务建立长连接。
[0005]第二方面,本专利技术实施例又提供一种物联网终端设备的注册和连接实现装置,包括:第一判断发送模块,用于当所述SDK接收到所述上层应用的调用时,判断SDK的状态,如为空闲则给所述上层应用返回空闲状态,触发发送接收建立模块,如为非空闲则给所述上层应用返回非空闲状态,在接收到所述上层应用发送的运行请求时判断SDK的非空闲状态的类型,如为制造前则触发判断生成模块,如为载入前则触发第二签名生成发送模块,如为转让前则触发第一生成发送模块,所述SDK的状态的初始值为非空闲状态的制造前;所述判断生成模块,用于判断是否保存有设备公钥,是则触发第一签名生成发送模块,否则通知所述SE生成设备密钥对,触发第一签名生成发送模块;所述第一签名生成发送模块,用于使用所述SE中的设备私钥对设备标识进行签名得到第一签名结果,根据所述第一签名结果、所述设备标识和设备公钥生成设备初始化启动请求,根据预置的制造站地址将所述设备初始化启动请求发送给制造站;接收保存计算模块,用于对接收到的所述制造站返回的设备归属信息的头部进行解析得到制造站公钥、认证中心地址和设备证书并保存,通过所述SE对所述设备归属信息的头部进行HMAC计算,将设备归属信息的头部HMAC值发送给所述制造站;第一接收保存设置模块,用于接收到所述制造站返回的成功响应后对所述制造站公钥计算哈希得到制造站公钥哈希值,将所述制造站公钥哈希值与所述设备归属信息的头部HMAC值对应保存在所述SE中,将SDK的非空闲状态设置为载入前,触发第二签名生成发送模块;
所述第二签名生成发送模块,用于根据设备标识生成载入请求并发送给认证中心,对接收到的所述认证中心返回的载入请求响应进行解析得到第一随机数,通过所述SE中的设备私钥对所述第一随机数和设备标识进行签名得到第二签名结果,根据所述第一随机数、所述设备标识和所述第二签名结果生成身份验证请求并发送给所述认证中心;第二接收保存设置模块,用于接收到所述认证中心返回的重定向信息并保存,将SDK的非空闲状态设置为转让前,触发第一生成发送模块;所述第一生成发送模块,用于根据设备标识、所述SE生成的第二随机数生成设备连接请求,根据保存的重定向信息中的推送服务地址将所述设备连接请求发送给对应的推送服务;验证生成发送模块,用于对接收到的所述推送服务返回的设备连接响应中的数据进行验证,如验证成功则通过所述SE中的设备私钥对所述设备标识和密钥交换参数进行签名得到第三签名结果,保存所述设备连接响应中的第三随机数,根据所述设备标识、密钥交换参数、第三签名结果和和所述第三随机数生成设备证明请求并发送给所述推送服务;生成验证保存模块,用于当接收到所述推送服务返回的设备归属信息重置请求时根据所述密钥交换参数生成第二密钥,使用所述第二密钥对所述设备归属信息本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种物联网终端设备的注册和连接实现方法,其特征在于,适用于包含SDK、SE、上层应用的终端设备,所述终端设备上电之后所述方法包括:步骤S1:当所述SDK接收到所述上层应用的调用时,判断SDK的状态,如为空闲则给所述上层应用返回空闲状态,执行步骤S12,如为非空闲则给所述上层应用返回非空闲状态,在接收到所述上层应用发送的运行请求时判断SDK的非空闲状态的类型,如为制造前则执行步骤S2,如为载入前则执行步骤S6,如为转让前则执行步骤S8,所述SDK的状态的初始值为非空闲状态的制造前;步骤S2:所述SDK判断是否保存有设备公钥,是则执行步骤S3,否则通知所述SE生成设备密钥对,执行步骤S3;步骤S3:所述SDK使用所述SE中的设备私钥对设备标识进行签名得到第一签名结果,根据所述第一签名结果、所述设备标识和设备公钥生成设备初始化启动请求,根据预置的制造站地址将所述设备初始化启动请求发送给制造站;步骤S4:所述SDK对接收到的所述制造站返回的设备归属信息的头部进行解析得到制造站公钥、认证中心地址和设备证书并保存,通过所述SE对所述设备归属信息的头部进行HMAC计算,将设备归属信息的头部HMAC值发送给所述制造站;步骤S5:所述SDK接收到所述制造站返回的成功响应后对所述制造站公钥计算哈希得到制造站公钥哈希值,将所述制造站公钥哈希值与所述设备归属信息的头部HMAC值对应保存在所述SE中,将SDK的非空闲状态设置为载入前,执行步骤S6;步骤S6:所述SDK根据设备标识生成载入请求并发送给认证中心,对接收到的所述认证中心返回的载入请求响应进行解析得到第一随机数,通过所述SE中的设备私钥对所述第一随机数和设备标识进行签名得到第二签名结果,根据所述第一随机数、所述设备标识和所述第二签名结果生成身份验证请求并发送给所述认证中心;步骤S7:所述SDK接收到所述认证中心返回的重定向信息并保存,将SDK的非空闲状态设置为转让前,执行步骤S8;步骤S8:所述SDK根据设备标识、所述SE生成的第二随机数生成设备连接请求,根据保存的重定向信息中的推送服务地址将所述设备连接请求发送给对应的推送服务;步骤S9:所述SDK对接收到的所述推送服务返回的设备连接响应中的数据进行验证,如验证成功则通过所述SE中的设备私钥对所述设备标识和生成的密钥交换参数进行签名得到第三签名结果,保存所述设备连接响应中的第三随机数,根据所述设备标识、密钥交换参数、第三签名结果和所述第三随机数生成设备证明请求并发送给所述推送服务;步骤S10:当所述SDK接收到所述推送服务返回的设备归属信息重置请求时根据所述密钥交换参数生成第二密钥,使用所述第二密钥对所述设备归属信息重置请求进行解密并验证解密结果,如验证成功则判断解密结果中的第三随机数和保存的第三随机数是否一致,是则对所述设备归属信息重置请求中的设备归属信息进行HMAC计算得到第二HMAC值,对所述设备归属信息重置请求中的推送服务公钥计算哈希值,并将推送服务公钥哈希值和所述第二HMAC值缓存在所述SE中;步骤S11:所述SDK将设备状态变化通知发送给所述推送服务,当接收到所述推送服务返回的确认响应时用所述第二HMAC值替换所述SE中保存的设备归属信息的头部HMAC值,给所述上层应用返回运行请求响应,将SDK状态设置为空闲并返回给所述上层应用,执行步骤
S12;步骤S12:当所述上层应用接收到所述SDK返回的空闲状态时,所述上层应用根据所述设备标识和所述第二密钥生成长连接请求并发送给推送服务,当接收到所述推送服务返回的连接成功响应时与所述推送服务建立长连接。2.如权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:步骤A1:所述上层应用组装SDK初始化指令并发送给所述SDK;步骤A2:所述SDK接收到所述SDK初始化指令后进行初始化,组装SE初始化请求并发送给所述SE;步骤A3:所述SE接收到SE初始化请求后进行初始化,给所述SDK返回SE初始化响应;步骤A4:所述SDK接收SE初始化响应,组装获取SE状态请求并发送给所述SE;步骤A5:所述SE接收到获取所述SE状态请求后组装SE状态响应并返回给所述SDK;步骤A6:所述SDK根据接收到的所述SE状态响应中的状态码判断是否需要对SE执行复位操作,是则调用SE复位接口,进行SE复位操作,否则组装SDK初始化响应并返回给所述上层应用。3.如权利要求1所述的方法,其特征在于,步骤S1包括:步骤S1

1:所述上层应用组装获取SDK状态请求并发送给所述SDK;步骤S1

2:所述SDK接收到获取SDK状态请求后,根据SDK状态组装SDK状态响应并返回给所述上层应用;步骤S1

3:所述上层应用接收所述SDK状态响应并解析,判断解析得到的SDK的状态的类型,如为非空闲给所述SDK发送运行请求,则执行步骤S1

4,如为空闲则执行步骤S12,如为错误则报错,结束;步骤S1

4:所述SDK判断SDK的非空闲状态的类型,如为制造前则执行步骤S2,如为载入前则执行步骤S6,如为转让前则执行步骤S8。4.如权利要求1所述的方法,其特征在于,所述步骤S2包括:步骤S21:所述SDK判断是否保存有设备公钥,是则执行步骤S3,否则执行步骤S22;步骤S22:所述SDK组装生成密钥请求,将生成密钥请求发送给所述SE;步骤S23:所述SE接收到生成密钥请求后根据预设算法生成设备密钥对,将所述设备密钥对中的设备公钥返回给所述SDK;步骤S24:所述SDK接收设备公钥并保存,执行步骤S3。5.如权利要求1所述的方法,其特征在于,所述步骤S3包括:步骤S31:所述SDK根据设备标识、公钥类型、公钥编码、证书申请信息组装设备初始化签名请求,将设备初始化签名请求发送给所述SE;步骤S32:所述SE使用设备私钥对接收到的设备初始化签名请求进行签名得到第一签名结果,将第一签名结果返回给SDK;步骤S33:所述SDK根据接收到的第一签名结果、所述设备初始化签名请求和保存的所述设备公钥组装设备初始化启动请求,根据预置的制造站地址将所述设备初始化启动请求发送给制造站;所述步骤S3与所述步骤S4之间还包括:步骤B1:所述制造站对接收到所述设备初始化启动请求进行解析得到第一签名结果、
所述设备初始化签名请求和设备公钥,使用所述设备公钥和所述设备初始化签名请求对所述第一签名结果进行验签,如验签成功则对所述设备初始化签名请求进行解析得到设备标识、公钥类型、公钥编码、证书申请信息,根据所述设备标识判断是否保存有对应的设备证书,是则报错,结束,否则根据所述设备公钥、所述公钥类型、所述公钥编码、所述证书申请信息和所述设备标识生成设备证书并与所述设备标识对应保存,执行步骤B2;步骤B2:所述制造站根据制造站公钥、所述设备证书、认证中心地址、协议版本号生成设备归属信息的头部,将所述设备归属信息的头部发送给所述SDK。6.如权利要求1所述的方法,其特征在于,所述步骤S4中的通过所述SE对所述设备归属信息的头部进行HMAC计算,将设备归属信息的头部HMAC值发送给所述制造站,包括:所述SDK根据所述设备归属信息的头部生成第一HMAC计算请求,将所述第一HMAC计算请求发送给所述SE;所述SE对接收到的所述第一HMAC计算请求进行解析,对解析得到的设备归属信息的头部进行HMAC计算,将计算得到的设备归属信息的头部HMAC值返回给所述SDK,所述SDK将所述设备归属信息的头部和接收到的设备归属信息的头部HMAC值发送给所述制造站。7.如权利要求1所述的方法,其特征在于,所述步骤S4与所述步骤S5之间还包括:所述制造站对保存的推送服务公钥进行哈希计算得到推送服务公钥哈希值,根据所述设备归属信息的头部、接收到的所述设备归属信息的头部HMAC值和所述推送服务公钥哈希值组装设备归属信息并与所述设备标识对应保存,组装成功响应并发送给所述SDK;所述步骤S5包括:步骤S51:所述SDK接收到成功响应后对制造站公钥计算哈希得到制造站公钥哈希值,将所述设备归属信息的头部HMAC值和所述制造站公钥哈希值发送给所述SE;步骤S52:所述SE保存接收到的所述设备归属信息的头部HMAC值和所述制造站公钥哈希值,给所述SDK返回存储成功响应;步骤S53:所述SDK接收到所述存储成功响应后将SDK的非空闲状态设置为载入前,给所述上层应用返回运行请求响应,执行步骤S6。8.如权利要求1所述的方法,其特征在于,所述步骤S6包括:步骤S61:所述SDK根据所述设备标识生成载入请求,并将所述载入请求发送给认证中心;步骤S62:所述认证中心对接收到的所述载入请求进行解析,根据解析得到的设备标识判断是否保存有对应的协议数据,是则执行步骤S63,否则给所述SDK返回错误信息,结束;步骤S63:所述认证中心生成第一随机数并与设备标识对应保存,根据第一随机数生成载入请求响应,将所述载入请求响应返回给所述SDK;步骤S64:所述SDK对接收到的载入请求响应进行解析得到第一随机数,根据所述第一随机数和所述设备标识组装签名请求,将所述签名请求发送给所述SE;步骤S65:所述SE对接收到的签名请求进行解析得到第一随机数和设备标识,使用设备私钥对所述第一随机数和所述设备标识进行签名得到第二签名结果,将所述第二签名结果发送给所述SDK;步骤S66:所述SDK根据接收到的所述第二签名结果、所述第一随机数和所述设备标识生成身份验证请求,将所述身份验证请求发送给所述认证中心。
9.如权利要求8所述的方法,其特征在于,所述步骤S6与所述步骤S7之间还包括:步骤C1:所述认证中心对接收到的身份验证请求进行解析得到第二签名结果、第一随机数和设备标识,根据所述设备标识获取本地保存的对应的第一随机数;步骤C2:所述认证中心判断获取到的第一随机数与解析得到的第一随机数是否一致,是则执行步骤C3,否则给所述SDK返回错误信息,结束;步骤C3:所述认证中心根据所述设备标识获取对应的协议数据,使用所述协议数据中的设备公钥对所述第二签名结果进行验证,如验证成功则执行步骤C4,如验证失败则给所述SDK返回错误信息,结束;步骤C4:所述认证中心根据所述协议数据中的推送服务地址和签名数据生成重定向信息,将所述重定向信息返回给所述SDK。10.如权利要求1所述的方法,其特征在于,所述步骤S8包括:步骤S81:所述SDK生成随机数产生请求并发送给所述SE;步骤S82:所述SE接收到所述随机数产生请求后生成第二随机数,将所述第二随机数返回给所述SDK;步骤S83:所述SDK保存接收到的所述第二随机数,生成密码交换算法参数获取请求并发送给所述SE;步骤S84:所述SE接收到所述密码交换算法参数获取请求后获取ECDH密码协议和密码套件,将所述ECDH密码协议和所述密码套件返回给所述SDK;步骤S85:所述SDK根据接收到的所述ECDH密码协议和所述密码套件、保存的第二随机数、设备标识生成设备连接请求,根据保存的重定向信息中的推送服务地址将所述设备连接请求发送给对应的推送服务。11.如权利要求1所述的方法,其特征在于,所述步骤S8与所述步骤S9之间还包括:所述推送服务对接收到的设备连接请求进行解析得到ECDH密码协议、密码套件、第二随机数和设备标识,根据所述设备标识查找保存的设备归属信息,根据ECDH密码协议和密码套件生成第一参数,对所述设备连接请求进行哈希计算得到设备连接请求哈希值,根据设备归属信息的头部、设备归属信息中的HAMC、所述第二随机数、所述第一参数、设备连接请求哈希值生成第一待签名数据,使用推送服务私钥对所述第一待签名数据进行签名得到第一签名值,根据所述第一待签名数据、所述第一签名值、推送服务公钥和生成的第三随机数生成设备连接响应并返回给所述SDK,保存所述第三随机数。12.如权利要求11所述的方法,其特征在于,所述步骤S9包括:步骤S9

1:所述SDK对接收到的所述设备连接响应进行解析得到第一待签名数据、第一签名值、推送服务公钥和第三随机数,保存第三随机数,对所述第一待签名数据进行解析得到设备归属信息的头部、设备归属信息中的HAMC、第二随机数、第一参数、设备连接请求哈希值,生成HMAC读取请求并发送给所述SE;步骤S9

2:所述SE接收到所述HMAC读取请求后读取保存的设备归属信息的头部HMAC值,将所述设备归属信息的头部HMAC值返回给SDK;步骤S9

3:所述SDK判断接收到的设备归属信息的头部HMAC值与解析得到的设备归属信息中的HMAC是否一致,是则执行步骤S9

4,否则报错,结束;步骤S9

4:所述SDK根据保存的重定向信息和推送服务公钥生成载入期间的重定向信
息验证请求并发送给所述SE;步骤S9

5:所述SE对接收到的载入期间的重定向信息验证请求进行解析得到重定向信息和推送服务公钥,使用所述推送服务公钥对所述重定向信息中的签名数据进行验签,并将验签结果返回给所述SDK;步骤S9

6:所述SDK判断接收到的验签结果是否为成功,是则执行步骤S9

7,否则报错,结束;步骤S9

7:所述SDK根据所述第一待签名数据、所述第一签名值和推送服务公钥生成验签请求并发送给所述SE;步骤S9

8:所述SE对接收到验签请求进行解析得到第一待签名数据、第一签名值和推送服务公钥,使用所述第一待签名数据和所述推送服务公钥对所述第一签名值进行验签,并将验签结果返回给所述SDK;步骤S9

9:所述SDK判断接收到的验签结果是否为成功,是则执行步骤S9

10,否则报错,结束;步骤S9

10:所述SDK将所述设备标识和所述第一参数发送给所述SE;步骤S9

11:所述SE对接收到的第一参数进行计算得到密钥交换参数并缓存,使用设备私钥对所述设备标识和所述密钥交换参数进行签名得到第三签名结果,将所述第三签名结果和所述密钥交换参数返回给所述SDK;步骤S9

12:所述SDK根据接收到的所述第三签名结果和所述密钥交换参数、所述设备标识、第三随机数生成设备证明请求,将所述设备证明请求发...

【专利技术属性】
技术研发人员:许可陆舟
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1