CN115242395A - 数据通信方法、装置、分布式系统及存储介质 - Google Patents
数据通信方法、装置、分布式系统及存储介质 Download PDFInfo
- Publication number
- CN115242395A CN115242395A CN202110435291.7A CN202110435291A CN115242395A CN 115242395 A CN115242395 A CN 115242395A CN 202110435291 A CN202110435291 A CN 202110435291A CN 115242395 A CN115242395 A CN 115242395A
- Authority
- CN
- China
- Prior art keywords
- data
- key
- value
- random number
- equipment
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y30/00—IoT infrastructure
- G16Y30/10—Security thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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
Abstract
本申请涉及通信技术领域,尤其涉及一种数据通信方法、装置、分布式系统及存储介质。该方法包括:第一设备向第二设备发送授权请求,授权请求用于请求获取第三设备的设备资源或能力;第一设备在第二设备授权的情况下,通过第二设备与第三设备进行目标密钥的协商,目标密钥是基于第一设备与第三设备之间的交互数据和各自生成的随机数确定的,交互数据是根据随机数确定的;第一设备基于目标密钥,通过第二设备与第三设备进行加密通信。本申请实施例中,第二设备虽然能够读取第一设备与第三设备之间的交互数据,但是无法获取这两者各自生成的随机数,从而无法计算出目标密钥,实现了第三方数据加密保护的授权。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据通信方法、装置、分布式系统及存储介质。
背景技术
分布式系统是指数据可以在不同设备上计算、返回对应计算结果,并且相互合作的系统。在分布式系统中,一种常见的应用场景是授权请求方(比如用户A)的终端设备需要使用授权服务方(比如用户B)的物联网(Internet of Things,IoT)设备的某种资源,IoT设备包括但不限于打印机、娱乐设备、医疗设备或计算机。
在分布式系统中,三方授权是常见的研究方向,目的是为了保护设备资源不被滥用,且交互的数据不会被外界窃听。即授权服务设备处于用户设备和业务服务设备的交互流程外,当授权服务设备完成对用户的身份和权限验证后,会发送用户验证完成的令牌,之后用户设备使用此令牌直接对业务服务设备进行验证,而避免再次和授权服务设备的交互。
在这种情况下,授权服务设备的位置处于带外,在授权完成后,由用户设备和业务服务设备进行直接交互,授权服务设备不再参与,适用于长期授权。并且上述方案需要业务服务设备将接收到的访问请求转发给授权服务设备,容易消耗计算资源,形成拒绝服务(Denial of Service,DoS)攻击,不适用于IoT场景。相关技术中,尚未提供一种合适且有效的在IoT场景下第三方数据加密授权的方案。
发明内容
有鉴于此,提出了一种数据通信方法、装置、分布式系统及存储介质。在本申请实施例中,第一设备通过第二设备与第三设备进行密钥协商,从而第一设备和第三设备双方确立目标密钥,第二设备作为中转节点虽然能够读取第一设备与第三设备之间的交互数据,但是没有办法获取第一设备与第三设备各自生成的随机数,从而无法计算出目标密钥,所以在加密通信过程中第二设备无法获得第一设备和第三设备之间交流的明文数据,实现了第三方数据加密保护的授权,保证了数据传输的机密性和可靠性。
第一方面,本申请的实施例提供了一种数据通信方法,用于分布式系统中,所述分布式系统包括第一设备、第二设备和第三设备,所述第二设备分别与所述第一设备和所述第三设备建立有通信连接,所述方法包括:
所述第一设备向所述第二设备发送授权请求,所述授权请求用于请求获取所述第三设备的设备资源或能力;
所述第一设备在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,所述目标密钥是基于所述第一设备与所述第三设备之间的交互数据和各自生成的随机数确定的,所述交互数据是根据所述随机数确定的;
所述第一设备基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信。
在该实现方式中,第二设备作为第一设备和第三设备的中转节点,第一设备向第二设备发送授权请求,授权请求用于请求获取第三设备的设备资源或能力,第一设备在第二设备授权的情况下通过第二设备与第三设备进行目标密钥的协商,以便后续第一设备基于目标密钥,通过第二设备与第三设备进行加密通信;其中第一设备和第三设备在密钥协商流程中双方根据交互数据和各自生成的随机数确立目标密钥,第二设备虽然能够读取第一设备与第三设备之间的交互数据,但是没有办法获取第一设备与第三设备各自生成的随机数,从而无法计算出目标密钥,所以在后续的加密通信过程中第二设备无法获得第一设备和第三设备之间交流的明文数据,实现了第三方数据加密保护的授权,保证了数据传输的机密性和可靠性。
在一种可能的实现方式中,所述第一设备为授权请求方的终端设备,所述第二设备为授权服务方的终端设备,所述第三设备为所述授权服务方的IoT设备。
在该实现方式中,授权服务方的终端设备(即第二设备)置于授权请求方的终端设备(即第一设备)和授权服务方的IoT设备(即第三设备)之间,第二设备对第一设备和第三设备的交互数据进行转发,可以实时切断双方通信,回收授权。并且,第一设备和第三设备通过通用站对站(Station to Station,STS)协议交互时无需对第三设备进行修改,而第一设备在支持STS协议时只需少量修改既可使用第三设备。
在另一种可能的实现方式中,所述交互数据包括第一数据和第二数据,所述第一设备在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,包括:
所述第一设备在所述第二设备授权的情况下将所述第一数据发送至所述第二设备,所述第一数据是根据第一随机数确定的;
所述第二设备对所述第一设备的身份验证通过后,将所述第一数据转发至所述第三设备;
所述第三设备在接收到所述第一数据后,根据所述第一数据和第二随机数生成第一密钥;
所述第二设备将所述第三设备发送的所述第二数据转发至所述第一设备,所述第二数据是根据所述第二随机数确定的;
所述第一设备对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,所述第二密钥与所述第一密钥相同;
所述第一设备对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥;
所述第三设备对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥。
在该实现方式中,通过上述三个设备之间的交互,实现第一设备和第三设备之间的密钥协商,第二设备虽然能够读取第一设备和第三设备之间的交互数据(即第一数据和第二数据),但无法获取第一随机数或第二随机数,从而无法计算出目标密钥,保证密钥协商的参数来源于第一设备和第三设备,且协商的目标密钥只有第一设备和第三设备知晓。
在另一种可能的实现方式中,所述第一设备在所述第二设备授权的情况下将第一数据发送至所述第二设备,包括:
所述第一设备在所述第二设备授权的情况下,根据所述第一随机数、预设的有限循环群的生成元、预设素数生成所述第一数据;
所述第一设备通过所述第一设备的私钥对所述第一数据进行签名得到第一签名值,所述第一设备的私钥与公钥是非对称密钥对,所述第一签名值用于验证所述第一设备的身份;
所述第一设备将所述第一数据和所述第一签名值发送至所述第二设备;
所述第二设备对所述第一设备的身份验证通过后,将所述第一数据转发至所述第三设备,包括:
所述第二设备通过存储的所述第一设备的公钥对所述第一签名值进行签名验证,在验证通过后将所述第一数据转发至所述第三设备。
在该实现方式中,第一设备根据第一随机数、预设的有限循环群的生成元、预设素数生成第一数据,通过第一设备的私钥对第一数据进行签名得到第一签名值,将第一数据和第一签名值发送至第二设备,从而第二设备通过存储的第一设备的公钥对第一签名值进行签名验证,在验证通过即表示对第一设备的身份验证通过后,第二设备将第一数据转发至第三设备;通过上述的公私钥签名机制进一步保证了密钥协商的参数来源于第一设备。
在另一种可能的实现方式中,所述第三设备在接收到所述第一数据后,根据所述第一数据和第二随机数生成第一密钥,包括:
所述第三设备接收到所述第一数据后生成所述第二随机数;
所述第三设备根据所述第一数据、所述第二随机数和预设素数生成所述第一密钥。
在该实现方式中,第三设备接收到第一数据后生成第二随机数,根据第一数据、第二随机数和预设素数生成第一密钥,进一步保证了密钥协商的参数来源于第一设备和第三设备,且协商的目标密钥只有第一设备和第三设备知晓。
在另一种可能的实现方式中,所述第二设备将所述第三设备发送的第二数据转发至所述第一设备之前,还包括:
所述第三设备根据所述第二随机数、预设的有限循环群的生成元、预设素数生成所述第二数据;
所述第三设备通过所述第三设备的私钥对第一串联数据进行签名得到第二签名值,所述第二签名值用于验证所述第三设备的身份;
所述第三设备通过所述第一密钥对所述第二签名值进行加密得到第一加密值,所述第一串联数据为所述第一数据和所述第二数据串联后的数据;
所述第三设备将所述第二数据和所述第一加密值发送至所述第二设备;
所述第二设备将所述第三设备发送的第二数据转发至所述第一设备,包括:
所述第二设备在接收到所述第二数据和所述第一加密值后,通过所述第二设备的私钥对第二串联数据进行签名得到第三签名值,所述第二串联数据为所述第二数据和所述第一数据串联后的数据;
所述第二设备将所述第二数据、所述第一加密值,所述第三签名值发送至所述第一设备,所述第三签名值用于验证所述第二设备的身份;
所述第一设备对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,包括:
所述第一设备通过存储的所述第二设备的公钥对所述第三签名值进行签名验证,在验证通过后,根据所述第二数据、所述第一随机数、所述预设素数生成所述第二密钥。
在该实现方式中,通过上述的公私钥签名机制,进一步保证了密钥协商的参数来源于第一设备和第三设备,且协商的目标密钥只有第一设备和第三设备知晓。
在另一种可能的实现方式中,所述第一设备对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥,包括:
所述第一设备通过所述第二密钥对所述第一加密值进行解密;
所述第一设备在解密成功后,通过存储的所述第三设备的公钥对解密后的数据进行签名验证;
所述第一设备在验证通过后,将所述第二密钥确定为所述目标密钥。
在该实现方式中,第一设备在解密成功且签名验证通过即表示对第三设备的身份验证通过后,将第二密钥确定为目标密钥,进一步保证了密钥协商过程的机密性和可靠性。
在另一种可能的实现方式中,所述第三设备对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥之前,还包括:
所述第一设备通过所述第二密钥对所述第三签名值进行加密得到第二加密值,将所述第二加密值发送至所述第二设备;
所述第二设备接收到所述第二加密值后,将所述第二加密值转发至所述第三设备;
所述第三设备对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥,包括:
所述第三设备接收到所述第二加密值后,通过所述第一密钥对所述第二加密值进行解密;
所述第三设备在解密成功后,通过存储的所述第二设备的公钥对解密后的数据进行签名验证;
所述第三设备在验证通过后,将所述第一密钥确定为所述目标密钥。
在该实现方式中,第三设备在解密成功且签名验证通过即表示对第二设备的身份验证通过后,将第一密钥确定为目标密钥,进一步保证了密钥协商过程的机密性和可靠性。
在另一种可能的实现方式中,所述第一设备在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商之前,还包括:
所述第二设备与所述第三设备交换各自的公钥;
所述第一设备与所述第二设备交换各自的公钥,并所述第一设备接收所述第二设备发送的所述第三设备的公钥。
在该实现方式中,第一设备与第三设备进行密钥协商前,第二设备与第三设备交换各自的公钥,第一设备与第二设备交换各自的公钥,并第一设备接收第二设备发送的第三设备的公钥,以保证后续公私钥签名机制的正常使用。
在另一种可能的实现方式中,所述第一设备基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信,包括:
所述第一设备采用所述目标密钥将第一数据进行加密得到第二数据,将所述第二数据发送至所述第二设备,所述第一数据为待处理内容的明文数据;
所述第二设备将所述第二数据转发至所述第三设备;
所述第三设备采用所述目标密钥将所述第二数据进行解密,得到所述第一数据。
在该实现方式中,第一设备采用目标密钥将第一数据进行加密得到第二数据,将第二数据发送至第二设备,第二设备将第二数据转发至第三设备,第三设备采用目标密钥将第二数据进行解密,得到第一数据;即交互数据只有在第一设备和第三设备处为明文数据,第二设备处无法得知该交互数据的明文数据,从而使得第一设备和第三设备之间的交互数据被加密保护,除这两者以外不泄露给第三者。
在另一种可能的实现方式中,所述第一设备为第一对象的终端设备,所述第二设备为第二对象的终端设备,所述第一对象不同于所述第二对象;
所述第三设备为所述第二对象的打印机设备,所述待处理内容为待打印的数据内容;或者,所述第三设备为所述第二对象的多媒体播放设备,所述待处理内容为待播放的多媒体内容。
在该实现方式中,本申请实施例提供的数据通信方法可以应用于多种应用场景,比如第一对象的终端设备通过第二对象的终端设备使用第二对象的打印机进行打印的场景,或者,第一对象的终端设备通过第二对象的终端设备使用第二对象的多媒体播放设备进行播放的场景,保证了本申请实施例提供的数据通信方法的普适性,满足了各种应用场景下的使用需求。
第二方面,本申请的实施例提供了一种数据通信方法,用于第一设备中,所述第一设备与第二设备建立有通信连接,所述第二设备与第三设备建立有通信连接,所述方法包括:
向所述第二设备发送授权请求,所述授权请求用于请求获取所述第三设备的设备资源或能力;
在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,所述目标密钥是基于所述第一设备与所述第三设备之间的交互数据和各自生成的随机数确定的,所述交互数据是根据所述随机数确定的;
基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信。
在一种可能的实现方式中,所述第一设备为授权请求方的终端设备,所述第二设备为授权服务方的终端设备,所述第三设备为所述授权服务方的IoT设备。
在另一种可能的实现方式中,所述交互数据包括第一数据和第二数据,所述在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,包括:
在所述第二设备授权的情况下将所述第一数据发送至所述第二设备,所述第一数据是根据第一随机数确定的,所述第一数据指示所述第二设备对所述第一设备的身份验证通过后,将所述第一数据转发至所述第三设备;所述第三设备在接收到所述第一数据后,根据所述第一数据和第二随机数生成第一密钥;所述第二设备将所述第三设备发送的所述第二数据转发至所述第一设备,所述第二数据是根据所述第二随机数确定的;
对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,所述第二密钥与所述第一密钥相同;
对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥,所述第三设备用于对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥。
在另一种可能的实现方式中,所述在所述第二设备授权的情况下将第一数据发送至所述第二设备,包括:
在所述第二设备授权的情况下,根据所述第一随机数、预设的有限循环群的生成元、预设素数生成所述第一数据;
通过所述第一设备的私钥对所述第一数据进行签名得到第一签名值,所述第一设备的私钥与公钥是非对称密钥对,所述第一签名值用于验证所述第一设备的身份;
将所述第一数据和所述第一签名值发送至所述第二设备,所述第一签名值指示所述第二设备通过存储的所述第一设备的公钥对所述第一签名值进行签名验证,在验证通过后将所述第一数据转发至所述第三设备。
在另一种可能的实现方式中,所述第三设备还用于根据所述第二随机数、预设的有限循环群的生成元、预设素数生成所述第二数据;通过所述第三设备的私钥对第一串联数据进行签名得到第二签名值,所述第二签名值用于验证所述第三设备的身份;通过所述第一密钥对所述第二签名值进行加密得到第一加密值,所述第一串联数据为所述第一数据和所述第二数据串联后的数据;将所述第二数据和所述第一加密值发送至所述第二设备;
所述第二设备还用于在接收到所述第二数据和所述第一加密值后,通过所述第二设备的私钥对第二串联数据进行签名得到第三签名值,所述第二串联数据为所述第二数据和所述第一数据串联后的数据;将所述第二数据、所述第一加密值,所述第三签名值发送至所述第一设备,所述第三签名值用于验证所述第二设备的身份;
所述对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,包括:
通过存储的所述第二设备的公钥对所述第三签名值进行签名验证;
在验证通过后,根据所述第二数据、所述第一随机数、所述预设素数生成所述第二密钥。
在另一种可能的实现方式中,所述对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥,包括:
通过所述第二密钥对所述第一加密值进行解密;
在解密成功后,通过存储的所述第三设备的公钥对解密后的数据进行签名验证;
在验证通过后,将所述第二密钥确定为所述目标密钥。
在另一种可能的实现方式中,所述方法,还包括:
通过所述第二密钥对所述第三签名值进行加密得到第二加密值;
将所述第二加密值发送至所述第二设备,所述第二加密值指示所述第二设备接收到所述第二加密值后,将所述第二加密值转发至所述第三设备;所述第三设备接收到所述第二加密值后,通过所述第一密钥对所述第二加密值进行解密;所述第三设备在解密成功后,通过存储的所述第二设备的公钥对解密后的数据进行签名验证;所述第三设备在验证通过后,将所述第一密钥确定为所述目标密钥。
在另一种可能的实现方式中,所述在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商之前,还包括:
与所述第二设备交换各自的公钥,并接收所述第二设备发送的所述第三设备的公钥,所述第二设备与所述第三设备已交换各自的公钥。
在另一种可能的实现方式中,所述基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信,包括:
采用所述目标密钥将第一数据进行加密得到第二数据,所述第一数据为待处理内容的明文数据;
将所述第二数据发送至所述第二设备,所述第二数据指示所述第二设备将所述第二数据转发至所述第三设备;所述第三设备采用所述目标密钥将所述第二数据进行解密,得到所述第一数据。
在另一种可能的实现方式中,所述第一设备为第一对象的终端设备,所述第二设备为第二对象的终端设备,所述第一对象不同于所述第二对象;
所述第三设备为所述第二对象的打印机设备,所述待处理内容为待打印的数据内容;或者,所述第三设备为所述第二对象的多媒体播放设备,所述待处理内容为待播放的多媒体内容。
第三方面,本申请的实施例提供了一种分布式系统,所述分布式系统包括第一设备、第二设备和第三设备,所述第二设备分别与所述第一设备和所述第三设备建立有通信连接,
所述第一设备,用于向所述第二设备发送授权请求,所述授权请求用于请求获取所述第三设备的设备资源或能力;
所述第一设备,还用于在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,所述目标密钥是基于所述第一设备与所述第三设备之间的交互数据和各自生成的随机数确定的,所述交互数据是根据所述随机数确定的;
所述第一设备,还用于基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信。
在一种可能的实现方式中,所述第一设备为授权请求方的终端设备,所述第二设备为授权服务方的终端设备,所述第三设备为所述授权服务方的IoT设备。
在另一种可能的实现方式中,所述交互数据包括第一数据和第二数据;
所述第一设备,还用于在所述第二设备授权的情况下将所述第一数据发送至所述第二设备,所述第一数据是根据第一随机数确定的;
所述第二设备,用于对所述第一设备的身份验证通过后,将所述第一数据转发至所述第三设备;
所述第三设备,用于在接收到所述第一数据后,根据所述第一数据和第二随机数生成第一密钥;
所述第二设备,还用于将所述第三设备发送的所述第二数据转发至所述第一设备,所述第二数据是根据所述第二随机数确定的;
所述第一设备,还用于对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,所述第二密钥与所述第一密钥相同;
所述第一设备,还用于对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥;
所述第三设备,还用于对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥。
在另一种可能的实现方式中,
所述第一设备,还用于在所述第二设备授权的情况下,根据所述第一随机数、预设的有限循环群的生成元、预设素数生成所述第一数据;
所述第一设备,还用于通过所述第一设备的私钥对所述第一数据进行签名得到第一签名值,所述第一设备的私钥与公钥是非对称密钥对,所述第一签名值用于验证所述第一设备的身份;
所述第一设备,还用于将所述第一数据和所述第一签名值发送至所述第二设备;
所述第二设备,还用于通过存储的所述第一设备的公钥对所述第一签名值进行签名验证,在验证通过后将所述第一数据转发至所述第三设备。
在另一种可能的实现方式中,
所述第三设备,还用于接收到所述第一数据后生成所述第二随机数;
所述第三设备,还用于根据所述第一数据、所述第二随机数和预设素数生成所述第一密钥。
在另一种可能的实现方式中,
所述第三设备,还用于根据所述第二随机数、预设的有限循环群的生成元、预设素数生成所述第二数据;
所述第三设备,还用于通过所述第三设备的私钥对第一串联数据进行签名得到第二签名值,所述第二签名值用于验证所述第三设备的身份;
所述第三设备,还用于通过所述第一密钥对所述第二签名值进行加密得到第一加密值,所述第一串联数据为所述第一数据和所述第二数据串联后的数据;
所述第三设备,还用于将所述第二数据和所述第一加密值发送至所述第二设备;
所述第二设备,还用于在接收到所述第二数据和所述第一加密值后,通过所述第二设备的私钥对第二串联数据进行签名得到第三签名值,所述第二串联数据为所述第二数据和所述第一数据串联后的数据;
所述第二设备,还用于将所述第二数据、所述第一加密值,所述第三签名值发送至所述第一设备,所述第三签名值用于验证所述第二设备的身份;
所述第一设备,还用于通过存储的所述第二设备的公钥对所述第三签名值进行签名验证,在验证通过后,根据所述第二数据、所述第一随机数、所述预设素数生成所述第二密钥。
在另一种可能的实现方式中,
所述第一设备,还用于通过所述第二密钥对所述第一加密值进行解密;
所述第一设备,还用于在解密成功后,通过存储的所述第三设备的公钥对解密后的数据进行签名验证;
所述第一设备,还用于在验证通过后,将所述第二密钥确定为所述目标密钥。
在另一种可能的实现方式中,
所述第一设备,还用于通过所述第二密钥对所述第三签名值进行加密得到第二加密值,将所述第二加密值发送至所述第二设备;
所述第二设备,还用于接收到所述第二加密值后,将所述第二加密值转发至所述第三设备;
所述第三设备,还用于接收到所述第二加密值后,通过所述第一密钥对所述第二加密值进行解密;
所述第三设备,还用于在解密成功后,通过存储的所述第二设备的公钥对解密后的数据进行签名验证;
所述第三设备,还用于在验证通过后,将所述第一密钥确定为所述目标密钥。
在另一种可能的实现方式中,
所述第二设备,还用于与所述第三设备交换各自的公钥;
所述第一设备,还用于与所述第二设备交换各自的公钥,并接收所述第二设备发送的所述第三设备的公钥。
在另一种可能的实现方式中,
所述第一设备,还用于采用所述目标密钥将第一数据进行加密得到第二数据,将所述第二数据发送至所述第二设备,所述第一数据为待处理内容的明文数据;
所述第二设备,还用于将所述第二数据转发至所述第三设备;
所述第三设备,还用于采用所述目标密钥将所述第二数据进行解密,得到所述第一数据。
第四方面,本申请的实施例提供了一种数据通信装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令时实现上述第二方面或者第二方面中的任意一种可能的实现方式所提供的方法。
第五方面,本申请的实施例提供了一种数据通信装置,所述装置包括至少一个单元,所述至少一个单元用于实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的方法。
第六方面,本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第二方面或者第二方面中的任意一种可能的实现方式所提供的方法。
第七方面,本申请的实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机可读代码,或者承载有所述计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第二方面或者第二方面中的任意一种可能的实现方式所提供的方法。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出了相关技术中一种可能的数据通信方法的原理示意图。
图2示出了本申请一个示例性实施例提供的于分布式系统的结构示意图。
图3示出了本申请一个示例性实施例提供的数据通信方法的流程图。
图4示出了本申请另一个示例性实施例提供的数据通信方法的流程图。
图5示出了本申请另一个示例性实施例提供的数据通信方法的流程图。
图6a示出了本申请一个示例性实施例提供的数据通信方法涉及的应用场景的示意图。
图6b示出了本申请一个示例性实施例提供的数据通信方法涉及的用户界面的示意图。
图7示出了本申请另一个示例性实施例提供的数据通信方法涉及的应用场景的示意图。
图8示出了本申请另一个示例性实施例提供的数据通信方法涉及的应用场景的示意图。
图9示出了本申请另一个示例性实施例提供的数据通信方法的流程图。
图10示出了本申请一个示例性实施例提供的第一设备的结构示意图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
随着IoT设备的数量不断地增长,IoT设备的功能不断地增强,越来越多的IoT设备进入个人的生活,给用户生活带来便捷。IoT设备提供一种和终端设备进行数据交互的应用程序接口(Application Programming Interface,API),方便终端设备和IoT设备进行数据交互,比如终端设备为手机,IoT设备为音箱,音箱接收手机发送的音频流数据。又比如,终端设备为手机,IoT设备为智慧屏,智慧屏接收手机发送的视频和音频流数据。
为保护终端设备和IoT设备交互的数据,并且使两方能够建立信任关系,在初始化阶段,终端设备和IoT设备需要进行设备间点对点的信任绑定操作。该操作中,用户的终端设备可以通过输入IoT设备的个人识别码(Personal Identification Number,PIN)、扫描二维码或者通过近场通信(Near Field Communication,NFC)触碰来进行初始化会话密钥协商。之后终端设备和IoT设备交换各自的公钥,并将对方的公钥存储于自己的钥匙库内。终端设备在向IoT设备发送请求时,双方使用存储的对方的公钥进行安全通道的建立。为建立该安全通道,双方需要通过STS协议进行密钥协商,再基于协商出的密钥进行加密通信。
STS协议广泛用于IoT设备和终端设备协商安全通道的密钥的过程中,当IoT设备和终端设备知道对方的公钥时,STS协议能够保护IoT设备和终端设备交互的数据,防止中间人攻击。并且STS协议简单,对两端设备的计算性能要求低,适用于IoT场景中。
在分布式系统中,一种常见的应用场景是授权请求方(比如用户A)的终端设备需要使用授权服务方(比如用户B)的IoT设备的某种资源。在一个示意性的例子中,如图1所示,用户设备12在发起对业务服务设备14的访问请求后,业务服务设备14向授权服务设备16转发该访问请求,授权服务设备16在接收到该访问请求后与用户设备12进行身份认证交互,并判断此用户设备是否有权限使用该业务服务。在完成身份验证后,授权服务设备16向业务服务设备14返回授权结果。若授权结果指示用户设备12具有权限,则业务服务设备14开始和用户设备12协商密钥,建立安全通道。
授权服务设备16返回授权结果给业务服务设备14之后,授权服务设备16不再参与业务服务设备14和用户设备12的交互。这种情况下,授权服务设备16不能实时地回收对用户设备12的授权,适用场景为长期授权。并且上述方案需要业务服务设备14将接收到的访问请求转发给授权服务设备16,容易消耗计算资源,形成DoS攻击,不适用于IoT场景。
在一种可能的IoT场景下,授权请求方的终端设备为设备A,授权服务方的终端设备为设备B,授权服务方的IoT设备为设备C,设备A希望使用设备C,设备B需要对设备A发送的请求进行授权。设备A只想使用设备C的资源,并希望保护自身发送给设备C的数据,防止设备B窃取、复制、篡改自己的数据,从而返回错误的结果。
相关技术中,尚未提供一种合适且有效的在IoT场景下第三方数据加密授权的方案。
本申请实施例基于广泛部署的STS协议进行拓展,通过公私钥签名机制和密钥协商机制实现数据加密保护,实现了在不修改IoT设备代码的情况下,完成对授权请求方的终端设备的授权,并且对授权请求方的终端设备和授权服务方的IoT设备交互的数据进行加密保护,解决了对于第三方数据加密保护的授权问题。
首先,对本申请涉及的应用场景进行介绍。
本申请实施例提供了一种数据通信方法,用于分布式系统中。请参考图2,其示出了本申请一个示例性实施例提供的于分布式系统的结构示意图。
该分布式系统包括第一设备21、第二设备22和第三设备23,第二设备22分别与第一设备21和第三设备23建立有通信连接。该通信连接可以是有线网络或无线网络。
可选的,第一设备21为授权请求方的终端设备,第二设备22为授权服务方的终端设备,第三设备23为授权服务方的IoT设备。
本申请实施例涉及的终端设备是具有数据通信功能的设备。终端设备可以是移动终端,如移动电话(或称为“蜂窝”电话)和带有移动终端的计算机。比如,终端设备为手机,车载终端,无人飞行器,平板电脑,电子书阅读器,智能眼镜,智能手表,动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III,MP3)播放器,动态影像专家压缩标准音频层面4(Moving Picture Experts Group Audio Layer IV,MP4)播放器,笔记本电脑,膝上型便携计算机和台式计算机等。
本申请实施例涉及到的IoT设备为接入到IoT中的设备。比如,IoT设备为打印机、娱乐设备、医疗设备、计算机、冰箱、机器人、传感器、电表、水表、扫地机器人、插座、鼠标、摄像头等。
比如,第一设备21为用户A的手机,第二设备22为用户B的手机,第三设备23为用户B的打印机。本申请实施例对设备(第一设备21、第二设备22和第三设备23)的类型不加以限定。
需要说明的是,上述分布式系统涉及的网元包括:至少一个第一设备21、至少一个第二设备22和至少一个第三设备23,图2中仅示意性的示出了一个第一设备21、一个第二设备22和一个第三设备23,本申请实施例对此不加以限定。
在本申请实施例中,第一设备21用于向第二设备22发送授权请求,授权请求用于请求获取第三设备23的设备资源或能力;第一设备21还用于在第二设备22授权的情况下,通过第二设备22与第三设备23进行目标密钥的协商,目标密钥是基于第一设备与第三设备之间的交互数据和各自生成的随机数确定的,交互数据是根据随机数确定的;第一设备21还用于基于目标密钥,通过第二设备22与第三设备23进行加密通信。
请参考图3,其示出了本申请一个示例性实施例提供的数据通信方法的流程图,本实施例以该方法用于图2所示的分布式系统中来举例说明。该方法包括以下几个步骤。
步骤301,第二设备与第三设备进行匹配。
可选的,第一设备向第二设备发送授权请求之前,第二设备与第三设备进行匹配,即第二设备与第三设备交换各自的公钥和证书,以便后期第二设备与第三设备进行交互时,可以使用匹配的公钥验证对方的身份。
需要说明的是,每个设备(第一设备、第二设备或第三设备)存储有自身的公钥和对应的私钥,公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),其中的一个向外界公开,称为公钥;另一个自身保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。比如,用该密钥对中的公钥加密数据就必须用该密钥对中的私钥解密,否则解密将不会成功;又比如,用该密钥对中的私钥加密就必须用该密钥对中的公钥解密,否则解密将不会成功。
步骤302,第一设备向第二设备发送授权请求,授权请求用于请求获取第三设备的设备资源或能力。
可选的,第二设备发送广播信息,该广播信息包括设备标识列表,该设备标识列表包括至少一个第三设备的设备标识;第一设备接收到广播信息,显示该设备标识列表。当第一设备接收到某个设备标识的选中信号时,向第二设备发送授权请求,该授权请求用于请求获取该设备标识对应的第三设备的设备资源或能力。
可选的,第一设备向第二设备发送授权请求后,第一设备与第二设备交换各自的公钥。并且第一设备接收第二设备发送的第三设备的公钥和证书。
此时,第一设备中存储有第一设备的公钥和私钥、第二设备的公钥和第三设备的公钥。第二设备中存储有第二设备的公钥和私钥、第一设备的公钥和第三设备的公钥。第三设备中存储有第三设备的公钥和私钥、第二设备的公钥。
可选的,第一设备与第二设备还交换各自的证书。示意性的,设备(第一设备、第二设备或第三设备)的证书包括该设备的生成厂家和设备号。
步骤303,第二设备判断是否授权第一设备。
第二设备在接收到第一设备发送的授权请求后进行授权验证,若第二设备授权第一设备,则执行步骤304,若第二设备不授权第一设备,则结束进程。
在一种可能的实现方式中,第二设备对第一设备进行授权验证,包括:第一设备与第二设备建立蓝牙连接,在蓝牙连接成功后,第二设备根据第一设备的帐号信息,基于蓝牙交互协议的身份认证机制对第一设备进行授权验证。
可选的,授权请求中携带有第一设备的帐号信息。或者,第一设备在发送授权请求后,向第二设备发送第一设备的帐号信息。其中,第一设备的帐号信息为第一设备在系统自带应用中的帐号信息或者为第一设备在第三方应用中的账号信息。
在另一种可能的实现方式中,第二设备对第一设备进行授权验证,包括:第二设备生成随机数,向第一设备发送该随机数,第一设备根据自身的私钥对该随机数进行签名得到签名值,将该签名值和证书发送至第二设备。第二设备根据证书中的公钥对签名值进行签名验证,在签名验证通过后采用存储的系统的公钥对证书进行验证(即验证证书的完整性和真实性),若证书验证通过则确定授权第一设备,若证书验证未通过则确定不授权第一设备。
步骤304,第一设备在第二设备授权的情况下,通过第二设备与第三设备进行目标密钥的协商,目标密钥是基于第一设备与第三设备之间的交互数据和各自生成的随机数确定的,交互数据是根据随机数确定的。
可选的,在第二设备确定授权第一设备后,向第一设备发送第三设备的证书。第一设备接收到第三设备的证书,即确定第二设备已授权该第一设备。
可选的,该第三设备的证书包括该第三设备的生产厂家和设备号。第一设备接收并显示该第三设备的证书,以便人为判断该证书是否为待使用的第三设备的证书。
可选的,第一设备在接收到证书的确认信号时或者在预设时间段内未接收到取消信号时,执行后续步骤即第一设备通过第二设备与第三设备进行目标密钥的协商。
可选的,第一设备生成的随机数为第一随机数,第三设备生成的随机数为第二随机数,第一设备与第三设备之间的交互数据包括根据第一随机数确定的第一数据和根据第二随机数确定的第二数据。第一设备通过第二设备与第三设备进行目标密钥的协商,包括:第一设备在第二设备授权的情况下通过第二设备将第一数据发送至第三设备,第一数据是根据第一随机数确定的;第三设备根据第一数据和第二随机数确定目标密钥;第三设备通过第二设备将第二数据发送至第一设备,第二数据是根据第二随机数确定的;第一设备根据第二数据和第一随机数生成第二密钥。
可选的,在第一设备通过第二设备与第三设备进行目标密钥的协商的过程中,第一设备、第二设备和第三设备这三个设备需要进行身份认证。第一设备需要验证第二设备和第三设备的身份。第二设备需要验证第一设备的身份。第三设备需要认为和它进行密钥交换的是第二设备。在一种可能的实现方式中,第一设备通过第二设备与第三设备进行目标密钥的协商的过程包括但不限于如下几个步骤,如图4所示:
步骤401,第一设备将第一数据发送至第二设备,第一数据是根据第一随机数确定的。
第一设备根据第一随机数生成第一数据,将第一数据发送至第二设备。可选的,第一设备根据第一随机数、预设的有限循环群的生成元、预设素数生成第一数据;第一设备通过第一设备的私钥对第一数据进行签名得到第一签名值,第一设备的私钥与公钥是非对称密钥对,第一签名值用于验证第一设备的身份;第一设备将第一数据和第一签名值发送至第二设备。
其中,预设素数可以为大素数,比如,预设素数为大于2的164次方的素数。第一随机数为正随机数,比如,第一随机数为64位或者128位的正随机数。本申请实施例对此不加以限定。
示意性的,第一设备通过第一设备的私钥对第一数据α进行签名得到第一签名值δ0=signA(α)。
步骤402,第二设备对第一设备的身份验证通过后,将第一数据转发至第三设备。
第二设备在接收到第一设备发送的第一数据后,根据第一数据对第一设备进行身份验证,在身份验证通过后将该第一数据转发至第三设备。
可选的,第二设备接收到第一设备发送的第一数据和第一签名值后,通过存储的第一设备的公钥对第一签名值进行签名验证,在验证通过(即身份验证通过)后将第一数据转发至第三设备。
可选的,第二设备通过存储的第一设备的公钥对第一签名值进行解密得到第一哈希值,判断该第一哈希值与第一数据对应的第二哈希值是否相等,若相等则表示验证通过,该第一签名值为来自第一设备的签名。在验证通过后第二设备将第一数据转发至第三设备。
步骤403,第三设备在接收到第一数据后,根据第一数据和第二随机数生成第一密钥。
可选的,第三设备接收到第一数据后生成第二随机数;第三设备根据第一数据、第二随机数和预设素数生成第一密钥。
其中,第二随机数为正随机数,比如,第二随机数为64位或者128位的正随机数。本申请实施例对此不加以限定。
步骤404,第三设备根据第二随机数生成第二数据,将第二数据发送至第二设备。
可选的,第三设备根据第二随机数、预设的有限循环群的生成元、预设素数生成第二数据;第三设备通过第三设备的私钥对第一串联数据进行签名得到第二签名值,第二签名值用于验证第三设备的身份;第三设备通过第一密钥对第二签名值进行加密得到第一加密值,第一串联数据为第一数据和第二数据串联后的数据;第三设备将第二数据和第一加密值发送至第二设备。
步骤405,第二设备将第三设备发送的第二数据转发至第一设备。
可选的,第二设备在接收到第二数据和第一加密值后,通过第二设备的私钥对第二串联数据进行签名得到第三签名值,第二串联数据为第二数据和第一数据串联后的数据;第二设备将第二数据、第一加密值,第三签名值发送至第一设备,第三签名值用于验证第二设备的身份。
示意性的,第二设备通过自身的私钥对第二串联数据进行签名得到第三签名值δB=signB(β||α),其中第二串联数据“β||α”为第二数据β和第一数据α串联后的数据。
步骤406,第一设备对第二设备的身份验证通过后,根据第二数据和第一随机数生成第二密钥,第二密钥与第一密钥相同。
可选的,第一设备通过存储的第二设备的公钥对第三签名值进行签名验证,在验证通过后,根据第二数据、第一随机数、预设素数生成第二密钥。
可选的,第一设备通过存储的第二设备的公钥对第三签名值进行解密得到第三哈希值,判断该第三哈希值与第二串联数据对应的第四哈希值是否相等,若相等则表示验证通过,该第三签名值为来自第二设备的签名且第二数据的数值没有被更改。在验证通过后,第一设备根据第二数据、第一随机数、预设素数生成第二密钥。
步骤407,第一设备对第三设备的身份验证通过后,将第二密钥确定为目标密钥。
可选的,第一设备通过第二密钥对第一加密值进行解密;第一设备在解密成功后,通过存储的第三设备的公钥对解密后的数据进行签名验证;第一设备在验证通过后,将第二密钥确定为目标密钥。
可选的,第一设备通过存储的第三设备的公钥对解密后的数据进行解密得到第五哈希值,判断该第五哈希值与第一串联数据对应的第六哈希值是否相等,若相等则表示验证通过,解密后的数据为第三设备对第一串联数据的签名。在验证通过后,第一设备确定第二密钥为有效协商密钥即目标密钥。
可选的,第一设备通过第二密钥对第三签名值进行加密得到第二加密值,将第二加密值发送至第二设备;第二设备接收到第二加密值后,将第二加密值转发至第三设备。
步骤408,第三设备对第二设备的身份验证通过后,将第一密钥确定为目标密钥。
可选的,第三设备接收到第二加密值后,通过第一密钥对第二加密值进行解密;第三设备在解密成功后,通过存储的第二设备的公钥对解密后的数据进行签名验证;第三设备在验证通过后,将第一密钥确定为目标密钥。
可选的,第三设备通过存储的第二设备的公钥对解密后的数据进行解密得到第七哈希值,判断该第七哈希值与第二串联数据对应的第八哈希值是否相等,若相等则表示验证通过,解密后的数据为第二设备对第二串联数据的签名。在验证通过后确定密钥协商成功,第三设备确定第一密钥为有效协商密钥即目标密钥。
可选的,第一设备与第三设备通过第二设备协商得到目标密钥后,基于目标密钥建立安全通道,在该安全通道建立完成后第一设备与第三设备通过安全通道进行加密通信。其中,该安全通道为基于目标密钥建立的第一设备、第二设备和第三设备之间的安全通道。
可选的,第三设备将第一密钥确定为目标密钥后,基于目标密钥建立第一设备、第二设备和第三设备之间的安全通道。
可选的,第一设备与第三设备通过安全通道进行加密通信,包括如下两种可能的实现方式:
在一种可能的实现方式中,第一设备采用安全通道的目标密钥将第一数据进行加密得到第二数据,通过安全通道将第二数据发送至第二设备,第一数据为待处理内容的明文数据;第二设备通过安全通道将第二数据转发至第三设备;第三设备采用安全通道的目标密钥将第二数据进行解密,得到第一数据。
比如,第一设备为第一对象的终端设备,第二设备为第二对象的终端设备,第三设备为第二对象的打印机设备,待处理内容为待打印的数据内容。又比如,第一设备为第一对象的终端设备,第二设备为第二对象的终端设备,第三设备为第二对象的多媒体播放设备,待处理内容为待播放的多媒体内容。其中,第一对象不同于第二对象。本申请实施例对此不加以限定。
在另一种可能的实现方式中,第三设备采用安全通道的目标密钥将第一数据进行加密得到第二数据,通过安全通道将第二数据发送至第二设备,第一数据为待处理内容的明文数据;第二设备通过安全通道将第二数据转发至第一设备;第一设备采用目标密钥将第二数据进行解密,得到第一数据。
比如,第一设备为第一对象的终端设备,第二设备为第二对象的终端设备,第三设备为第二对象的医疗检测设备(比如智能秤或者血压仪),待处理内容为待显示的医疗检测结果。其中,第一对象不同于第二对象。本申请实施例对此不加以限定。
需要说明的是,第一设备与第三设备通过安全通道进行加密通信的相关描述可参考下面实施例中的相关细节,在此先不介绍。
可选的,当第二设备接收到预设触发信号时向第一设备和第三设备发送通知消息,该通知消息指示取消对第一设备的授权。或者,当第二设备接收到预设触发信号时不再转发来自于第一设备和第三设备的数据。
其中,预设触发信号为用于触发取消对第一设备的授权的用户操作信号。可选的,预设触发信号为作用于指定控件的用户操作信号。示意性的,预设触发信号包括点击操作信号、滑动操作信号、按压操作信号、长按操作信号中的任意一种或多种的组合。
在其它可能的实现方式中,预设触发信号也可以语音形式实现。本申请实施例对此不加以限定。
在一个示意性的例子中,如图5所示,本申请实施例提供的数据通信方法包括但不限于如下几个步骤:步骤501,第二设备向第三设备发送第一信息,该第一信息包括第二设备的公钥;步骤502,第三设备向第二设备发送第二信息,第二信息包括第三设备的公钥;步骤503,第一设备向第二设备发送授权请求,该授权请求中包括第一设备的公钥;步骤504,第二设备在接收到授权请求后,向第一设备发送第三信息,第三信息包括第二设备的公钥和第三设备的公钥;步骤505,第一设备在第二设备授权的情况下,通过第二设备与第三设备进行身份认证和目标密钥的协商,建立安全通道。
综上所述,本申请实施例通过第二设备作为第一设备和第三设备的中转节点,第一设备向第二设备发送授权请求,授权请求用于请求获取第三设备的设备资源或能力,第一设备在第二设备授权的情况下通过第二设备与第三设备进行目标密钥的协商,以便后续第一设备基于目标密钥,通过第二设备与第三设备进行加密通信。在一方面,第一设备和第三设备在密钥协商流程通过后双方确立目标密钥,第二设备虽然能够读取第一设备与第三设备之间的交互数据,但是没有办法获取第一设备与第三设备各自生成的随机数,从而没有办法计算出目标密钥,所以在后续的加密通信过程中第二设备无法获得第一设备和第三设备之间交流的明文数据,实现了第三方数据的加密保护,除两者外不泄露给其他设备,保证了数据传输的机密性和可靠性。
在另一方面,由于相关技术中授权服务设备在授权完成后,不再参与后续用户设备与业务服务设备的交互,导致用户设备需要进行额外的安装或配置等操作(比如安装打印机驱动或配置),而本申请实施例中,授权服务方的第二设备在授权完成后仍然作为授权请求方的第一设备和授权服务方的第三设备的中转节点,即第一设备与第三设备进行加密通信的过程中第一设备直接交互的对象是第二设备,使得第一设备在使用第三设备时无需安装额外的应用,配置或注册账号,即可使用被授权的第三设备。
在另一方面,由于第二设备在授权完成后仍然作为第一设备和第三设备的中转节点,即第一设备与第三设备进行加密通信的过程中第三设备直接交互的对象是第二设备,第三设备无需对外(即对第一设备)展现该第三设备的设备信息,比如IP地址,端口号,版本号等信息。
在另一方面,当第二设备接收到预设触发信号时,可以向第一设备和第三设备发送指示取消授权的通知消息,或者可以不再转发来自于第一设备和第三设备的数据,使得第二设备作为第一设备和第三设备的中转节点,具有随时取消授权的能力,即第二设备能够实施收回对第一设备的授权。
在另一方面,考虑到第三设备的更新周期长,对于软件系统更新的难度大,本申请实施例提供的方案不需要对第三设备的代码进行修改,可以直接适用于当前的第三设备,降低了额外的用户操作负担。
下面采用几个示例性实施例对本申请实施例提供的数据通信方法进行介绍。
在一个示意性的例子中,第一设备为用户B的终端设备,第二设备为用户A的终端设备,第三设备为用户A的打印机,用户B到用户A的公司的时候,需要打印材料,但是由于材料涉及用户B的敏感信息,用户B不希望用户A的终端设备能够保存被打印的材料。并且由于用户B的终端设备中包括敏感材料,用户B不希望在终端设备中安装新的软件(比如打印机驱动)。对于用户A来说,不希望随意授权打印机的打印权限,防止打印机资源的滥用,防止打印机IP地址、端口号暴露导致被攻击的情况。
如图6a所示,在用户B的终端设备61、用户A的终端设备62和用户A的打印机63进行交互时,用户A的终端设备62作为中转节点,根据本申请实施例提供的数据通信方法将用户B的终端设备61和用户A的打印机63之间的数据转发,进行安全通道的目标密钥协商。之后,用户B的终端设备61将待打印的数据内容采用安全通道的目标密钥(即kA)进行加密,发给用户A的终端设备62。用户A的终端设备62将接收到的加密后的数据转发给打印机63。打印机63在接收到加密后的数据后,采用安全通道的目标密钥(即kC)将加密后的数据进行解密,并进行打印操作。比如,待打印的数据内容为选中的三张图片,如图6b所示,用户B的终端设备61接收到三张图片的选中信号后,当检测到作用于分享控件64的点击操作信号时进行设备发现,在用户界面65上显示已发现的其他终端设备的设备标识“约翰的P40”和用户A的打印机63的设备标识“客厅的打印机”。当用户B的终端设备61检测到用户界面65上作用于设备标识“客厅的打印机”的点击操作信号时,向用户A的终端设备62发送授权请求,用户B的终端设备61在用户A的终端设备62授权的情况下,通过用户A的终端设备62与用户A的打印机63进行目标密钥的协商。在密钥协商完成后,用户B的终端设备61将选中的三张图片采用安全通道的目标密钥(即kA)进行加密得到加密后的数据,将加密后的数据发送至用户A的终端设备62。在加密后的数据发送完成后,用户B的终端设备61在用户界面65上显示提示信息“发送成功”。用户A的终端设备62将接收到的加密后的数据转发给打印机63。打印机63在接收到加密后的数据后,采用安全通道的目标密钥(即kC)将加密后的数据进行解密,并进行打印操作。
需要说明的是,图6a和图6b中仅以用户B的终端设备61、用户A的终端设备62为手机为例进行介绍,本申请实施例对此不加以限定。
在本实施例中,用户B的终端设备只和用户A的终端设备进行交互,用户A的打印机只和用户A的终端设备进行交互。在一方面,用户B的终端设备在使用用户A的打印机进行打印的同时,发送过去的数据只在本地和打印机处为明文数据,用户A的终端设备无法获取该文档内容的明文数据。在另一方面,用户B的终端设备在使用用户A的打印机时,无需安装打印机驱动或配置即可享受安全加密打印业务。在另一方面,打印机的IP地址、端口号、版本号等信息无需被外部看见。在另一方面,用户A的终端设备处于用户B的终端设备和打印机设备之间,可以随时终止此次授权。
在另一个示意性的例子中,第一设备为用户B的终端设备,第二设备为用户A的终端设备,第三设备为用户A的音箱和智慧屏,用户B到用户A的家的时候,由于用户B为某些视频应用的会员,所以希望使用用户A的音箱和智慧屏进行视频播放。而用户A不希望将自己的智慧屏和音箱的信息展示给用户B,防止IP地址、端口号信息被泄露造成对设备的攻击。
如图7所示,在用户B的终端设备71、用户A的终端设备72和用户A的音箱和智慧屏73进行交互时,用户A的终端设备72作为中转节点,根据本申请实施例提供的数据通信方法将用户B的终端设备71和用户A的音箱和智慧屏73之间的数据转发,进行安全通道的目标密钥协商。之后,用户B的终端设备71将待播放的多媒体内容采用安全通道的目标密钥(即kA)进行加密,发给用户A的终端设备72。用户A的终端设备72将接收到的加密后的数据转发给音箱和智慧屏73。音箱和智慧屏73在接收到加密后的数据后,采用安全通道的目标密钥(即kC)将加密后的数据进行解密,并进行媒体播放操作。比如,待播放的多媒体内容为选中的某个视频,用户B的终端设备71接收到视频的选中信号后,当检测到作用于分享控件的点击操作信号时进行设备发现,在用户界面上显示已发现的其他终端设备的设备标识“约翰的P40”和用户A的音箱和智慧屏73的设备标识“音箱和智慧屏”。当用户B的终端设备71检测到用户界面上作用于设备标识“音箱和智慧屏”的点击操作信号时,向用户A的终端设备72发送授权请求,用户B的终端设备71在用户A的终端设备72授权的情况下,通过用户A的终端设备72与用户A的音箱和智慧屏73进行目标密钥的协商。在密钥协商完成后,用户B的终端设备71将选中的视频采用安全通道的目标密钥(即kA)进行加密得到加密后的数据,将加密后的数据发送至用户A的终端设备72。在加密后的数据发送完成后,用户B的终端设备71在用户界面上显示提示信息“发送成功”。用户A的终端设备72将接收到的加密后的数据转发给用户A的音箱和智慧屏73。音箱和智慧屏73在接收到加密后的数据后,采用安全通道的目标密钥(即kC)将加密后的数据进行解密,并进行视频播放操作。
需要说明的是,图7中仅以用户B的终端设备71、用户A的终端设备72为手机为例进行介绍,本申请实施例对此不加以限定。
相关技术中,某些应用也能够直接将屏幕共享给其他用户设备,并且具有回收共享权限的能力。但是用户B的终端设备必须使用该应用,并且需要使用相关账号登录该应用,对用户B的终端设备的要求很高,大大限制了使用场景。
而在本实施例中,用户B的终端设备只和用户A的终端设备进行交互,用户A的音箱和智慧屏只和用户A的终端设备进行交互。在一方面,用户B的终端设备在使用用户A的音箱和智慧屏进行媒体播放的同时,发送过去的数据只在本地和音箱和智慧屏处为明文数据,用户A的终端设备无法获取该多媒体内容的明文数据。在另一方面,用户B的终端设备在使用用户A的音箱和智慧屏时,用户B的终端设备无需安装额外的应用或配置和注册账号,即可直接使用被授权的音箱和智慧屏。在另一方面,用户A的音箱和智慧屏的IP地址、端口号、版本号等信息无需被外部看见。在另一方面,用户A的终端设备处于用户B的终端设备和音箱和智慧屏设备之间,可以随时终止此次授权。
在另一个示意性的例子中,第一设备为用户B的终端设备,第二设备为用户A的终端设备,第三设备为用户A的医疗检测设备,用户B到用户A的家的时候,看到有智能秤或者血压仪之类的医疗检测设备,希望能够使用该医疗检测设备,但是不希望进行配置,或者使用者并不希望安装相关应用或者配置相关账号。
如图8所示,在用户B的终端设备81、用户A的终端设备82和用户A的医疗检测设备83进行交互时,用户A的终端设备82作为中转节点,根据本申请实施例提供的数据通信方法将用户B的终端设备81和用户A的医疗检测设备83之间的数据转发,进行安全通道的目标密钥协商。之后,用户A的医疗检测设备83将医疗检测结果采用安全通道的目标密钥(即kC)进行加密,发给用户A的终端设备82。用户A的终端设备82将接收到的加密后的数据转发给用户B的终端设备81。用户B的终端设备81在接收到加密后的数据后,采用安全通道的目标密钥(即kA)将加密后的数据进行解密,并显示该医疗检测结果。比如,当用户B的终端设备81检测到预设触发信号时进行设备发现,在用户界面上显示已发现的其他终端设备的设备标识“约翰的P40”和用户A的医疗检测设备83的设备标识“智能秤”。当用户B的终端设备81检测到用户界面上作用于设备标识“智能秤”的点击操作信号时,向用户A的终端设备82发送授权请求,用户B的终端设备81在用户A的终端设备82授权的情况下,通过用户A的终端设备82与用户A的医疗检测设备83进行目标密钥的协商。在密钥协商完成后,用户A的医疗检测设备83将智能秤的检测结果采用安全通道的目标密钥(即kC)进行加密得到加密后的数据,将加密后的数据发送至用户A的终端设备82。用户A的终端设备82将接收到的加密后的数据转发给用户B的终端设备81。用户B的终端设备81在接收到加密后的数据后,采用安全通道的目标密钥(即kA)将加密后的数据进行解密,并显示该智能秤的检测结果。
需要说明的是,图8中仅以用户B的终端设备81、用户A的终端设备82为手机为例进行介绍,本申请实施例对此不加以限定。
在本实施例中,用户B的终端设备只和用户A的终端设备进行交互,用户A的医疗检测设备只和用户A的终端设备进行交互。在一方面,用户B的终端设备在使用用户A的医疗检测设备进行测量的同时,医疗检测设备发送过去的数据只在本地和用户B的终端设备处为明文数据,用户A的终端设备无法获取该医疗检测结果的明文数据。在另一方面,用户B的终端设备在使用用户A的医学检测设备时,无需安装额外的应用或配置和注册账号。在另一方面,医疗检测设备的IP地址、端口号、版本号等信息无需被外部看见。在另一方面,用户A的终端设备处于用户B的终端设备和医疗检测设备之间,可以随时终止此次授权。
请参考图9,其示出了本申请另一个示例性实施例提供的数据通信方法的流程图,本实施例以该方法用于图2所示的分布式系统中来举例说明。该方法包括以下几个步骤。
步骤901,第一设备向第二设备发送授权请求,授权请求用于请求获取第三设备的设备资源或能力。
步骤902,第一设备在第二设备授权的情况下,通过第二设备与第三设备进行目标密钥的协商,目标密钥是基于第一设备与第三设备之间的交互数据和各自生成的随机数确定的,交互数据是根据随机数确定的。
步骤903,第一设备基于目标密钥,通过第二设备与第三设备进行加密通信。
需要说明的是,本实施例中各个步骤的相关细节可参考上述实施例中的相关描述,在此不再赘述。
请参考图10,其示出了本申请一个示例性实施例提供的第一设备的结构示意图。该第一设备可以是移动终端,比如第一设备为手机。本申请实施例对此不加以限定。该第一设备包括:处理器101、接收器102、发射器103、存储器104和总线105。
处理器101包括一个或者一个以上处理核心,处理器101通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
接收器102和发射器103可以实现为一个通信组件,该通信组件可以是一块通信芯片,通信芯片中可以包括接收模块、发射模块和调制解调模块等,用于对信息进行调制和/或解调,并通过无线信号接收或发送该信息。
存储器104通过总线105与处理器101相连。存储器104存储有第一设备必要的程序指令和数据。
处理器101用于执行存储器104中的程序指令和数据以实现本申请各个方法实施例中由第一设备执行的各个步骤的功能。
处理器101通过运行存储器104中的至少一个程序指令,控制接收器102来实现上述各个步骤中第一设备侧的接收功能;处理器101通过运行存储器104中的至少一个程序指令,控制发射器103来实现上述各个步骤中第一设备侧的发送功能。
此外,存储器104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
可以理解的是,图10仅仅示出了第一设备的简化设计。在其他的实施例中,第一设备可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信单元等,而所有可以实现本申请的第一设备都在本申请的保护范围之内。
本申请的实施例提供了一种数据通信装置,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述的第一设备执行的方法。
本申请的实施例提供了一种数据通信装置,该装置包括至少一个单元,至少一个单元用于实现上述的第一设备执行的方法。
本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述的第一设备执行的方法。
本申请的实施例提供了一种计算机程序产品,计算机程序产品包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备中运行时,电子设备中的处理器执行上述的第一设备执行的方法。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。比如,计算机可读存储介质例包括但不限于:电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ElectricallyProgrammable Read-Only-Memory,EPROM或闪存)、静态随机存取存储器(Static Random-Access Memory,SRAM)、便携式压缩盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能盘(Digital Video Disc,DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(Local Area Network,LAN)或广域网(WideArea Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或ASIC(Application SpecificIntegrated Circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (25)
1.一种数据通信方法,其特征在于,用于分布式系统中,所述分布式系统包括第一设备、第二设备和第三设备,所述第二设备分别与所述第一设备和所述第三设备建立有通信连接,所述方法包括:
所述第一设备向所述第二设备发送授权请求,所述授权请求用于请求获取所述第三设备的设备资源或能力;
所述第一设备在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,所述目标密钥是基于所述第一设备与所述第三设备之间的交互数据和各自生成的随机数确定的,所述交互数据是根据所述随机数确定的;
所述第一设备基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信。
2.根据权利要求1所述的方法,其特征在于,所述第一设备为授权请求方的终端设备,所述第二设备为授权服务方的终端设备,所述第三设备为所述授权服务方的物联网IoT设备。
3.根据权利要求1或2所述的方法,其特征在于,所述交互数据包括第一数据和第二数据,所述第一设备在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,包括:
所述第一设备在所述第二设备授权的情况下将所述第一数据发送至所述第二设备,所述第一数据是根据第一随机数确定的;
所述第二设备对所述第一设备的身份验证通过后,将所述第一数据转发至所述第三设备;
所述第三设备在接收到所述第一数据后,根据所述第一数据和第二随机数生成第一密钥;
所述第二设备将所述第三设备发送的所述第二数据转发至所述第一设备,所述第二数据是根据所述第二随机数确定的;
所述第一设备对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,所述第二密钥与所述第一密钥相同;
所述第一设备对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥;
所述第三设备对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥。
4.根据权利要求3所述的方法,其特征在于,所述第一设备在所述第二设备授权的情况下将第一数据发送至所述第二设备,包括:
所述第一设备在所述第二设备授权的情况下,根据所述第一随机数、预设的有限循环群的生成元、预设素数生成所述第一数据;
所述第一设备通过所述第一设备的私钥对所述第一数据进行签名得到第一签名值,所述第一设备的私钥与公钥是非对称密钥对,所述第一签名值用于验证所述第一设备的身份;
所述第一设备将所述第一数据和所述第一签名值发送至所述第二设备;
所述第二设备对所述第一设备的身份验证通过后,将所述第一数据转发至所述第三设备,包括:
所述第二设备通过存储的所述第一设备的公钥对所述第一签名值进行签名验证,在验证通过后将所述第一数据转发至所述第三设备。
5.根据权利要求3所述的方法,其特征在于,所述第三设备在接收到所述第一数据后,根据所述第一数据和第二随机数生成第一密钥,包括:
所述第三设备接收到所述第一数据后生成所述第二随机数;
所述第三设备根据所述第一数据、所述第二随机数和预设素数生成所述第一密钥。
6.根据权利要求3所述的方法,其特征在于,所述第二设备将所述第三设备发送的第二数据转发至所述第一设备之前,还包括:
所述第三设备根据所述第二随机数、预设的有限循环群的生成元、预设素数生成所述第二数据;
所述第三设备通过所述第三设备的私钥对第一串联数据进行签名得到第二签名值,所述第二签名值用于验证所述第三设备的身份;
所述第三设备通过所述第一密钥对所述第二签名值进行加密得到第一加密值,所述第一串联数据为所述第一数据和所述第二数据串联后的数据;
所述第三设备将所述第二数据和所述第一加密值发送至所述第二设备;
所述第二设备将所述第三设备发送的第二数据转发至所述第一设备,包括:
所述第二设备在接收到所述第二数据和所述第一加密值后,通过所述第二设备的私钥对第二串联数据进行签名得到第三签名值,所述第二串联数据为所述第二数据和所述第一数据串联后的数据;
所述第二设备将所述第二数据、所述第一加密值,所述第三签名值发送至所述第一设备,所述第三签名值用于验证所述第二设备的身份;
所述第一设备对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,包括:
所述第一设备通过存储的所述第二设备的公钥对所述第三签名值进行签名验证,在验证通过后,根据所述第二数据、所述第一随机数、所述预设素数生成所述第二密钥。
7.根据权利要求6所述的方法,其特征在于,所述第一设备对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥,包括:
所述第一设备通过所述第二密钥对所述第一加密值进行解密;
所述第一设备在解密成功后,通过存储的所述第三设备的公钥对解密后的数据进行签名验证;
所述第一设备在验证通过后,将所述第二密钥确定为所述目标密钥。
8.根据权利要求6所述的方法,其特征在于,所述第三设备对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥之前,还包括:
所述第一设备通过所述第二密钥对所述第三签名值进行加密得到第二加密值,将所述第二加密值发送至所述第二设备;
所述第二设备接收到所述第二加密值后,将所述第二加密值转发至所述第三设备;
所述第三设备对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥,包括:
所述第三设备接收到所述第二加密值后,通过所述第一密钥对所述第二加密值进行解密;
所述第三设备在解密成功后,通过存储的所述第二设备的公钥对解密后的数据进行签名验证;
所述第三设备在验证通过后,将所述第一密钥确定为所述目标密钥。
9.根据权利要求4至8任一所述的方法,其特征在于,所述第一设备在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商之前,还包括:
所述第二设备与所述第三设备交换各自的公钥;
所述第一设备与所述第二设备交换各自的公钥,并所述第一设备接收所述第二设备发送的所述第三设备的公钥。
10.根据权利要求1至9任一所述的方法,其特征在于,所述第一设备基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信,包括:
所述第一设备采用所述目标密钥将第一数据进行加密得到第二数据,将所述第二数据发送至所述第二设备,所述第一数据为待处理内容的明文数据;
所述第二设备将所述第二数据转发至所述第三设备;
所述第三设备采用所述目标密钥将所述第二数据进行解密,得到所述第一数据。
11.根据权利要求10所述的方法,其特征在于,所述第一设备为第一对象的终端设备,所述第二设备为第二对象的终端设备,所述第一对象不同于所述第二对象;
所述第三设备为所述第二对象的打印机设备,所述待处理内容为待打印的数据内容;或者,所述第三设备为所述第二对象的多媒体播放设备,所述待处理内容为待播放的多媒体内容。
12.一种数据通信方法,其特征在于,用于第一设备中,所述第一设备与第二设备建立有通信连接,所述第二设备与第三设备建立有通信连接,所述方法包括:
向所述第二设备发送授权请求,所述授权请求用于请求获取所述第三设备的设备资源或能力;
在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,所述目标密钥是基于所述第一设备与所述第三设备之间的交互数据和各自生成的随机数确定的,所述交互数据是根据所述随机数确定的;
基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信。
13.根据权利要求12所述的方法,其特征在于,所述第一设备为授权请求方的终端设备,所述第二设备为授权服务方的终端设备,所述第三设备为所述授权服务方的物联网IoT设备。
14.根据权利要求12或13所述的方法,其特征在于,所述交互数据包括第一数据和第二数据,所述在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,包括:
在所述第二设备授权的情况下将所述第一数据发送至所述第二设备,所述第一数据是根据第一随机数确定的,所述第一数据指示所述第二设备对所述第一设备的身份验证通过后,将所述第一数据转发至所述第三设备;所述第三设备在接收到所述第一数据后,根据所述第一数据和第二随机数生成第一密钥;所述第二设备将所述第三设备发送的所述第二数据转发至所述第一设备,所述第二数据是根据所述第二随机数确定的;
对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,所述第二密钥与所述第一密钥相同;
对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥,所述第三设备用于对所述第二设备的身份验证通过后,将所述第一密钥确定为所述目标密钥。
15.根据权利要求14所述的方法,其特征在于,所述在所述第二设备授权的情况下将第一数据发送至所述第二设备,包括:
在所述第二设备授权的情况下,根据所述第一随机数、预设的有限循环群的生成元、预设素数生成所述第一数据;
通过所述第一设备的私钥对所述第一数据进行签名得到第一签名值,所述第一设备的私钥与公钥是非对称密钥对,所述第一签名值用于验证所述第一设备的身份;
将所述第一数据和所述第一签名值发送至所述第二设备,所述第一签名值指示所述第二设备通过存储的所述第一设备的公钥对所述第一签名值进行签名验证,在验证通过后将所述第一数据转发至所述第三设备。
16.根据权利要求14所述的方法,其特征在于,
所述第三设备还用于根据所述第二随机数、预设的有限循环群的生成元、预设素数生成所述第二数据;通过所述第三设备的私钥对第一串联数据进行签名得到第二签名值,所述第二签名值用于验证所述第三设备的身份;通过所述第一密钥对所述第二签名值进行加密得到第一加密值,所述第一串联数据为所述第一数据和所述第二数据串联后的数据;将所述第二数据和所述第一加密值发送至所述第二设备;
所述第二设备还用于在接收到所述第二数据和所述第一加密值后,通过所述第二设备的私钥对第二串联数据进行签名得到第三签名值,所述第二串联数据为所述第二数据和所述第一数据串联后的数据;将所述第二数据、所述第一加密值,所述第三签名值发送至所述第一设备,所述第三签名值用于验证所述第二设备的身份;
所述对所述第二设备的身份验证通过后,根据所述第二数据和所述第一随机数生成第二密钥,包括:
通过存储的所述第二设备的公钥对所述第三签名值进行签名验证;
在验证通过后,根据所述第二数据、所述第一随机数、所述预设素数生成所述第二密钥。
17.根据权利要求16所述的方法,其特征在于,所述对所述第三设备的身份验证通过后,将所述第二密钥确定为所述目标密钥,包括:
通过所述第二密钥对所述第一加密值进行解密;
在解密成功后,通过存储的所述第三设备的公钥对解密后的数据进行签名验证;
在验证通过后,将所述第二密钥确定为所述目标密钥。
18.根据权利要求16所述的方法,其特征在于,所述方法,还包括:
通过所述第二密钥对所述第三签名值进行加密得到第二加密值;
将所述第二加密值发送至所述第二设备,所述第二加密值指示所述第二设备接收到所述第二加密值后,将所述第二加密值转发至所述第三设备;所述第三设备接收到所述第二加密值后,通过所述第一密钥对所述第二加密值进行解密;所述第三设备在解密成功后,通过存储的所述第二设备的公钥对解密后的数据进行签名验证;所述第三设备在验证通过后,将所述第一密钥确定为所述目标密钥。
19.根据权利要求15至18任一所述的方法,其特征在于,所述在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商之前,还包括:
与所述第二设备交换各自的公钥,并接收所述第二设备发送的所述第三设备的公钥,所述第二设备与所述第三设备已交换各自的公钥。
20.根据权利要求12至19任一所述的方法,其特征在于,所述基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信,包括:
采用所述目标密钥将第一数据进行加密得到第二数据,所述第一数据为待处理内容的明文数据;
将所述第二数据发送至所述第二设备,所述第二数据指示所述第二设备将所述第二数据转发至所述第三设备;所述第三设备采用所述目标密钥将所述第二数据进行解密,得到所述第一数据。
21.根据权利要求20所述的方法,其特征在于,所述第一设备为第一对象的终端设备,所述第二设备为第二对象的终端设备,所述第一对象不同于所述第二对象;
所述第三设备为所述第二对象的打印机设备,所述待处理内容为待打印的数据内容;或者,所述第三设备为所述第二对象的多媒体播放设备,所述待处理内容为待播放的多媒体内容。
22.一种分布式系统,其特征在于,所述分布式系统包括第一设备、第二设备和第三设备,所述第二设备分别与所述第一设备和所述第三设备建立有通信连接,
所述第一设备,用于向所述第二设备发送授权请求,所述授权请求用于请求获取所述第三设备的设备资源或能力;
所述第一设备,还用于在所述第二设备授权的情况下,通过所述第二设备与所述第三设备进行目标密钥的协商,所述目标密钥是基于所述第一设备与所述第三设备之间的交互数据和各自生成的随机数确定的,所述交互数据是根据所述随机数确定的;
所述第一设备,还用于基于所述目标密钥,通过所述第二设备与所述第三设备进行加密通信。
23.一种数据通信装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令时实现权利要求12-21任意一项所述的方法。
24.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求12-21中任意一项所述的方法。
25.一种计算机程序产品,所述计算机程序产品包括计算机可读代码,或者承载有所述计算机可读代码的非易失性计算机可读存储介质,其特征在于,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行权利要求12-21任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110435291.7A CN115242395A (zh) | 2021-04-22 | 2021-04-22 | 数据通信方法、装置、分布式系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110435291.7A CN115242395A (zh) | 2021-04-22 | 2021-04-22 | 数据通信方法、装置、分布式系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115242395A true CN115242395A (zh) | 2022-10-25 |
Family
ID=83665844
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110435291.7A Pending CN115242395A (zh) | 2021-04-22 | 2021-04-22 | 数据通信方法、装置、分布式系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242395A (zh) |
-
2021
- 2021-04-22 CN CN202110435291.7A patent/CN115242395A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11902445B2 (en) | System and method for enabling secure service-based communications via 5G proxies | |
EP3742696B1 (en) | Identity management method, equipment, communication network, and storage medium | |
CN107959656B (zh) | 数据安全保障系统及方法、装置 | |
US11729612B2 (en) | Secure BLE just works pairing method against man-in-the-middle attack | |
CN107005413B (zh) | 安全连接及相关服务的高效启动 | |
CN107659406B (zh) | 一种资源操作方法及装置 | |
CN109479049B (zh) | 用于密钥供应委托的系统、设备和方法 | |
CN109314705B (zh) | 使用组加密密钥的用于大规模可伸缩动态多点虚拟私有网络的系统、装置和方法 | |
CN113691560B (zh) | 数据传送方法、控制数据使用的方法以及密码设备 | |
CN108566381A (zh) | 一种安全升级方法、装置、服务器、设备和介质 | |
KR102469979B1 (ko) | 제1 애플리케이션과 제2 애플리케이션 사이의 상호 대칭 인증을 위한 방법 | |
US10601590B1 (en) | Secure secrets in hardware security module for use by protected function in trusted execution environment | |
US11736304B2 (en) | Secure authentication of remote equipment | |
WO2016065321A1 (en) | Secure communication channel with token renewal mechanism | |
US10129229B1 (en) | Peer validation | |
RU2685975C2 (ru) | Обеспечение безопасности связи с расширенными мультимедийными платформами | |
CN108809907B (zh) | 一种证书请求消息发送方法、接收方法和装置 | |
EP4246892A2 (en) | Method and system for controlling the exchange of privacy-sensitive information | |
CN111654481B (zh) | 一种身份认证方法、装置和存储介质 | |
CN115102740A (zh) | 通信方法、装置、设备、存储介质及程序产品 | |
KR20210061801A (ko) | Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템 | |
CN114513345A (zh) | 信息传输系统以及使用者装置与信息安全硬件模块 | |
CN114760046A (zh) | 一种身份鉴别方法和装置 | |
US10798069B2 (en) | Secure virtual personalized network | |
CN111064577A (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 |