CN116566746B - 一种基于物联网的认证实现方法及系统 - Google Patents

一种基于物联网的认证实现方法及系统 Download PDF

Info

Publication number
CN116566746B
CN116566746B CN202310841070.9A CN202310841070A CN116566746B CN 116566746 B CN116566746 B CN 116566746B CN 202310841070 A CN202310841070 A CN 202310841070A CN 116566746 B CN116566746 B CN 116566746B
Authority
CN
China
Prior art keywords
equipment
sdk
push service
key
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310841070.9A
Other languages
English (en)
Other versions
CN116566746A (zh
Inventor
陆舟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN202310841070.9A priority Critical patent/CN116566746B/zh
Publication of CN116566746A publication Critical patent/CN116566746A/zh
Application granted granted Critical
Publication of CN116566746B publication Critical patent/CN116566746B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开一种基于物联网的认证实现方法及系统,该方法包括:终端设备将载入请求发送给认证中心;认证中心将重定向信息返回给终端设备进行保存,终端设备将连接请求发送给SDK;终端设备验证SDK返回的连接请求响应的合法性和有效性,如验证成功则将设备证明请求发送给SDK;SDK对设备证明请求进行验证成功后与终端设备协商密钥,SDK使用协商好的第一密钥对接收到的终端设备发送的加密结果进行解密,并用解密得到的第二HMAC值替换保存的设备归属信息中的HMAC,终端设备根据重定向信息中的推送服务的地址与对应的推送服务建立长连接。本方案适用任意终端设备和推送服务,无需线下用户参与,使用更加方便简单。

Description

一种基于物联网的认证实现方法及系统
技术领域
本发明涉及信息安全领域,尤其涉及一种基于物联网的认证实现方法及系统。
背景技术
随着物联网和智能终端设备的快速发展,物与物之间、物与人之间的联系越来越紧密,智能终端产品的种类和数量也在不断扩大,网络安全、设备部署安全等问题日益凸显,消费者也越来越关注智能终端产品的安全问题。在现有技术中,一般都是各硬件厂商自建平台或者采用第三方云服务来解决上述安全问题。各硬件厂商自建平台方案,其通信安全、部署安全、设备管理安全等均依赖于各厂商自己的能力,受限较大且各不统一,各厂商自己的算法水平和实现方案的可靠性和安全性有待商榷。采用第三方云服务方案也有明显的局限性,其设备管理安全和信息传输安全等均依赖于第三方云服务,一个厂商对应一个云服务,采用的安全加密算法依然受限于各厂商自身,使用十分不便。故亟需一种适用不同硬件厂商的设备通过一个云服务或一个设备通过不同的云服务连接物联网进行工作的实现方案。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种基于物联网的认证实现方法及系统。
第一方面,本发明实施例提供了一种基于物联网的认证实现方法,包括:
步骤S1:终端设备使用设备私钥对设备标识进行签名得到设备签名结果,根据所述设备标识和所述设备签名结果生成载入请求并发送给认证中心;
步骤S2:所述认证中心根据保存的设备公钥对接收到的所述载入请求进行验证,如验证成功则根据所述载入请求中的设备标识从保存的第二协议数据中获取推送服务的地址,根据所述推送服务的地址生成重定向信息并返回给所述终端设备,执行步骤S3,如验证失败则报错,结束;
步骤S3:所述终端设备接收重定向信息并保存,根据所述设备标识、生成的第二随机数、密钥交换协议和密码套件生成连接请求并发送给SDK;
步骤S4:所述SDK保存所述连接请求中的第二随机数,根据所述连接请求中的密钥交换协议和所述密码套件生成第一密钥交换参数并保存,根据所述连接请求中的设备标识查询保存的对应设备归属信息,使用SDK公钥计算所述设备归属信息头的HMAC得到第一HMAC值,对所述连接请求进行哈希计算得到请求哈希值,根据所述设备归属信息、所述连接请求、所述第一密钥交换参数、所述第一HMAC值、所述请求哈希值、所述第二随机数和生成的第三随机数生成连接请求响应并返回给所述终端设备;
步骤S5:所述终端设备根据所述第二随机数验证所述连接请求响应的合法性和有效性,如验证成功则执行步骤S6,否则报错,结束;
步骤S6:所述终端设备保存所述连接请求响应中的第一密钥交换参数,根据密钥交换协议和密码套件生成第二密钥交换参数,根据所述第二密钥交换参数、所述第二随机数、所述连接请求响应中的第三随机数和所述设备标识生成第二有效数据,使用所述设备私钥对所述第二有效数据进行签名得到第二有效数据签名结果,根据所述第二有效数据签名结果和所述第二有效数据生成设备证明请求并发送给所述SDK;
步骤S7:所述SDK根据保存的所述设备归属信息对所述设备证明请求进行验证,如验证成功则执行步骤S8;
步骤S8:所述SDK根据保存的第一密钥交换参数和设备证明请求中的第二密钥交换参数生成第一密钥,根据SDK公钥、设备归属信息、所述设备证明请求中的设备标识和第三随机数生成第三有效数据,使用SDK私钥对所述第三有效数据进行签名得到第三有效数据签名结果,使用所述第一密钥对包含所述第三有效数据和所述第三有效数据签名结果的设备设置请求进行加密并将加密结果发送给所述终端设备;
步骤S9:所述终端设备根据所述第一密钥交换参数和第二密钥交换参数生成第二密钥,使用所述第二密钥对接收到的加密结果进行解密,对解密得到的设备设置请求进行解析,用解析得到的SDK公钥计算设备归属信息头的HMAC得到第二HMAC值,使用所述第二密钥对所述第二HMAC值进行加密并将加密结果发送给所述SDK;
步骤S10:所述SDK使用所述第一密钥对接收到的加密结果进行解密,并用解密得到的第二HMAC值替换保存的设备归属信息中的HMAC,给所述终端设备返回确认响应;
步骤S11:所述终端设备接收到所述确认响应后根据保存的重定向信息中的推送服务的地址与对应的推送服务建立长连接。
第二方面,本发明实施例又提供一种基于物联网的认证实现系统,包括:终端设备、认证中心和SDK,用于实现前述的基于物联网的认证实现方法。
第三方面,本发明实施例又提供一种电子设备,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现前述的基于物联网的认证实现方法。
第四方面,本发明实施例又提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在被电子设备执行时实现前述的基于物联网的认证实现方法。
第五方面,本发明实施例又提供一种芯片系统,包括芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行前述的基于物联网的认证实现方法。
本发明与现有技术相比,具有以下优点:
本发明技术方案中终端设备从认证中心获取可连接的推送服务的地址,推送服务通过SDK(英文全称:Software Development Kit,中文全称:软件开发工具包)完成终端设备的身份验证和保护载入过程,然后终端设备使用推送服务的地址与对应的推送服务建立长连接。本实施例方案适用于任意厂商的终端设备和推送服务,使认证中心能动态的管理终端设备和推送服务,终端设备上电后以安全可信的方式自动快速连接到推送服务,而无需线下用户参与,使用更加方便简单。
附图说明
图1为本发明实施例一提供的一种基于物联网的认证实现方法的流程图;
图2本发明实施例二提供的一种基于物联网的认证实现方法中的注册过程流程图;
图3和图4本发明实施例二提供的一种基于物联网的认证实现方法中的认证过程流程图。
具体实施方式
本申请提出了一种基于物联网的认证实现方法及系统,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
在本申请实施例中,推送服务为终端设备最终要连接的目标云服务,主要负责通过SDK完成终端设备的身份验证和数据配置、协议、密钥的协商;认证中心主要为SDK提供注册其所属推送服务的信息和身份认证,还为终端设备提供包含推送服务的地址的重定向信息;终端设备上电后以安全可信的方式自动快速连接到推送服务。其中,SDK和推送服务可以设置在同一服务器上,也可分开设置在不同服务器上。
实施例一
本发明实施例一提供了一种基于物联网的认证实现方法,如图1所示,包括:
步骤S1:终端设备使用设备私钥对设备标识进行签名得到设备签名结果,根据设备标识和设备签名结果生成载入请求并发送给认证中心;
步骤S2:认证中心根据保存的设备公钥对接收到的载入请求进行验证,如验证成功则根据载入请求中的设备标识从保存的第二协议数据中获取推送服务的地址,根据推送服务的地址生成重定向信息并返回给终端设备,执行步骤S3,如验证失败则报错,结束;
进一步地,步骤S2包括:
步骤S21:认证中心对接收到的载入请求进行解析得到设备标识和设备签名结果,根据设备标识查询第一协议数据和第二协议数据,如找到第一协议数据和第二协议数据则执行步骤S22,如未找到则报错,结束;
步骤S22:认证中心获取第一协议数据中的设备归属信息,使用设备归属信息中的设备公钥和设备标识对设备签名结果进行验证,如验证成功则根据设备标识从第二协议数据中获取推送服务的地址,根据推送服务的地址生成重定向信息并返回给终端,执行步骤S3,如验证失败则报错,结束;
具体的,使用设备归属信息中的设备公钥和设备标识对设备签名结果进行验证,包括:使用设备归属信息中的设备公钥对设备签名结果进行解密,对设备标识进行哈希计算,判断解密结果与哈希计算结果是否一致,是则验证成功,否则验证失败;
步骤S3:终端设备接收重定向信息并保存,根据设备标识、生成的第二随机数、密钥交换协议和密码套件生成连接请求并发送给SDK;
步骤S4:SDK保存连接请求中的第二随机数,根据连接请求中的密钥交换协议和密码套件生成第一密钥交换参数并保存,根据连接请求中的设备标识查询保存的对应设备归属信息,使用SDK公钥计算设备归属信息头的HMAC得到第一HMAC值,对连接请求进行哈希计算得到请求哈希值,根据设备归属信息、连接请求、第一密钥交换参数、第一HMAC值、请求哈希值、第二随机数和生成的第三随机数生成连接请求响应并返回给终端设备;
步骤S5:终端设备根据第二随机数验证连接请求响应的合法性和有效性,如验证通过则执行步骤S6,如验证未通过则报错,结束;
具体的,在本实施例中,步骤S5包括:终端设备对接收到的连接请求响应进行解析得到设备归属信息、连接请求、第一密钥交换参数、第一HMAC值、请求哈希值、第二随机数和第三随机数,对解析得到的连接请求进行哈希计算得到第一哈希结果,从解析得到的设备归属信息中获取HMAC,对解析得到的设备归属信息进行HMAC计算,分别判断获取到的HMAC与计算得到的HMAC值是否一致、判断解析得到的请求哈希值与第一哈希结果是否一致、判断保存的第二随机数与解析得到的第二随机数是否一致,如均判断为是则执行步骤S6,否则验证失败,报错,结束;
步骤S6:终端设备保存连接请求响应中的第一密钥交换参数,根据密钥交换协议和密码套件生成第二密钥交换参数,根据第二密钥交换参数、第二随机数、连接请求响应中的第三随机数和设备标识生成第二有效数据,使用设备私钥对第二有效数据进行签名得到第二有效数据签名结果,根据第二有效数据签名结果和第二有效数据生成设备证明请求并发送给SDK;
步骤S7:SDK根据保存的设备归属信息对设备证明请求进行验证,如验证成功则执行步骤S8;
具体的,在本实施例中,步骤S7包括:SDK对接收到的设备证明请求进行解析得到第二有效数据和第二有效数据签名结果,对第二有效数据进行解析得到第二密钥交换参数、第二随机数、第三随机数、设备标识,根据设备标识获取对应的设备归属信息,获取设备归属信息中的设备公钥,使用设备公钥对第二有效数据签名结果进行解密,对解析得到的第二有效数据进行哈希计算,判断解密结果与哈希计算结果是否一致,是则验证成功,执行步骤S8,否则验证失败,向终端设备报错;
步骤S8:SDK根据保存的第一密钥交换参数和设备证明请求中的第二密钥交换参数生成第一密钥,根据SDK公钥、设备归属信息、设备证明请求中的设备标识和第三随机数生成第三有效数据,使用SDK私钥对第三有效数据进行签名得到第三有效数据签名结果,使用第一密钥对包含第三有效数据和第三有效数据签名结果的设备设置请求进行加密并将加密结果发送给终端设备;
进一步地,本实施例的步骤S8具体包括:
步骤S81:SDK从设备证明请求中获取第二密钥交换参数,根据第二密钥交换参数和保存的第一密钥交换参数生成第一密钥;
步骤S82:SDK从设备证明请求中获取第三随机数和设备标识,根据SDK公钥、设备标识、第三随机数和设备归属信息组成第三有效数据,使用SDK私钥对第三有效数据进行签名生成第三有效数据签名结果;
步骤S83:SDK根据第三有效数据和第三有效数据签名结果生成设备设置请求,使用第一密钥对设备设置请求进行加密,并将设备设置请求密文发送给终端设备;
步骤S9:终端设备根据第一密钥交换参数和第二密钥交换参数生成第二密钥,使用第二密钥对接收到的加密结果进行解密,对解密得到的设备设置请求进行解析,用解析得到的SDK公钥计算设备归属信息头的HMAC得到第二HMAC值,使用第二密钥对第二HMAC值进行加密并将加密结果发送SDK;
具体的,在本实施例中,步骤S9包括:终端设备根据第一密钥交换参数和第二密钥参数生成第二密钥,使用第二密钥对接收到的加密结果进行解密,如解密成功则对解密得到的设备设置请求进行解析,用解析得到的SDK公钥计算设备归属信息头的HMAC得到第二HMAC值,根据第二HMAC值和设备所能接收的最大消息字节数生成设备状态变化通知,使用第二密钥对设备状态变化通知进行加密并将加密结果发送给SDK;
步骤S10:SDK使用第一密钥对接收到的加密结果进行解密,并用解密得到的第二HMAC值替换保存的设备归属信息中的HMAC,给终端设备返回确认响应;
相应的,本实施例中的步骤S10具体包括:
步骤S10-1:SDK使用第一密钥解密对接收到的设备状态变化通知密文进行解密,如解密成功则执行步骤S10-2,如解密失败则结束;
步骤S10-2:SDK用解密得到的设备状态变化通知中的第二HMAC值替换设备归属信息中的HMAC,得到新的设备归属信息,从设备状态变化通知中获取设备所能接收的最大消息字节数并保存;
可选的,本实施例方法还包括SDK与终端设备协商通讯数据的长度,具体包括:
步骤S4还包括:SDK保存生成的第三随机数;
步骤S10中的给终端设备返回确认响应之前还包括:
步骤W1:SDK根据设备所能接收到的最大消息字节数生成服务接收数据的最大长度,对服务接收数据的最大长度进行HMAC计算得到第三结果,使用第一密钥对服务接收数据的最大长度进行加密得到第三密文,根据第三结果和第三密文生成服务接收数据上限通知并发送给终端设备;
步骤W2:终端设备对服务接收数据上限通知进行解析得到第三结果和第三密文,使用第二密钥对第三密文进行解密,如解密成功则对解密得到的服务接收数据的最大长度进行HMAC计算,判断计算结果和第三结果是否一致,是则保存服务接收数据的最大长度;
步骤W3:终端设备使用第二密钥对第三随机数进行加密得到第四密文,对第三随机数进行HMAC计算得到第四结果,根据第四密文和第四结果生成确认请求并发送给SDK;
步骤W4:SDK对接收到的确认请求进行解析得到第四密文和第四结果,使用第一密钥对第四密文进行解密,如解密成功则对解密结果进行HMAC计算,判断计算结果和第四结果是否一致,如验证成功则执行步骤W5;
步骤W5:SDK判断解密结果中的第三随机数是否与保存的第三随机数一致,是则给终端设备返回确认响应,否则结束;
步骤S10中的给终端设备返回确认响应,包括:SDK对第二随机数进行HMAC计算得到第五结果,使用第一密钥对第三随机数进行加密得到第五密文,根据第五密文和第五结果得到确认响应,将确认响应发送给终端设备;
步骤S11:终端设备接收到确认响应后根据保存的重定向信息中的推送服务的地址与对应的推送服务建立长连接;
具体的,在本实施例中,在步骤S11包括:
步骤S11-1:终端设备对确认响应进行验证,若验证成功则根据设备标识生成用户名,根据用户名和第二密钥生成密码,根据用户名和密码生成长连接请求,根据保存的重定向信息中的推送服务的地址将长连接请求发送给对应的推送服务;
具体的,在本实施例中,步骤S11-1包括:
步骤M1:终端设备对确认响应进行解析得到第五密文和第五结果,使用第二密钥对第五密文进行解密,如解密成功则对解密结果进行HMAC计算,判断计算结果与第五结果是否一致,是则提示确认完成,执行步骤M2,否则报错,结束;
步骤M2:终端设备根据设备标识生成用户名,使用第二密钥加密用户名生成密码,根据用户名和密码生成长连接请求,根据保存的重定向信息中的推送服务的地址将长连接请求发送给对应的推送服务;
步骤S11-2:推送服务对接收到的长连接请求进行解析,根据解析得到用户名和密码对终端设备进行验证,如验证通过则推送服务与终端设备保持长连接;
具体的,在本实施例中,步骤S11-2包括:
步骤N1:推送服务解析长连接请求得到用户名和密码,根据保存的设备标识生成新用户名,判断解析得到的用户名与生成的新用户名是否匹配,是则执行步骤N2,否则验证失败,报错结束;
步骤N2:推送服务根据匹配的新用户名对应的设备标识获取SDK中的第一密钥,使用第一密钥对用户名进行加密,判断加密结果与密码是否一致,是则验证成功,推送服务与终端设备保持长链接,否则验证失败,报错,结束。
本实施例的方法还包括:当推送服务接收到用户输入的设备归属信息时则执行步骤B1,设备归属信息包括设备公钥、推送服务的身份信息和推送服务的地址;
步骤B1:推送服务给SDK发送初始化指令;
步骤B2:SDK接收到初始化指令后进行初始化,生成初始化响应并返回给推送服务;
步骤B3:推送服务判断接收到的响应的类型,如为初始化成功则执行步骤B4,如为初始化失败则报错,结束;
步骤B4:推送服务根据设备归属信息和预置的推送服务超时时间生成配置数据并发送给SDK;
步骤B5:SDK接收配置数据,保存配置数据中的设备归属信息和推送服务超时时间。
本实施例的方法还包括:当推送服务接收到用户触发的注册信息则执行步骤C1;
步骤C1:推送服务从所管理的目标终端设备中获取需要注册的终端设备,根据获取的所有终端设备的设备标识、设备归属信息和认证中心信息生成第一注册请求并发送给SDK;
进一步地,推送服务从所管理的目标终端设备中获取需要注册的终端设备的设备标识,包括:推送服务查询所管理的目标设备中是否存在未连接过推送服务的终端设备,是则从未连接过推送服务的终端设备中获取设备标识,和/或判断是否存在与推送服务建立连接的时间超过推送服务超时时间的终端设备,是则从与推送服务建立连接的时间超过推送服务超时时间的终端设备中获取设备标识;
例如,获取的设备标识可以为与推送服务未连接过的终端设备的设备标识、也可以为与推送服务连接超时的终端设备的设备标识,或为与推送服务未连接过的终端设备(a)的设备标识和与推送服务连接超时的终端设备(b)的设备标识;
步骤C2:SDK接收到第一注册请求后从认证中心获取第一随机数;
进一步地,步骤C2包括:
步骤C21:SDK生成随机数获取请求并发送给认证中心;
步骤C22:认证中心接收到随机数获取请求后生成第一随机数并返回给SDK;
步骤C23:SDK对保存接收到的第一随机数;
步骤C3:SDK根据注册请求中的设备归属信息、第一随机数、保存的推送服务超时时间生成第二注册请求并发送给认证中心;
进一步地,步骤C3包括:SDK根据设备归属信息、第一随机数、认证中心信息、保存的推送服务超时时间和推送服务公钥生成第一协议数据,根据预设哈希算法对第一协议数据进行哈希计算得到第一哈希值,根据第一哈希值、认证中心信息生成第一有效数据,根据预设签名算法使用推送服务私钥对第一有效数据进行签名得到第一签名值,根据第一有效数据和第一签名值生成第二协议数据,根据第一协议数据和第二协议数据生成注册请求并发送给认证中心;
步骤C4:认证中心对接收到的第二注册请求进行验证,如验证成功则将设备标识与第二注册请求中的第一协议数据和第二协议数据对应保存,执行步骤C5;
进一步地,步骤C4包括:
步骤A1:认证中心对接收到的第二注册请求进行解析得到第一协议数据和第二协议数据,从第二协议数据中获取第一有效数据、第一哈希值、第一签名值;
步骤A2:认证中心对第一协议数据进行哈希计算,判断哈希计算结果与第一哈希值是否一致,是则执行步骤A3,否则报错,结束;
步骤A3:认证中心对第一有效数据进行哈希计算,使用第一协议数据中的推送服务公钥对第一签名值进行解密,判断哈希计算结果与解密结果是否一致,是则将设备标识与第二注册请求中的第一协议数据和第二协议数据对应保存,执行步骤C5,否则报错,结束;
步骤C5:认证中心判断第一协议数据中的推送服务超时时间是否在预设范围内,是则执行步骤C6,否则生成预设范围内的推送服务超时时间,并用生成的推送服务超时时间替换第一协议数据中的推送服务超时时间,执行步骤C6;
步骤C6:认证中心将推送服务超时时间返回给SDK;
步骤C7:SDK保存接收到的推送服务超时时间,给推送服务返回包含推送服务超时时间的第一注册请求响应;
步骤C8:推送服务保存接收到的第一注册请求响应中的推送服务超时时间。
在本实施例中,SDK与认证中心之间的通讯数据、SDK与终端设备之间的通讯数据、终端设备与认证中心之间的通讯数据均可经过cbor编码后再进行传输。
本实施例方法适用于各种推送服务和终端设备,终端设备与认证中心连接,通过SDK(英文全称:Software Development Kit,中文全称:软件开发工具包)完成终端设备的身份验证和保护载入过程,然后终端设备使用推送服务的地址与对应的推送服务建立长连接。本实施例方案适用于任意厂商的终端设备和推送服务,使认证中心能动态的管理终端设备和推送服务,,终端设备上电后以安全可信的方式自动快速连接到推送服务,而无需线下用户参与,使用更加方便简单。
实施例二
本发明实施例二提供一种基于物联网的认证实现方法,包括注册过程和认证过程,注册过程如图2所示,包括:
步骤201:推送服务接收到用户输入的信息时,判断信息的类型,如为设备归属信息则执行步骤202-步骤207,如为触发的注册信息则执行步骤208;
在本实施例中,设备归属信息包括设备标识、设备公钥、推送服务的身份信息和推送服务的地址,推送服务的地址也就是目标链接的服务器地址,步骤201中可输入多个设备归属信息;
步骤202:推送服务给SDK发送初始化指令;
步骤203:SDK接收到初始化指令后进行初始化,生成初始化响应并返回给推送服务;
具体的,进行初始化包括:初始化内存空间,创建任务,申请变量;
可选的,在本实施例中,步骤203中如初始化成功则生成初始化成功响应,如初始化失败则生成初始化失败响应;
步骤204:推送服务判断接收到的初始化响应的类型,如为初始化成功则执行步骤206,如为初始化失败则执行步骤205;
步骤205:推送服务判断初始化次数是否达到预设值,是则报错,结束,否则返回步骤202;
在本实施例中,步骤205是可有可无的;
步骤206:推送服务根据设备归属信息和预置的推送服务超时时间生成配置数据并发送给SDK;
步骤207:SDK接收配置数据,保存配置数据中的设备归属信息和推送服务超时时间;
步骤208:推送服务查询所管理的目标终端设备中是否存在需要注册的终端设备,是则执行步骤209,否则等待接收终端设备发送的业务请求;
具体的,在本实施例中,步骤208包括:推送服务检查所管理的目标设备中是否存在未连接过推送服务的终端设备和/或判断是否存在与推送服务建立连接的时间超过推送服务超时时间的终端设备,是则执行步骤209,否则等待接收终端设备发送的长连接请求;
在本实施例中,步骤208之前还包括:推送服务接收用户输入的终端设备的设备归属信息和设备信息并对应保存;该设备归属信息和和设备信息均来自于制造站,设备归属信息包括设备标识、设备公钥、推送服务的身份信息和推送服务的地址,设备信息包括设备标识和设备公钥;
步骤209:推送服务获取需要注册的所有终端设备的设备标识,根据获取的设备标识、设备归属信息和认证中心信息生成第一注册请求,将第一注册请求发送给SDK;
具体的,本实施例中的认证中心信息包括:多个推送服务的地址和对应支持的协议类型;
步骤210:SDK对接收到的第一注册请求进行解析得到设备标识、设备归属信息和认证中心信息并对应保存;
步骤211:SDK生成随机数获取请求,对随机数获取请求进行cbor编码,将随机数获取请求编码结果发送给认证中心;
步骤212:认证中心接收到随机数获取请求编码结果后生成第一随机数,根据第一随机数生成第二响应,对第二响应进行cbor编码,将第二响应编码结果返回给SDK;
步骤213:SDK对接收到的第二响应编码结果进行解析得到第一随机数,保存第一随机数;
步骤214:SDK获取推送服务公钥和推送服务私钥,根据设备归属信息、第一随机数、认证中心信息、保存的推送服务超时时间和推送服务公钥生成to0d(中文全称:转让所有权协议0的数据,英文全称:transfer ownership protocol 0 data,简称第一协议数据),根据预设哈希算法对to0d进行哈希计算得到第一哈希值,根据第一哈希值、认证中心信息生成第一有效数据(即payload区数据),根据预设签名算法使用推送服务私钥对第一有效数据进行签名得到第一签名值,根据第一有效数据和第一签名值生成to1d(中文全称:转让所有权协议1的数据,英文全称:transfer ownership protocol 1 data,简称第二协议数据),根据to0d和to1d生成第二注册请求,对第二注册请求进行cbor编码,将第二注册请求编码结果发送给认证中心;
在本实施例中,SDK和推送服务共用一个数据库,推送服务私钥和推送服务公钥、SDK生成的第一密钥均保存在此数据库中;
例如,组成的to0d信息为:"to0d": {
"nonce": {
"nonce": "E9XgCtzEStuei7KHguKddg=="
},
"voucher": {
"certChain":
{
"chain": [
{
"issuerDN": { },
"name": "x509",
"publicKey": {
"algorithm": "EC",
"algorithmId": {},
"encoded": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERrvV6N04EW5dJAxRsjROJn6O2z1hIjltCLzsY4fH4cdTN1FhyR7vJlH0Fm5lwt1fYVpvu90loktScFsdQOuEig==",
"encodedInternal": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERrvV6N04EW5dJAxRsjROJn6O2z1hIjltCLzsY4fH4cdTN1FhyR7vJlH0Fm5lwt1fYVpvu90loktScFsdQOuEig==",
"encodedPublicValue": "BEa71ejdOBFuXSQMUbI0TiZ+jts9YSI5bQi87GOHx+HHUzdRYcke7yZR9BZuZcLdX2Fab7vdJaJLUnBbHUDrhIo=",
"format": "X.509",
"params": { },
"w": { }
},
"serialNumber": 3674384926778672600,
"serialNumberObject": { },
"sigAlgName": "SHA256withECDSA",
"sigAlgOID": "1.2.840.10045.4.3.2",
"signature": "MEUCIQC+BAxVBb9STKDWQUKc+C2bPKlJLS4PNnUI7EyZdJRNjAIgW/n0A+7790ECO1Qc94qGvB8/5t48lMuj90u1yhx55LQ=",
"subjectDN": { },
"tBSCertificate": "MIHEoAMCAQICCDL+CZ+IsUXQMAoGCCqGSM49BAMCMBQxEjAQBgNVBAMMCUZkb0VudGl0eTAgFw0yMjA3MjgwMTM0MzFaGA8yMDUyMDIyMTAxMzQzMVowFDESMBAGA1UEAwwJRmRvRW50aXR5MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAERrvV6N04EW5dJAxRsjROJn6O2z1hIjltCLzsY4fH4cdTN1FhyR7vJlH0Fm5lwt1fYVpvu90loktScFsdQOuEig==",
"type": "X.509",
"version": 3
},
{
"issuerDN": { },
"name": "x509",
"publicKey": {
"algorithm": "EC",
"algorithmId": { },
"encoded": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7EM4Qh7KSxwTLQYyZMVPvd1kxqaBHboRKVs7tUJtwaGp4MwG3omcIXEUNVxm3TTp2EX5woKX7Typw2mpzPXVDw==",
"encodedInternal": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7EM4Qh7KSxwTLQYyZMVPvd1kxqaBHboRKVs7tUJtwaGp4MwG3omcIXEUNVxm3TTp2EX5woKX7Typw2mpzPXVDw==",
"encodedPublicValue": "BOxDOEIeykscEy0GMmTFT73dZMamgR26ESlbO7VCbcGhqeDMBt6JnCFxFDVcZt006dhF+cKCl+08qcNpqcz11Q8=",
"format": "X.509",
"params": { },
"w": { }
},
"serialNumber": 8027455762135928000,
"serialNumberObject": { },
"sigAlgName": "SHA256withECDSA",
"sigAlgOID": "1.2.840.10045.4.3.2",
"signature": "MEQCIEvW7f3sjiE18HnG5BKDc1ytRZkR6hZrszkpO6Vu1J4LAiAwDRYUz9HyeV+atc2Id4klSKxRUPQVU1vBkrgGnuKLTA==",
"subjectDN": { },
"tBSCertificate": "MIHEoAMCAQICCG9nQHwARkpWMAoGCCqGSM49BAMCMBQxEjAQBgNVBAMMCUZkb0VudGl0eTAgFw0yMjA3MjgwMTM0MzFaGA8yMDUyMDIyMTAxMzQzMVowFDESMBAGA1UEAwwJRmRvRW50aXR5MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7EM4Qh7KSxwTLQYyZMVPvd1kxqaBHboRKVs7tUJtwaGp4MwG3omcIXEUNVxm3TTp2EX5woKX7Typw2mpzPXVDw==",
"type": "X.509",
"version": 3
}
],
"path": { }},
"entries":[{
"payload":"hrKKPR9Sf2wyB7g=",
"protectedHeader":"oQEm",
"signature":"mhujAJoU2qzmYGzXz4Q==",
"tag":"COSE_SIGN_1",
"unprotectedHeader":{
}
}],
"header": {
"protocol": "1.0", //协议版本
"guid": "102391944303101521000001",//设备标识
"rendezvousInfo": [{//认证中心信息
"value": "aTEyNy4wLjAuMQ==",
"variable": "DNS"
}, {
"value": "80",
"variable": "DEV_PORT"
}, {
"value": "192.168.0.2",
"variable": "IP_ADDRESS"
}, {
"value": "80",
"variable": "OWNER_PORT"
} {
"value": "HTTPS",
"variable": "PROTOCOL"
}],
"deviceInfo": "DemoDevice",//设备描述信息
"mfgPubkey": "mhujAJoUAmlESmYpsPX4taBFazTojZSn/xLYGzXz4Q==",//制造站公钥
"devCertChainHash": "8mhw+9TwS7OzbGVvVsqxOw=="//设备证书链hash
组成的told信息为:"to1d": {
"payload":{
"rendezvousInfo": [{
"value": "aTEyNy4wLjAuMQ==",
"variable": "DNS"
}, {
"value": "80",
"variable": "DEV_PORT"
}, {
"value": "192.168.0.2",
"variable": "IP_ADDRESS"
}, {
"value": "80",
"variable": "OWNER_PORT"
} {
"value": "HTTPS",
"variable": "PROTOCOL"
}],
"hash": {
"hashType": "SHA256",
"hashValue": "/cgPU8g6VNx3SheH41HPSTSlgccuqEty/7B8cmpeO8w="
}
"protectedHeader": "oQEm",
"signature": "df0o5r3aFZ3OWXxVocbcUIQXQ3O0cx7oOQU7GK9vUcK0AzK90qWlx+w==",
"tag": "COSE_SIGN_1",
"unprotectedHeader": {}
}
其中,value为推送服务支持的协议和推送服务器地址的具体值,variable为value的名称(协议或者服务器地址);
步骤215:认证中心对接收到的第二注册请求编码结果进行解析,对解析得到的第二注册请求进行验证,如验证成功则将设备标识与第二注册请求中的第一协议数据和第二协议数据对应保存,执行步骤219,如验证失败则报错,结束;
具体的,在本实施例中,对解析得到的第二注册请求进行验证包括:
步骤A1:对解析得到的第二注册请求进行解析得到to0d和to1d,从to1d获取第一有效数据(payload区数据)、第一哈希值、第一签名值;
步骤A2:对to0d进行哈希计算,判断哈希计算结果与第一哈希值是否一致,是则执行步骤A3,否则验证失败;
步骤A3:对第一有效数据进行哈希计算,使用to0d中的推送服务公钥对第一签名值进行解密,判断哈希计算结果与解密结果是否一致,是则验证成功,否则验证失败;
可选的,本实施例中的步骤A2和步骤A3没有先后顺序;
步骤216:认证中心判第一协议数据中的推送服务超时时间是否在预设范围内,是则执行步骤217,否则生成一个在预设范围内的推送服务超时时间,并用生成的推送服务超时时间替换第一协议数据中的推送服务超时时间,执行步骤217;
步骤217:认证中心对推送服务超时时间进行cbor编码得到第三编码,将第三编码结果返回给SDK;
步骤218:SDK对第三编码结果进行解析,保存解析得到的推送服务超时时间,给推送服务返回包含推送服务超时时间的第一注册请求响应;
步骤219:推送服务从接收到的第一注册请求响应中提取推送服务超时时间并保存;
本实施例中的认证过程如图3和图4所示,包括:
步骤301:当终端设备接收到用户触发的连接信息时使用设备私钥对设备标识进行签名得到设备签名结果,根据设备标识和设备签名结果生成载入请求,对载入请求进行cbor编码,将载入请求编码结果发送给认证中心;
例如,本实施例中该步骤的载入请求为:请求路径:https://192.168.0.1/fdo/101/msg/30;
其中,msg为:{
"guid": "102391944303101521000001",
"signature": "Qizt0axf5/l6lBG1xyH+Pt/oGcFaCbE1QvV+4EgMR0QVOKo8XOYdM6zOfa36/yHOv0BiCUXQPEQOUJ43j1+QMg=="
}
在本实施例中,步骤301之前还包括:终端设备烧录应用程序、验证应用程序(开机自检)、启动应用程序(开机);
步骤302:认证中心对接收到的载入请求编码结果进行解析得到设备标识和设备签名结果,根据设备标识查询第一协议数据和第二协议数据,如找到则执行步骤303,如未找到则报错,结束;
步骤303:认证中心获取第一协议数据中的设备归属信息,使用设备归属信息中的设备公钥和设备标识对设备签名结果进行验证,如验证成功则根据设备标识从第二协议数据中获取推送服务的地址,根据推送服务的地址生成重定向信息,对重定向信息进行cbor编码,给终端设备返回重定向信息编码结果,如验证失败则报错,结束;
具体的,在本实施例中,使用设备归属信息中的设备公钥和设备标识对设备签名结果进行验证包括:所述认证中心使用设备归属信息中的设备公钥对设备签名结果进行解密,对设备标识进行哈希计算,判断解密结果与哈希计算结果是否匹配,是则验证成功,如验证失败则报错;
根据设备标识从第二协议数据中获取推送服务的地址,根据推送服务的地址生成重定向信息包括:认证中心根据设备标识从对应的to1d中获取payload区数据,获取payload区数据中的认证中心信息,从认证中心信息中提取推送服务的地址和支持的协议类型,根据推送服务的地址和支持的协议类型生成重定向信息;
步骤304:终端设备接收到重定向信息编码结果后进行解析得到重定向信息并保存,根据设备标识、设备能接收的最大消息、生成的第二随机数、密钥交换协议和密码套件生成连接请求,对连接请求进行cbor编码,将连接请求编码结果发送给SDK;
例如,该步骤中生成得到的连接请求为:
{
"cipherSuiteType": "",
"guid": {102391944303101521000001},
"kexSuiteName": "ECDH256",
"maxMessageSize": 0,
"proveTo2Ov": {
"nonce": "uwNHSFbOSf+N2IVfqAVPag=="
},
}
步骤305:SDK对接收到的连接请求编码结果进行解析得到连接请求,从连接请求中获取密钥交换协议和密码套件、第二随机数、设备标识,根据密钥交换协议和密码套件生成第一密钥交换参数并保存;
步骤306:SDK根据设备标识查询对应的设备归属信息,使用SDK公钥对设备归属信息头进行HMAC(中文全称:哈希运算消息认证码,英文全称:Hash-based MessageAuthentication Code)计算得到第一HMAC值,对连接请求进行哈希计算得到请求哈希值,生成第三随机数并保存,根据设备归属信息、连接请求、第一密钥交换参数、第一HMAC值、请求哈希值、第二随机数和第三随机数生成连接请求响应;
步骤307:SDK对连接请求响应进行cbor编码,将连接请求响应编码结果返回给终端设备;
步骤308:终端设备对接收到的连接请求响应编码结果进行解析得到连接请求响应,根据第二随机数验证连接请求响应的合法性和有效性,如验证成功则保存连接请求响应中的第一密钥交换参数,执行步骤309,如验证失败则报错,结束;
具体的,在本实施例中,步骤308包括:终端设备对接收到的连接请求响应编码结果进行解析得到设备归属信息、连接请求、第一密钥交换参数、第一HMAC值、请求哈希值、第二随机数和第三随机数,对解析得到的连接请求进行哈希计算得到第一哈希结果,从解析得到的设备归属信息中获取HMAC,对解析得到的设备归属信息进行HMAC计算,分别判断获取到的HMAC与计算得到的HMAC值是否一致、判断解析得到的请求哈希值与第一哈希结果是否一致、判断保存的第二随机数与解析得到的第二随机数是否一致,如均判断为是则执行步骤309,否则验证失败,报错,结束;
例如,该步骤中的连接请求响应为:
{
"header":
{
"protocol": "1.0", //协议版本
"guid": "102391944303101521000001",//设备标识
"rendezvousInfo": [{//认证中心信息
"value": "aTEyNy4wLjAuMQ==",
"variable": "DNS"
}, {
"value": "80",
"variable": "DEV_PORT"
}, {
"value": "192.168.0.2",
"variable": "IP_ADDRESS"
}, {
"value": "80",
"variable": "OWNER_PORT"
} {
"value": "HTTPS",
"variable": "PROTOCOL"
}],
"deviceInfo": "DemoDevice",//设备描述信息
"mfgPubkey": "mhujAJoUAmlESmYpsPX4taBFazTojZSn/xLYGzXz4Q==",//制造站公钥
"devCertChainHash": "8mhw+9TwS7OzbGVvVsqxOw=="//设备证书链hash
},
"helloDeviceHash": {
"hashType": "SHA256",
"hash": "8J/Go6zRmTgU97nBvfcjHba/PGFxgbPZ9GKkNlmnrdk="
},
"hmac": {
"hashType": "HMAC_SHA256",
"hash": "HI9lE0ekjPIzpF05XWR/+HcM1M0aKezJWoRQ5RUWvRE="
},
"xAKeyExchange": "3081df30819706092a864886f70d010301308189024100fca682ce8e12caba26efccf7110e526db078b05edecbcd1eb4a208f3ae1617ae01f35b91a47e6df63413c5e12ed0899bcd132acd50d99151bdc43ee737592e170240678471b27a9cf44ee91a49c5147db1a9aaf244f05a434d6486931d2d14271b9e35030b71fd73da179069b32e2935630e1c2062354d0da20a6c416e50be794ca40202018003430002405b6986dae1551b61b053323ce6e7eb398df71a30cee556ab81318fc8405e37c31408f2ddfe5af481f565fc60f9991c85dfb4c9faed3981c25048341542cbb54e",
"maxOwnerMessageSize": 0,
"nonceTO2ProveOV": "zAN+aqLdRJWoAn3zpGvTWg==",
"numOVEntries": 1,
"eBSigInfo": {
"info": "",
"sigInfoType": "SECP256R1"
}
}
步骤309:终端设备保存第一密钥交换参数,根据密钥交换协议和密码套件生成第二密钥交换参数,根据第二密钥交换参数、第二随机数、第三随机数、设备标识生成第二有效数据,使用设备私钥对第二有效数据进行签名得到第二有效数据签名结果,根据第二有效数据签名结果和第二有效数据生成设备证明请求,对设备证明请求进行cbor编码,将设备证明请求编码结果发送给SDK;
可选的,在该步骤309中终端设备保存第三随机数;
例如,该步骤中生成的设备证明请求为:
{
"payload": {
"xBKeyExchange": 3081d202010030819706092a864886f70d010301308189024100fca682ce8e12caba26efccf7110e526db078b05edecbcd1eb4a208f3ae1617ae01f35b91a47e6df63413c5e12ed0899bcd132acd50d99151bdc43ee737592e170240678471b27a9cf44ee91a49c5147db1a9aaf244f05a434d6486931d2d14271b9e35030b71fd73da179069b32e2935630e1c2062354d0da20a6c416e50be794ca4020201800433023100fafa6943274c4cdc612ca383b6251dbef545023f1919e2d07dbc1466b906e7b0e58934fe57a02bbf34388df009d5ee97",
"nonceTO2ProveDv": "zAN+aqLdRJWoAn3zpGvTWg==",
"guid": "102391944303101521000001"
},
"protectedHeader": "oQEm",
"signature": "Qizt0axf5/l6lBG1xyH+Pt/oGcFaCbE1QvV+4EgMR0QVOKo8XOYdM6zOfa36/yHOv0BiCUXQPEQOUJ43j1+QMg==", "tag": "COSE_SIGN_1",
"unprotectedHeader": {
"euphNonce": {
"nonceTO2SetupDv": "8mhw+9TwS7OzbGVvVsqxOw=="
},
}
}
步骤310:SDK对接收到的设备证明请求编码结果进行解析得到设备证明请求,根据保存的设备归属信息对设备证明请求进行验证,如验证成功则执行步骤311,如验证失败则结束;
具体的,在本实施例中,步骤310包括:SDK对接收到的设备证明请求编码结果进行解析得到设备证明请求,对设备证明请求进行解析得到第二有效数据和第二有效数据签名结果,对第二有效数据进行解析得到第二密钥交换参数、第二随机数、第三随机数和设备标识,根据设备标识获取对应的设备归属信息,获取设备归属信息中的设备公钥,使用获取的设备公钥对第二有效数据签名结果进行解密,对解析得到的第二有效数据进行哈希计算,判断解密结果与哈希计算结果是否一致,是则验证成功,否则验证失败;
步骤311:SDK从设备证明请求中获取第二密钥交换参数,根据第二密钥交换参数和保存的第一密钥交换参数生成第一密钥;
在本实施例中,第一密钥交换参数包括ECDH密钥交换算法,第一密钥为对称密钥;
步骤312:SDK从设备证明请求中获取第三随机数和和设备标识,根据SDK公钥、设备标识、第三随机数和设备归属信息组成第三有效数据,使用SDK私钥对第三有效数据进行签名生成第三有效数据签名结果;
步骤313:SDK根据第三有效数据和第三有效数据签名结果生成设备设置请求,使用第一密钥对设备设置请求进行加密,对设备设置请求密文进行cbor编码得到第一编码结果,将第一编码结果发送给终端设备;
例如,该步骤中生成的设备设置请求为:
{
"payload": {
"rendezvousInfo": [{
"value": "aTEyNy4wLjAuMQ==",
"variable": "DNS"
}, {
"value": "80",
"variable": "DEV_PORT"
}, {
"value": "192.168.0.2",
"variable": "IP_ADDRESS"
}, {
"value": "80",
"variable": "OWNER_PORT"
} {
"value": "HTTPS",
"variable": "PROTOCOL"
}],
"nonceTO2SetupDv": "zAN+aqLdRJWoAn3zpGvTWg==",
"guid": {102391944303101521000001},
"owner2Key":"MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALFdBCHzc88aTZsenekRo//Se4wyaPpP
r3F3zbVl5ebrZ6SN4/hugPJmMa4gEUGo+c0n9tO8vl7T4jBB3u0ZlEUCAwEAAQ=="
},
"protectedHeader": "oQEm",
"signature": "MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAsV0EIfNzzxpNmx6d
6RGj/9J7jDJo+k+vcXfNtWXl5utnpI3j+G6A8mYxriARQaj5zSf207y+XtPiMEHe
7RmURQIDAQABAkADBS541Yh3Ul9X8OG",
"tag": "COSE_SIGN_1",
"unprotectedHeader": {}
}
步骤314:终端设备对接收到的第一编码结果进行解析得到设备设置请求密文,根据第一密钥交换参数和第二密钥交换参数生成第二密钥,并使用第二密钥对设备设置请求密文进行解密,如解密成功则执行步骤315,如解密失败则报错,结束;
步骤315:终端设备对设备设置请求进行解析得到第三有效数据和第三有效数据签名结果,用第三有效数据中的SDK公钥计算设备归属信息头的HMAC得到第二HMAC值,根据第二HMAC值和设备所能接收的最大消息字节数生成设备状态变化通知,使用第二密钥对设备状态变化通知进行加密,对设备状态变化通知密文进行cbor编码得到第二编码结果,将第二编码结果发送给SDK;
例如,步骤315中生成的设备状态变化通知为:
{
"hmac": {
"hashType": "HMAC_SHA256",
"hashValue": "51f2d92e6529e5b74106e8f0c9242f61e0f1d3f83682a1cf7e2ea87644dd9472"
},
"maxMessageSize": 1300
}
步骤316:SDK对接收到的第二编码结果进行解析,使用第一密钥对解析结果进行验证,如验证成功则执行步骤317,如验证失败则结束;
具体的,在本实施例中,该步骤316中使用第一密钥对解析结果进行验证包括:获取解析结果中的设备状态变化通知密文,使用第一密钥解密对设备状态变化通知密文进行解密,如解密成功则执行步骤317,如解密失败则报错,结束;
步骤317:SDK用解密得到的设备状态变化通知中的第二HMAC值替换设备归属信息中的HMAC,得到新的设备归属信息;
步骤318:SDK从设备状态变化通知中获取设备所能接收的最大消息字节数并保存;
步骤319:SDK根据设备所能接收到的最大消息字节数生成服务接收数据的最大长度,对服务接收数据的最大长度进行HMAC计算得到第三结果,使用第一密钥对服务接收数据的最大长度进行加密得到第三密文,根据第三结果和第三密文生成服务接收数据上限通知,对服务接收数据上限通知进行cbor编码得到第三编码结果,将第三编码结果发送给终端设备;
例如,本实施例中该步骤中生成的服务接收数据的最大长度为:
{
"maxMessageSize": 1300,
"hmac": {
"hashType": "HMAC_SHA256",
"hashValue": "4aeb48c8e862713b3cabef2b109083929f236f13ce83571203fe47768d73ef73"
}
}
步骤320:终端设备对接收到的第三编码结果进行解析服务接收数据上限通知,并使用第二密钥对服务接收数据上限通知进行验证,如验证成功则执行步骤321,如验证失败则报错,结束;
具体的,在本实施例中,步骤320中使用第二密钥对服务接收数据上限通知进行验证包括:对服务接收数据上限通知进行解析得到第三结果和第三密文,用第二密钥对第三密文进行解密,如解密失败则报错,结束,如解密成功则对解密得到的服务接收数据的最大长度进行HMAC计算,判断计算结果和第三结果是否一致,是则验证成功,否则验证失败;
步骤321:终端设备保存服务接收数据的最大长度,使用第二密钥对保存的第三随机数进行加密得到第四密文,并对第三随机数进行HMAC计算得到第四结果,根据第四密文和第四结果生成确认请求,对确认请求进行cbor编码得到第四编码结果,将第四编码结果发送给SDK;
例如,本实施例中步骤321中生成得到的确认请求为:
{
"nonce": {
"nonce": "vKeVbjqDRoaXIPC2piJEJg=="
},
"hmac": {
"hashType": "HMAC_SHA256",
"hashValue": "8ba23284cd8bcaf19d659420075050943600dd80b7480e1c987dde20cb0bb44e"
}
}
步骤322:SDK对接收到的第四编码结果进行解析得到确认请求,使用第一密钥对确认请求进行验证,如验证成功则执行步骤323,如验证失败则结束;
具体的,在本实施例中,步骤322中的使用第一密钥对确认请求进行验证包括:对确认请求进行解析得到第四密文和第四结果,用第一密钥对第四密文进行解密,如解密失败则报错,结束,如解密成功则对解密得到的第三随机数进行HMAC计算,判断计算结果和第四结果是否一致,是则验证成功,否则验证失败;
步骤323:SDK判断解密得到的第三随机数是否与保存的第三随机数一致,是则执行步骤324,否则结束;
步骤324:SDK对第三随机数进行HMAC计算得到第五结果,使用第一密钥对第三随机数进行加密得到第五密文,根据第五密文和第五结果得到确认响应,对确认响应进行cbor编码,将确认响应编码结果发送给终端设备;
例如,该步骤324中的生成确认响应为:
{
"nonce": {
"nonce": "vKeVbjqDRoaXIPC2piJEJg=="
} ,
"hmac": {
"hashType": "HMAC_SHA256",
"hashValue": "3cf0b84a349d96a52f222d1e1f79c0072429d6724bd85fc9547ae81040612171"
}
}
步骤325:终端设备对接收到的确认响应编码结果进行解析得到确认响应,并使用第二密钥对确认响应进行验证,如验证成功则提示确认完成,执行步骤326,如验证失败则报错,结束;
在本实施例中,步骤325中的验证过程与步骤320中相同,包括:终端设备对确认响应进行解析得到第五密文和第五结果,使第二密钥对第五密文进行解密,如解密失败则报错,结束,如解密成功则对解密结果进行HMAC计算,判断计算结果与第五结果是否一致;
步骤326:终端设备根据设备标识生成用户名,使用第二密钥对用户名进行加密得到密码,根据用户名和密码生成长连接请求,根据保存的重定向信息中的推送服务的地址将长连接请求发送给对应的推送服务;
例如,步骤326中生成得到的长连接请求为:
{
"username": "102391944303101521000001",
"password":Uoq3yxeaP3ID485591BSqX2VB+Q4YlWWOtEkIPMZdR8=,
};
步骤327:推送服务对接收到的长连接请求进行解析,根据解析得到用户名和密码对终端设备进行验证,如验证通过,则推送服务与终端设备建立长链接,如验证未通过,则报错,结束。
具体的,在本实施例中,步骤327包括:
步骤327-1:推送服务对接收到的长连接请求进行解析得到用户名和密码,根据保存的设备标识生成新用户名,判断获取的用户名与生成的新用户名是否匹配,是则执行步骤327-2,否则验证失败,报错,结束;
步骤327-2:推送服务根据匹配的新用户名对应的设备标识获取SDK中的第一密钥,使用第一密钥对用户名进行加密,判断加密结果与解析得到的密码是否一致,是则验证成功,推送服务与终端设备保持长链接,否则验证失败,报错,结束。
在本实施例中,制造商B生产终端设备A,企业C(拥有推送服务)采购终端设备A、和SDK(英文全称:Software Development Kit,中文全称:软件开发工具包),推送服务通过SDK注册到认证中心,推送服务注册完成后认证中心得知推送服务管理的所有终端设备并保存有所有终端设备的设备标识;制造商将终端设备A供货给企业C的客户使用,终端设备开机自动将终端设备注册到认证中心,认证中心判断当前终端设备标识已保存,将当前终端设备归属的推送服务的服务地址发送给当前终端设备,当前终端设备使用服务地址与对应的推送服务建立长连接。客户拿到终端设备A之后,进行业务处理。
本实施例方法适用于包含推送服务、SDK、认证中心和终端设备的系统,其中,推送服务通过SDK注册到认证中心,即认证中心保存推送服务的地址;终端设备从认证中心获取可连接的推送服务的地址,推送服务通过SDK对终端设备进行认证,认证成功后终端设备使用推送服务的地址与对应的推送服务建立长连接。本实施例方案对于终端设备和推送服务均没有限制,适用于任意厂商的终端设备和任意推送服务(第三方云服务),终端设备上电后以安全可信的方式自动快速连接到推送服务进行工作,而无需线下用户参与,使用更加方便简单。
本实施例还提供一种基于物联网的认证实现系统,包括:终端设备、认证中心和SDK,用于实现实施例一和实施例二所公开的基于物联网的认证实现方法。
可选的,本申请的实施例还提供了一种电子设备,电子设备包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的基于物联网的认证实现方法。该电子设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的基于物联网的认证实现方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在电子设备上加载和执行计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、电子设备、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、电子设备、服务器或数据中心进行传输。所述计算机可读存储介质可以是电子设备能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (21)

1.一种基于物联网的认证实现方法,其特征在于,包括:
步骤S1:终端设备使用设备私钥对设备标识进行签名得到设备签名结果,根据所述设备标识和所述设备签名结果生成载入请求并发送给认证中心;
步骤S2:所述认证中心根据保存的设备公钥对接收到的所述载入请求进行验证,如验证成功则根据所述载入请求中的设备标识从保存的第二协议数据中获取推送服务的地址,根据所述推送服务的地址生成重定向信息并返回给所述终端设备,执行步骤S3,如验证失败则报错,结束;
步骤S3:所述终端设备接收重定向信息并保存,根据所述设备标识、生成的第二随机数、密钥交换协议和密码套件生成连接请求并发送给SDK;
步骤S4:所述SDK保存所述连接请求中的第二随机数,根据所述连接请求中的密钥交换协议和所述密码套件生成第一密钥交换参数并保存,根据所述连接请求中的设备标识查询保存的对应设备归属信息,使用SDK公钥计算所述设备归属信息头的HMAC得到第一HMAC值,对所述连接请求进行哈希计算得到请求哈希值,根据所述设备归属信息、所述连接请求、所述第一密钥交换参数、所述第一HMAC值、所述请求哈希值、所述第二随机数和生成的第三随机数生成连接请求响应并返回给所述终端设备;
步骤S5:所述终端设备根据所述第二随机数验证所述连接请求响应的合法性和有效性,如验证成功则执行步骤S6,否则报错,结束;
步骤S6:所述终端设备保存所述连接请求响应中的第一密钥交换参数,根据所述密钥交换协议和所述密码套件生成第二密钥交换参数,根据所述第二密钥交换参数、所述第二随机数、所述连接请求响应中的第三随机数和所述设备标识生成第二有效数据,使用所述设备私钥对所述第二有效数据进行签名得到第二有效数据签名结果,根据所述第二有效数据签名结果和所述第二有效数据生成设备证明请求并发送给所述SDK;
步骤S7:所述SDK根据保存的所述设备归属信息对所述设备证明请求进行验证,如验证成功则执行步骤S8;
步骤S8:所述SDK根据保存的第一密钥交换参数和设备证明请求中的第二密钥交换参数生成第一密钥,根据SDK公钥、设备归属信息、所述设备证明请求中的设备标识和第三随机数生成第三有效数据,使用SDK私钥对所述第三有效数据进行签名得到第三有效数据签名结果,使用所述第一密钥对包含所述第三有效数据和所述第三有效数据签名结果的设备设置请求进行加密并将加密结果发送给所述终端设备;
步骤S9:所述终端设备根据所述第一密钥交换参数和第二密钥交换参数生成第二密钥,使用所述第二密钥对接收到的加密结果进行解密,对解密得到的设备设置请求进行解析,用解析得到的SDK公钥计算设备归属信息头的HMAC得到第二HMAC值,使用所述第二密钥对所述第二HMAC值进行加密并将加密结果发送给所述SDK;
步骤S10:所述SDK使用所述第一密钥对接收到的加密结果进行解密,并用解密得到的第二HMAC值替换保存的设备归属信息中的HMAC,给所述终端设备返回确认响应;
步骤S11:所述终端设备接收到所述确认响应后根据保存的重定向信息中的推送服务的地址与对应的推送服务建立长连接。
2.如权利要求1所述的方法,其特征在于,所述步骤S2包括:
步骤S21:所述认证中心对接收到的载入请求进行解析得到设备标识和设备签名结果,根据所述设备标识查询第一协议数据和第二协议数据,如找到第一协议数据和第二协议数据则执行步骤S22,如未找到则报错,结束;
步骤S22:所述认证中心获取所述第一协议数据中的设备归属信息,使用所述设备归属信息中的设备公钥和所述设备标识对所述设备签名结果进行验证,如验证成功则根据所述设备标识从所述第二协议数据中获取推送服务的地址,根据所述推送服务的地址生成重定向信息并返回给终端设备,执行步骤S3,如验证失败则报错,结束。
3.如权利要求1所述的方法,其特征在于,所述步骤S5包括:所述终端设备对接收到的所述连接请求响应进行解析得到设备归属信息、连接请求、第一密钥交换参数、第一HMAC值、请求哈希值、第二随机数和第三随机数,对解析得到的所述连接请求进行哈希计算得到第一哈希结果,从解析得到的所述设备归属信息中获取HMAC,对解析得到的设备归属信息进行HMAC计算,分别判断获取到的HMAC与计算得到的HMAC值是否一致、判断解析得到的请求哈希值与所述第一哈希结果是否一致、判断保存的第二随机数与解析得到的第二随机数是否一致,如均判断为是则执行步骤S6,否则验证失败,报错,结束。
4.如权利要求1所述的方法,其特征在于,所述步骤S7包括:所述SDK对接收到的所述设备证明请求进行解析得到第二有效数据和第二有效数据签名结果,对所述第二有效数据进行解析得到第二密钥交换参数、第二随机数、第三随机数和设备标识,根据所述设备标识获取对应的设备归属信息,获取所述设备归属信息中的设备公钥,使用所述设备公钥对所述第二有效数据签名结果进行解密,对解析得到的第二有效数据进行哈希计算,判断解密结果与哈希计算结果是否一致,是则验证成功,执行步骤S8,否则验证失败,向所述终端设备报错。
5.如权利要求1所述的方法,其特征在于,所述步骤S8包括:
步骤S81:所述SDK从所述设备证明请求中获取第二密钥交换参数,根据所述第二密钥交换参数和保存的第一密钥交换参数生成第一密钥;
步骤S82:所述SDK从所述设备证明请求中获取第三随机数和设备标识,根据SDK公钥、所述设备标识、所述第三随机数和设备归属信息组成第三有效数据,使用SDK私钥对所述第三有效数据进行签名生成第三有效数据签名结果;
步骤S83:所述SDK根据所述第三有效数据和所述第三有效数据签名结果生成设备设置请求,使用所述第一密钥对所述设备设置请求进行加密,并将设备设置请求密文发送给终端设备。
6.如权利要求1所述的方法,其特征在于,所述步骤S9包括:所述终端设备根据所述第一密钥交换参数和所述第二密钥参数生成第二密钥,使用所述第二密钥对接收到的加密结果进行解密,如解密成功则对解密得到的设备设置请求进行解析,用解析得到的SDK公钥计算设备归属信息头的HMAC得到第二HMAC值,根据所述第二HMAC值和设备所能接收的最大消息字节数生成设备状态变化通知,使用所述第二密钥对所述设备状态变化通知进行加密并将加密结果发送给所述SDK。
7.如权利要求6所述的方法,其特征在于,所述步骤S10包括:
步骤S10-1:所述SDK使用所述第一密钥解密对接收到的设备状态变化通知密文进行解密,如解密成功则执行步骤S10-2,如解密失败则结束;
步骤S10-2:所述SDK用解密得到的设备状态变化通知中的第二HMAC值替换设备归属信息中的HMAC,得到新的设备归属信息,从所述设备状态变化通知中获取设备所能接收的最大消息字节数并保存。
8.如权利要求7所述的方法,其特征在于,所述步骤S4还包括:所述SDK保存生成的第三随机数;
所述步骤S10中的所述给终端设备返回确认响应之前还包括:
步骤W1:所述SDK根据所述设备所能接收到的最大消息字节数生成服务接收数据的最大长度,对所述服务接收数据的最大长度进行HMAC计算得到第三结果,使用所述第一密钥对所述服务接收数据的最大长度进行加密得到第三密文,根据所述第三结果和所述第三密文生成服务接收数据上限通知并发送给所述终端设备;
步骤W2:所述终端设备对所述服务接收数据上限通知进行解析得到第三结果和第三密文,使用第二密钥对接收到的第三密文进行解密,如解密成功则对解密得到的服务接收数据的最大长度进行HMAC计算,判断计算结果和所述第三结果是否一致,是则保存所述服务接收数据的最大长度;
步骤W3:所述终端设备使用所述第二密钥对所述第三随机数进行加密得到第四密文,对所述第三随机数进行HMAC计算得到第四结果,将所述第四密文和所述第四结果生成确认请求并发送给所述SDK;
步骤W4:所述SDK对接收到的所述确认请求进行解析得到第四密文和第四结果,使用所述第一密钥对所述第四密文进行解密,如解密成功则对解密结果进行HMAC计算,判断计算结果和所述第四结果是否一致,如验证成功则执行步骤W5;
步骤W5:所述SDK判断解密结果中的第三随机数是否与保存的第三随机数一致,是则给所述终端设备返回确认响应,否则结束;
所述给所述终端设备返回确认响应,包括:所述SDK对所述第二随机数进行HMAC计算得到第五结果,使用所述第一密钥对所述第三随机数进行加密得到第五密文,根据所述第五密文和所述第五结果得到确认响应,将所述确认响应发送给所述终端设备。
9.如权利要求8所述的方法,其特征在于,所述步骤S11包括:
步骤S11-1:所述终端设备对所述确认响应进行验证,若验证成功则根据所述设备标识生成用户名,根据所述用户名和所述第二密钥生成密码,根据所述用户名和所述密码生成长连接请求,根据保存的重定向信息中的推送服务的地址将所述长连接请求发送给对应的推送服务;
步骤S11-2:所述推送服务对接收到的所述长连接请求进行解析,根据解析得到用户名和密码对所述终端设备进行验证,如验证通过则所述推送服务与所述终端设备保持长连接。
10.如权利要求9所述的方法,其特征在于,所述步骤S11-1包括:
步骤M1:所述终端设备对所述确认响应进行解析得到第五密文和第五结果,使用第二密钥对所述第五密文进行解密,如解密成功则对解密结果进行HMAC计算,判断计算结果与所述第五结果是否一致,是则提示确认完成,执行步骤M2,否则报错,结束;
步骤M2:所述终端设备根据所述设备标识生成用户名,使用所述第二密钥加密所述用户名生成密码,根据所述用户名和所述密码生成长连接请求,根据保存的所述重定向信息中的推送服务的地址将所述长连接请求发送给对应的所述推送服务。
11.如权利要求9所述的方法,其特征在于,所述步骤S11-2包括:
步骤N1:所述推送服务解析所述长连接请求得到用户名和密码,根据保存的设备标识生成新用户名,判断获取的用户名与生成的新用户名是否匹配,是则执行步骤N2,否则验证失败,报错结束;
步骤N2:所述推送服务根据匹配的新用户名对应的设备标识获取SDK中的第一密钥,使用所述第一密钥对所述用户名进行加密,判断加密结果与所述密码是否一致,是则验证成功,所述推送服务与所述终端设备保持长链接,否则验证失败,报错,结束。
12.如权利要求1所述的方法,其特征在于,还包括:当所述推送服务接收到用户输入的设备归属信息时则执行步骤B1,所述设备归属信息包括设备标识、设备公钥、推送服务的身份信息和推送服务的地址;
步骤B1:所述推送服务给所述SDK发送初始化指令;
步骤B2:所述SDK接收到所述初始化指令后进行初始化,生成初始化响应并返回给所述推送服务;
步骤B3:所述推送服务判断接收到的响应的类型,如为初始化成功则执行步骤B4,如为初始化失败则报错,结束;
步骤B4:所述推送服务根据所述设备归属信息和预置的推送服务超时时间生成配置数据并发送给所述SDK;
步骤B5:所述SDK接收配置数据,保存所述配置数据中的设备归属信息和推送服务超时时间。
13.如权利要求1所述的方法,其特征在于,还包括:当所述推送服务接收到用户触发的注册信息则执行步骤C1;
步骤C1:所述推送服务从所管理的目标终端设备中获取需要注册的终端设备的设备标识,根据所有获取的终端设备的设备标识、所述设备归属信息和认证中心信息生成第一注册请求并发送给所述SDK;
步骤C2:所述SDK接收到第一注册请求后从所述认证中心获取第一随机数;
步骤C3:所述SDK根据所述注册请求中的设备归属信息、所述第一随机数和保存的推送服务超时时间生成第二注册请求并发送给所述认证中心;
步骤C4:所述认证中心对接收到的第二注册请求进行验证,如验证成功则将所述设备标识与所述第二注册请求中的第一协议数据和第二协议数据对应保存,执行步骤C5;
步骤C5:所述认证中心判断所述第一协议数据中的推送服务超时时间是否在预设范围内,是则执行步骤C6,否则生成预设范围内的推送服务超时时间,并用生成的推送服务超时时间替换所述第一协议数据中的推送服务超时时间,执行步骤C6;
步骤C6:所述认证中心将所述推送服务超时时间返回给所述SDK;
步骤C7:所述SDK保存接收到的推送服务超时时间,给所述推送服务返回包含推送服务超时时间的第一注册请求响应;
步骤C8:所述推送服务保存接收到的所述第一注册请求响应中的推送服务超时时间。
14.如权利要求13所述的方法,其特征在于,所述推送服务从所管理的目标终端设备中获取需要注册的终端设备的设备标识,包括:所述推送服务查询所管理的目标设备中是否存在未连接过所述推送服务的终端设备,是则从未连接过所述推送服务的终端设备中获取设备标识,和/或判断是否存在与所述推送服务建立连接的时间超过推送服务超时时间的终端设备,是则从与所述推送服务建立连接的时间超过推送服务超时时间的终端设备中获取设备标识。
15.如权利要求13所述的方法,其特征在于,所述步骤C2包括:
步骤C21:所述SDK生成随机数获取请求并发送给所述认证中心;
步骤C22:所述认证中心接收到随机数获取请求后生成第一随机数并返回给所述SDK;
步骤C23:所述SDK保存接收到的第一随机数。
16.如权利要求13所述的方法,其特征在于,所述步骤C3包括:所述SDK根据所述设备归属信息、所述第一随机数、认证中心信息、保存的推送服务超时时间和推送服务公钥生成第一协议数据,根据预设哈希算法对所述第一协议数据进行哈希计算得到第一哈希值,根据所述第一哈希值、所述认证中心信息生成第一有效数据,根据预设签名算法使用推送服务私钥对所述第一有效数据进行签名得到第一签名值,根据所述第一有效数据和所述第一签名值生成第二协议数据,根据所述第一协议数据和所述第二协议数据生成注册请求并发送给所述认证中心。
17.如权利要求16所述的方法,其特征在于,所述步骤C4包括:
步骤A1:所述认证中心对第二注册请求进行解析得到第一协议数据和第二协议数据,从所述第二协议数据中获取第一有效数据、第一哈希值和第一签名值;
步骤A2:所述认证中心对所述第一协议数据进行哈希计算,判断哈希计算结果与所述第一哈希值是否一致,是则执行步骤A3,否则报错,结束;
步骤A3:所述认证中心对所述第一有效数据进行哈希计算,使用所述第一协议数据中的推送服务公钥对所述第一签名值进行解密,判断哈希计算结果与解密结果是否一致,是则将设备标识与所述第二注册请求中的第一协议数据和第二协议数据对应保存,执行步骤C5,否则报错,结束。
18.一种基于物联网的认证实现系统,其特征在于,包括:终端设备、认证中心和SDK,用于实现如权利要求1至16任意一项所述的基于物联网的认证实现方法。
19.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至16任一项所述的基于物联网的认证实现方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序被电子设备执行时实现如权利要求1至17任一项所述的基于物联网的认证实现方法。
21.一种芯片系统,其特征在于,包括芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行权利要求1-17任一项所述的基于物联网的认证实现方法。
CN202310841070.9A 2023-07-11 2023-07-11 一种基于物联网的认证实现方法及系统 Active CN116566746B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310841070.9A CN116566746B (zh) 2023-07-11 2023-07-11 一种基于物联网的认证实现方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310841070.9A CN116566746B (zh) 2023-07-11 2023-07-11 一种基于物联网的认证实现方法及系统

Publications (2)

Publication Number Publication Date
CN116566746A CN116566746A (zh) 2023-08-08
CN116566746B true CN116566746B (zh) 2023-09-19

Family

ID=87488353

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310841070.9A Active CN116566746B (zh) 2023-07-11 2023-07-11 一种基于物联网的认证实现方法及系统

Country Status (1)

Country Link
CN (1) CN116566746B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107959686A (zh) * 2017-12-13 2018-04-24 恒宝股份有限公司 一种物联网安全认证系统及认证方法
CN112291071A (zh) * 2020-12-24 2021-01-29 飞天诚信科技股份有限公司 一种适用于零信任网络的密码管理方法及系统
CN115086958A (zh) * 2021-03-12 2022-09-20 中国电信股份有限公司 设备身份认证方法、装置、终端、认证节点和存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10156842B2 (en) * 2015-12-31 2018-12-18 General Electric Company Device enrollment in a cloud service using an authenticated application
FR3095528B1 (fr) * 2019-04-25 2021-05-21 CopSonic Jeton matériel d’authentification à validation déportée

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107959686A (zh) * 2017-12-13 2018-04-24 恒宝股份有限公司 一种物联网安全认证系统及认证方法
CN112291071A (zh) * 2020-12-24 2021-01-29 飞天诚信科技股份有限公司 一种适用于零信任网络的密码管理方法及系统
CN115086958A (zh) * 2021-03-12 2022-09-20 中国电信股份有限公司 设备身份认证方法、装置、终端、认证节点和存储介质

Also Published As

Publication number Publication date
CN116566746A (zh) 2023-08-08

Similar Documents

Publication Publication Date Title
KR102018971B1 (ko) 네트워크 액세스 디바이스가 무선 네트워크 액세스 포인트를 액세스하게 하기 위한 방법, 네트워크 액세스 디바이스, 애플리케이션 서버 및 비휘발성 컴퓨터 판독가능 저장 매체
KR101158956B1 (ko) 통신 시스템에 증명서를 배분하는 방법
KR101009330B1 (ko) 모바일 네트워크를 기반으로 하는 엔드 투 엔드 통신에서의 인증을 위한 방법, 시스템 및 인증 센터
EP2255507B1 (en) A system and method for securely issuing subscription credentials to communication devices
RU2414086C2 (ru) Аутентификация приложения
US8635445B2 (en) Method for digital identity authentication
CN111050322B (zh) 基于gba的客户端注册和密钥共享方法、装置及系统
CN101156352B (zh) 基于移动网络端到端通信的认证方法、系统及认证中心
CN112039918B (zh) 一种基于标识密码算法的物联网可信认证方法
KR20050064119A (ko) 인터넷접속을 위한 확장인증프로토콜 인증시 단말에서의서버인증서 유효성 검증 방법
US20030070068A1 (en) Method and system for providing client privacy when requesting content from a public server
WO2006032214A1 (fr) Procede de transmission de donnees synchrones syncml
US8751791B2 (en) Method and device for confirming authenticity of a public key infrastructure (PKI) transaction event
KR20160124648A (ko) 프로파일 다운로드 및 설치 장치
WO2009098130A2 (en) Method and system for mobile device credentialing
CN113993127B (zh) 一键登录业务的实现方法和装置
CN100450305C (zh) 一种基于通用鉴权框架的安全业务通信方法
CN105577606B (zh) 一种实现认证器注册的方法和装置
CN114390524A (zh) 一键登录业务的实现方法和装置
US8516555B2 (en) Method and system for authenticating pay-per-use service using EAP
CN116566746B (zh) 一种基于物联网的认证实现方法及系统
CN112995090B (zh) 终端应用的认证方法、装置、系统和计算机可读存储介质
CN116887250B (zh) 一种智能设备的网络连接实现方法及系统
CN115865520B (zh) 移动云服务环境中具有隐私保护的认证和访问控制方法
CN108932425B (zh) 一种离线身份认证方法、认证系统及认证设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant