CN112400299B - 一种数据交互方法及相关设备 - Google Patents
一种数据交互方法及相关设备 Download PDFInfo
- Publication number
- CN112400299B CN112400299B CN201980010192.5A CN201980010192A CN112400299B CN 112400299 B CN112400299 B CN 112400299B CN 201980010192 A CN201980010192 A CN 201980010192A CN 112400299 B CN112400299 B CN 112400299B
- Authority
- CN
- China
- Prior art keywords
- key
- user equipment
- data
- user
- user identity
- 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
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/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种数据交互方法,第一用户设备与第二用户设备协商与第二用户设备交互数据所需的密钥。在密钥的协商过程中,通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,需要使用用户身份私钥解密。用户身份私钥和用户身份公钥是由第一用户设备和第二用户设备信任的密钥中心生成的,密钥中心不会将用户身份私钥提供给服务器,服务器无法利用用户身份私钥解密该密文以获取密钥。故,在第一用户设备通过服务器与第二用户设备交互数据过程中,第一用户设备使用该密钥对交互的数据做加密或解密中的至少一项。而服务器无法获取密钥,避免服务器触碰到所交互的数据,保证数据交互过程的安全性。
Description
技术领域
本申请涉及计算领域,尤其涉及一种数据交互方法及相关设备。
背景技术
计算作为一种继分布式计算和网格计算等之后一种崭新的计算模式,可以提供强大的数据存储、管理和计算能力。随着云计算的迅速发展,基于云计算的云服务已经被广泛应用到通信服务中,即发送方通过服务器将交互数据(例如即时通讯信息、或非即时通讯信息)发送到接收方。
当前,常见的云服务有公共云(Public Cloud)与私有云(Private Cloud)两种。私有云是指进行通信的用户自己提供通信服务,例如腾讯的员工之间使用微信进行通信;公有云是指进行通信的用户通过其他云服务商提供通信服务,例如百度的员工使用微信进行通信,该通信的云服务商为腾讯。由于私有云需要用户自己提供、搭建和维修等开销太大,并不是所有的用户都适合自己提供通信服务。为此,公有云被广泛应用到通信服务中,以减少开销。公有云的服务器是由其他云服务商维护与管理的,对于一些交互数据例如涉及隐私或机密等安全性要求较高的交互数据,进行通信的用户并不希望云服务商或者共用同一服务器的其他非授权用户触碰到这些数据。
也就是说,进行通信的用户也许并不信任云服务商,因此,公有云带来便利服务的同时也可能产生严峻的安全隐患。
发明内容
本申请实施例提供了一种数据交互方法,避免服务器触碰到第一用户设备和第二用户设备所交互的数据,尤其是避免服务器触碰到涉及隐私或机密等安全性要求较高数据,保证数据交互过程的安全性。
为解决上述技术问题,本申请实施例提供以下技术方案:
本申请实施例第一方面提供了一种数据交互方法,在多个用户设备(例如第一用户设备和第二用户设备)之间在通过服务器交互数据时,第一用户设备可以与第二用户设备协商与第二用户设备交互数据所需的密钥。在密钥的协商过程中,需要通过服务器转发密钥协商数据,密钥协商数据包括密钥或生成密钥所使用的数据。由于通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,需要使用用户身份私钥才可以解密,而用户身份私钥和用户身份公钥是由第一用户设备和第二用户设备信任的密钥中心生成的,密钥中心不会将用户身份私钥提供给服务器,服务器无法获取用户身份私钥,因此,服务器无法对该密文进行解密以获取密钥。这样,在第一用户设备通过服务器与第二用户设备交互数据过程中,第一用户设备可以使用该密钥对交互的数据做加密或解密中的至少一项。并且由于服务器无法获取密钥,从而避免服务器触碰到第一用户设备和第二用户设备所交互的数据,尤其是避免服务器触碰到涉及隐私或机密等安全性要求较高数据,保证数据交互过程的安全性。
在本申请实施例第一方面的第一种实现方式中,该方法可以应用到通信群组中,通信群组包括第一用户设备和第二用户设备,群组中的用户设备(例如第一用户设备、第二用户设备和/或其他用户设备)利用该密钥对交互的数据做加密或解密中的至少一项。
在本申请实施例第一方面的第二种实现方式中,第一用户设备与第二用户设备协商与第二用户设备交互数据所需的密钥时,生成密钥的可以是第一用户设备,也可以是第二用户设备。因此,第一用户设备与第二用户设备协商与第二用户设备交互数据所需的密钥时,若第一用户设备通过服务器向第二用户设备发送第一密钥协商数据,第一密钥协商数据为第一用户设备利用第二用户设备的用户身份公钥对密钥加密得到的,第二用户设备利用其用户身份私钥可以解密得到密钥,此时,生成密钥的是第一用户设备。或者,第一密钥协商数据为第一用户设备利用第二用户设备的用户身份公钥对用于生成密钥的第一随机数加密得到的,该第一密钥协商数据能够被第二用户设备的用户身份私钥所解密,此时,生成密钥的是第二用户设备。其中,通过服务器转发的密钥协商数据包括第一密钥协商数据;生成密钥所使用的数据包括第一随机数,第一随机数为第一用户设备生成的。
进一步地,在本申请实施例第一方面的第三种实现方式中,为了保证第一用户设备的合法性,避免攻击者冒充第一用户设备的身份,第一密钥协商数据还可以包括第一用户设备的用户身份私钥签名,以便第二用户设备可以利用第一用户设备的用户身份公钥解密该用户身份私钥签名以对该用户身份私钥签名进行验证,避免攻击者冒充第一用户设备的身份。
在本申请实施例第一方面的第四种实现方式中,若第一密钥协商数据中包括密钥,且该密钥是第一用户设备根据第二用户设备产生的第二随机数生成的,为了避免第二随机数在传输的过程中被篡改,第一密钥协商数据还包括第二随机数,以便第二用户设备对第二随机数进行验证。第二用户设备验证接收到的第二随机数与发送的第二随机数是否一致,若一致,则第二用户设备使用该密钥对交互的数据做加密和解密中至少一项;若不一致,则说明第二随机数在传输的过程中被篡改,第二用户设备不会使用该密钥。并且,第二用户设备可以发出提醒,以提醒排查非法设备。
在本申请实施例第一方面的第五种实现方式中,第一用户设备与第二用户设备协商与第二用户设备交互数据所需的密钥时,生成密钥的可以是第一用户设备,也可以是第二用户设备。因此,若第一用户设备通过服务器获取第二用户设备发送的第二密钥协商数据,第二密钥协商数据为第二用户设备利用第一用户设备的用户身份公钥对密钥加密得到的,第一用户设备根据第一用户设备的用户身份私钥对第二密钥协商数据进行解密,直接得到该密钥。或者,第二密钥协商数据为第二用户设备利用第一用户设备的用户身份公钥对用于生成密钥的第二随机数加密得到的,第一用户设备根据第一用户设备的用户身份私钥对第二密钥协商数据进行解密,得到第二随机数,并根据第二随机数生成密钥。其中,通过服务器转发的密钥协商数据包括第二密钥协商数据;生成密钥所使用的数据包括第二随机数,第二随机数为第二用户设备生成的。
进一步地,在本申请实施例第一方面的第六种实现方式中,为了保证第二用户设备的合法性,避免攻击者冒充第二用户设备的身份,第二密钥协商数据还包括第二用户设备的用户身份私钥签名,第一用户设备在对第二密钥协商数据解密得到第二用户设备的用户身份私钥签名后,先利用第二用户设备的用户身份公钥对用户身份私钥签名进行验证,验证通过才会执行后续步骤。其中,第二用户设备的用户身份私钥签名是第二用户设备利用第二用户设备的用户身份私钥对第二随机数签名得到的。在本申请实施例第一方面的第七种实现方式中,若第二密钥协商数据中包括密钥,且该密钥是第二用户设备根据第一用户设备产生的第一随机数生成的,为了避免第一随机数在传输的过程中被篡改,第二密钥协商数据中还包括第一随机数。这样,在第一用户设备与第二用户设备协商得到与第二用户设备交互数据所需的密钥过程中,还可以验证第一随机数。第一用户设备验证接收到的第一随机数与发送的第一随机数是否一致,若一致,则第一用户设备使用该密钥对交互的数据做加密和解密中至少一项;若不一致,则说明第一随机数在传输的过程中被篡改,第一用户设备不会使用该密钥。并且,第一用户设备可以发出提醒,以提醒排查非法设备。
在本申请实施例第一方面的第八种实现方式中,可以是每次进行一次数据交互便协商一个与第二用户设备交互数据所需的密钥,也可以是与第二用户设备协商与第二用户设备交互数据所需的密钥后,存储该密钥。若与第二用户设备协商与第二用户设备交互数据所需的密钥后,第一用户设备存储该密钥,那么,在一段时间内,第一用户设备通过服务器与第二用户设备交互数据时,直接获取被存储的密钥,无需重新协商密钥,提高了数据交互的效率。
进一步地,在本申请实施例第一方面的第九种实现方式中,在协商密钥过程中,密钥协商数据和所交互加密后的数据以区块链形式存储,第一用户设备和第二用户设备为区块链的节点,并且区块链上的数据备份在所述服务器中。这样,即使第一用户设备中存储的密钥丢失,第一用户设备也可以根据所交互的加密数据从服务器获取密钥协商数据,进而根据密钥协商数据恢复密钥。避免了在密钥丢失情况下,难以获取密钥以对交互的数据进行加密或解密问题的出现。
在本申请实施例第一方面的第十种实现方式中,在协商密钥过程中,为了避免密钥协商数据被服务器获取,密钥协商数据为利用用户设备的用户身份公钥加密的数据,需要用户身份私钥解密。用户身份公钥和用户身份私钥是用户设备向密钥中心申请得到的,若需要使用第一用户设备的用户身份公钥和用户身份私钥,则在与第二用户设备协商与第二用户设备交互数据所需的密钥之前,第一用户设备还可以向密钥中心发起申请请求,该申请请求用于申请用户身份公钥和用户身份私钥,申请请求中包括第一用户设备的身份信息和第一用户设备的设备证书,设备证书包括设备证书公钥。密钥中心根据身份信息生成第一用户设备的用户身份公钥和用户身份私钥,并利用设备证书公钥对第一用户设备的用户身份公钥和用户身份私钥加密生成加密数据。第一用户设备从密钥中心获取加密数据,并利用设备证书私钥对加密数据进行解密,得到第一用户设备的用户身份公钥和用户身份私钥。用户身份私钥和用户身份公钥是由第一用户设备和第二用户设信任的密钥中心生成的,密钥中心和服务器彼此独立,并各自管理自身系统,服务器无法获取用户身份私钥,因此,服务器无法对密钥协商数据进行解密以获取密钥,从而保证数据交互过程的安全性。
在本申请实施例第一方面的第十一种实现方式中,第一用户设备的用户身份公钥和用户身份私钥保存在密钥中心,若第一用户设备中保存的第一用户设备的用户身份私钥丢失,第一用户设备直接从密钥中心获取第一用户设备的用户身份公钥和用户身份私钥。
本申请实施例第二方面提供了一种数据交互装置,该装置包括协商单元和交互单元:
协商单元,用于与第二用户设备协商与第二用户设备交互数据所需的密钥;在密钥的协商过程中,通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,密钥协商数据包括密钥或生成密钥所使用的数据;用户身份公钥和用户身份私钥是由第一用户设备和第二用户设备信任的密钥中心生成的;
交互单元,用于通过服务器与第二用户设备交互数据,其中,在交互数据的过程中,使用密钥对交互的数据做加密或解密中的至少一项。
在本申请实施例第二方面的第一种实现方式中,第一用户设备在通信群组中与第二用户设备交互数据,通信群组中包括第一用户设备和第二用户设备。
在本申请实施例第二方面的第二种实现方式中,协商单元用于:
通过服务器向第二用户设备发送第一密钥协商数据,第一密钥协商数据为第一用户设备利用第二用户设备的用户身份公钥对密钥或用于生成密钥的第一随机数加密得到的并能够被第二用户设备的用户身份私钥所解密;其中,通过服务器转发的密钥协商数据包括第一密钥协商数据;生成密钥所使用的数据包括第一随机数;第一随机数为第一用户设备生成的。
在本申请实施例第二方面的第三种实现方式中,第一密钥协商数据还包括第一用户设备的用户身份私钥签名;用户身份私钥签名是第一用户设备利用第一用户设备的用户身份私钥对第一随机数签名得到的。
在本申请实施例第二方面的第四种实现方式中,若第一密钥协商数据中包括密钥,且密钥是第一用户设备根据第二用户设备产生的第二随机数生成的,第一密钥协商数据还包括第二随机数,第二随机数被第二用户设备验证。
在本申请实施例第二方面的第五种实现方式中,协商单元用于:
通过服务器获取第二用户设备发送的第二密钥协商数据,第二密钥协商数据为第二用户设备利用第一用户设备的用户身份公钥对密钥或用于生成密钥的第二随机数加密得到的;其中,通过服务器转发的密钥协商数据包括第二密钥协商数据;生成密钥所使用的数据包括第二随机数;第二随机数为第二用户设备生成的;
根据第一用户设备的用户身份私钥对第二密钥协商数据进行解密,得到第二随机数或密钥。
在本申请实施例第二方面的第六种实现方式中,若第二密钥协商数据还包括第二用户设备的用户身份私钥签名,该装置还包括验证单元:
验证单元,用于利用第二用户设备的用户身份公钥对用户身份私钥签名进行验证;用户身份私钥签名是第二用户设备利用第二用户设备的用户身份私钥对第二随机数签名得到的。
在本申请实施例第二方面的第七种实现方式中,若第二密钥协商数据中包括密钥,且密钥是第二用户设备根据第一用户设备产生的第一随机数生成的,第二密钥协商数据中还包括第一随机数;验证单元还用于:
验证第一随机数。
在本申请实施例第二方面的第八种实现方式中,该装置还包括存储单元:
存储单元,用于存储密钥;
在通过服务器与第二用户设备交互数据时,该装置还包括获取单元:
获取单元,用于获取被存储的密钥。
在本申请实施例第二方面的第九种实现方式中,在协商密钥过程中,密钥协商数据和所交互加密后的数据以区块链形式存储,第一用户设备和第二用户设备为区块链的节点,区块链上的数据备份在云服务器中,若第一用户设备中存储的密钥丢失,获取单元还用于:
根据所交互的加密数据从云服务器获取密钥协商数据;
根据密钥协商数据恢复密钥。
在本申请实施例第二方面的第十种实现方式中,若在密钥生成过程中需要使用第一用户设备的用户身份公钥和用户身份私钥,该装置还包括发送单元和解密单元:
发送单元,用于向密钥中心发起申请请求,申请请求用于申请用户身份公钥和用户身份私钥,申请请求中包括第一用户设备的身份信息和第一用户设备的设备证书,设备证书包括设备证书公钥;
获取单元,还用于从密钥中心获取加密数据,加密数据是密钥中心利用设备证书公钥对第一用户设备的用户身份公钥和用户身份私钥进行加密得到的;第一用户的用户身份公钥和用户身份私钥是密钥中心根据身份信息生成的;
解密单元,用于利用设备证书私钥对加密数据进行解密,得到第一用户设备的用户身份公钥和用户身份私钥。
在本申请实施例第二方面的第十一种实现方式中,第一用户设备的用户身份公钥和用户身份私钥保存在密钥中心,若第一用户设备中保存的第一用户设备的用户身份私钥丢失,获取单元还用于:
从密钥中心获取第一用户设备的用户身份公钥和用户身份私钥。
本申请实施例第三方面提供了一种终端设备,该终端设备包括:处理器,存储器;处理器和存储器之间进行相互的通信;
存储器用于存储指令;
处理器用于执行存储器中的指令,执行如第一方面中任一项数据交互的方法。
本申请实施例第四方面提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面中任一项数据交互的方法。
本申请实施例第五方面提供了一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行如第一方面中任一项数据交互的方法。
附图说明
图1为本申请实施例提供的系统应用架构图;
图2为本申请实施例提供的一种数据交互方法的系统框架示例图;
图3为本申请实施例提供的一种数据交互方法的信令交互图;
图4a为本申请实施例提供的手机的系统架构图;
图4b为本申请实施例提供的一种密钥协商方法的信令交互图;
图5a为本申请实施例提供的一种通信群组密钥协商的系统架构图;
图5b为本申请实施例提供的一种密钥协商方法的信令交互图;
图6为本申请实施例提供的第一用户设备通过密钥中心获取用户身份公钥和用户身份私钥的系统架构图;
图7为本申请实施例提供的一种用户身份公钥和用户身份私钥的申请方法流程图;
图8为本申请实施例提供的第一用户设备的软件实现架构;
图9a为本申请实施例提供的一种数据交互装置的结构图;
图9b为本申请实施例提供的一种数据交互装置的结构图;
图9c为本申请实施例提供的一种数据交互装置的结构图;
图9d为本申请实施例提供的一种数据交互装置的结构图;
图10为本申请实施例提供的终端设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
公有云提供通信服务时,用户之间交互的数据需要经过云服务商提供的服务器进行转发,然而,进行数据交互的用户通常情况下并不信任云服务商,对于数据交互过程中一些涉及隐私或机密等安全性要求较高的数据,进行数据交互的用户并不希望服务触碰到这些数据。因此,公有云可能产生严峻的安全隐患。以通过即时通讯应用进行数据交互为例,参见图1所示,用户设备1和用户设备2为企业1中员工的用户设备,用户设备1和用户设备2上安装企业2提供的即时通讯应用,也就是说,企业2为企业1提供即时通讯服务,用户设备1与用户设备2通过企业2提供的服务器交互即时通讯信息。那么,即时通讯信息可以被企业2的服务器获取。如果该即时通讯信息中涉及企业1的商业机密,企业2可以直接从服务器上获取企业1的商业机密,导致企业1的商业机密泄露,威胁企业1的安全。另外,云服务商也在思考如何能够自证清白,不用触碰到这些数据并能提供云服务,使得用户可以信任云服务商。
有鉴于此,基于图1提供的系统应用架构,本申请实施例提供一种数据交互方法,该方法可以应用于终端设备。该终端设备可以是任意具有数据交互功能的设备,包括但不限于手机、平板电脑、笔记本电脑、智能手表、或个人数字助理(personal digitalassistant,PDA)等设备。数据交互可以通过用于数据交互的应用进行,例如即时通讯应用,即时通讯应用例如可以是微信、QQ、或电子邮件等;又如非即时通讯应用,例如百度云盘等。本申请提供的数据交互方法具体可以以应用程序或软件的形式存储于终端设备,终端设备通过执行该应用程序或软件,实现本申请提供的数据交互方法。
为了使得本申请的技术方案更加清楚、易于理解,首先结合具体场景对本申请提供的数据交互方法的系统框架进行介绍。参见图2所示,该系统框架中可以包括第一用户设备201、第二用户设备202、服务器203和密钥中心204,第一用户设备201可以与第二用户设备202协商与第二用户设备202交互数据所需的密钥。在密钥生成过程中,需要通过服务器203转发密钥协商数据,密钥协商数据包括密钥或生成密钥所使用的数据,根据密钥协商数据可以获取到密钥。而通过服务器203转发的密钥协商数据为利用用户身份公钥加密后的密文,需要使用用户身份私钥解密,而用户身份私钥和用户身份公钥是由第一用户设备201和第二用户设备202信任的密钥中心204生成的,密钥中心204独立于服务器203,密钥中心204和服务器203彼此独立,并各自管理自身系统,服务器203无法获取用户身份私钥,因此,服务器203无法对该密文进行解密以获取密钥。图2中以第一用户设备201通过服务器203向第二用户设备202转发密钥协商数据为例,第一用户设备201通过服务器203向第二用户设备202转发的是利用用户身份公钥(例如第二用户设备的公钥)加密后的密钥协商数据(例如密钥),使得服务器203无法获取密钥解密所交互的数据,从而保证数据交互过程的安全性。当然,也可以是第二用户设备202通过服务器203向第一用户设备发送密钥协商数据,图2所示的系统架构图仅是一种示例,并不构成对本申请的限定。
第一用户设备201通过服务器203与第二用户设备202进行数据交互,在数据交互的过程中,第一用户设备201可以发送数据,也可以接收数据,无论第一用户设备是发送数据还是接收数据,通过服务器203转发的都是根据密钥进行加密的数据。其中,第一用户设备201通过服务器203与第二用户设备202交互的数据可以是聊天信息,也可以是文档、视频、音频、或图片等文件信息,还可以包括其他信息,本实施例对此不做限定。当第一用户设备201发送数据时,第一用户设备201使用所述密钥对交互的数据进行加密;当第一用户设备201接收数据时,第一用户设备201接收到加密的数据,第一用户设备201使用所述密钥对交互的数据进行解密。
需要说明的是,本申请实施例提供的数据交互方法不仅适用于两个用户设备之间例如第一用户设备和第二用户设备进行数据交互的场景中,还适用于群组内部进行数据交互的场景,其中,该群组包括第一用户设备和第二用户设备,当然,还可以包括其他用户设备。图2所示的系统架构图仅是一种示例,并不构成对本申请的限定。
为了便于介绍,接下来将针对第一用户设备通过服务器与第二用户设备交互数据的场景,对本申请实施例提供的数据交互方法进行介绍。参见图3,所述方法包括:
S301、与第二用户设备协商与第二用户设备交互数据所需的密钥。其中,在协商密钥过程中,需要通过服务器转发密钥协商数据,密钥协商数据包括密钥或生成密钥所使用的数据。为了避免服务器获取密钥协商数据,进而利用密钥协商数据获得密钥,以在第一用户设备通过服务器与第二用户设备交互数据的过程中,解密通过服务器所转发的数据,因此,通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,需要使用用户身份私钥才可以解密,而用户身份私钥是由第一用户设备和第二用户设备信任的密钥中心生成的。
其中,密钥中心是参与数据交互的所有用户设备信任的监管方,监管方可以用Q表示,可以为国家公正机关或也可以被服务器所服务企业自己控制。这样,密钥中心生成的用户身份公钥和用户身份私钥是可以信任的,密钥中心不会将用户身份私钥提供给服务器,服务器无法从密钥中心获取用户身份私钥,使得服务器无法对该密文进行解密以获取密钥。这样,在第一用户设备通过服务器与第二用户设备交互数据过程中,服务器无法解密所转发的数据,从而无法触碰到所交互的数据,保证数据交互过程的安全性。
密钥中心生成用户身份公钥和用户身份私钥的方式可以包括多种,在一种可能的实现方式中,为了简化用户身份公钥和用户身份私钥的生成过程,生成的用户身份公钥和用户身份私钥可以是基于双线性对的用户身份公钥和用户身份私钥。密钥中心生成用户身份公钥和用户身份私钥的详细过程将在后续实施例中进行介绍。
密钥生成过程中,通过服务器转发密钥协商数据可以包括第一用户设备通过服务器向第二用户设备发送密钥协商数据,也可以包括第二用户设备通过服务器向第一用户设备发送密钥协商数据。一般情况下,根据协商过程中密钥生成方式的不同,服务器转发密钥协商数据的方向有所不同,服务器转发的密钥协商数据中包括的内容也可能有所不同,加密密钥协商数据所使用的用户身份公钥也可能有所不同,图3示出的第一用户设备通过服务器向第二用户设备发送密钥协商数据仅是一种示例。其中,与第二用户设备协商的具体过程将在后续进行介绍,此处不再赘述。
在第一用户设备通过服务器与第二用户设备交互数据的过程中,无论第一用户设备发送数据还是接收数据,都会使用到用于与第二用户设备交互数据所需的密钥。该密钥可以是在本次数据交互过程中与第二用户设备协商得到的,也可以是之前与第二用户设备协商得到并存储的。若该密钥是之前与第二用户设备协商得到并存储的,也就是说,在执行S301之后,第一用户设备还可以存储该密钥。
S302、通过所述服务器与所述第二用户设备交互数据,其中,在交互数据的过程中,使用所述密钥对交互的数据做加密或解密中的至少一项。例如,第一用户设备通过服务器向第二用户设备发送数据和/或第一用户设备通过服务器接收第二用户设备发送的数据,参见图3中虚线框中所示步骤。若第一用户设备通过服务器向第二用户设备发送数据,则第一用户设备使用该密钥对交互的数据加密(S3021),并将加密的数据通过服务器转发给第二用户设备(S3022和S3023);若第二用户设备通过服务器向第一用户设备发送数据(S3024和S3025),则第一用户设备接收到加密的数据后,使用该密钥对加密的数据进行解密(S3026)。也就是说,S302所示的第一用户设备通过所述服务器与所述第二用户设备交互数据的步骤实际上包括S3021-S3023和/或S3024-S3026的步骤。若第一用户设备使用密钥对交互的数据做加密和解密,本实施例对加密和解密的执行顺序不做限定。
需要说明的是,若第一用户设备存储了与第二用户设备交互数据所需的密钥,在第一用户设备通过服务器与第二用户设备交互数据时,可以直接在第一用户设备中获取被存储的密钥。
可以理解的是,第一用户设备中可能存储了很多密钥,这些密钥分别是用于与不同用户设备或在不同群组中交互数据所需的密钥。例如,第一用户设备中包括了密钥1、密钥2和密钥3。其中,密钥1是用于与第三用户设备交互数据所需的密钥;密钥2是用于与第二用户设备交互数据所需的密钥;密钥3是用于在群组1中交互数据所需的密钥,群组1中包括第一用户设备。第一用户设备需要从保存的多个密钥中获取用于与第二用户设备交互数据所需的密钥。
在一种可能的实现方式中,第一用户设备中保存了用户设备标识或群组标识与密钥的对应关系,该对应关系反映出密钥是用于与哪个用户设备或在哪个群组中交互数据所需的密钥,其中,用户设备标识为与第一用户设备交互数据的用户设备的标识,例如,密钥1是第一用户设备与第二用户设备交互数据所需的密钥,则在第一用户设备中可以保存密钥1与第二用户设备标识的对应关系;群组标识为交互数据所在群组的标识,例如,密钥2为第一用户设备在群组1中交互数据所需的密钥,则在第一用户设备中可以保存密钥2与群组1标识的对应关系。因此,在本实施例中,一种获取被存储的密钥的方式可以是根据第二用户设备的标识和对应关系获取用于与第二用户设备交互数据所需的密钥。
需要说明的是,以数据交互过程所涉及的用户设备(第一用户设备、第二用户设备)是手机为例,手机的系统架构如图4a所示,手机基于片上系统(system on chip,SoC)的硬件,可以提供三层安全体系,包括有非安全区、可信运行环境(trusted executionenvironment,TEE)和安全元件(Secure Element,SE)。该SoC可以提供Trustzone、SE等至少一个运行环境,可以将Trustzone运行环境称为TEE。其中,非安全区是安卓(android)运行环境,运行安全不敏感的程序和保存安全不敏感数据;TEE属于安全区,运行安全敏感程序和保存安全敏感数据。安全区与非安全区一般采用精简指令集机器(advanced riscmachine,ARM)Trustzone技术在硬件上隔离,非安全区切换到安全区可以通过切换固件完成,这个切换固件一般称为ARM trust firmware。SE属于高安全区,运行高安全程序和保存高安全数据,SE不仅能够防止软件问题,还能够防止硬件攻击获取密钥。因此,为了保证密钥在第一用户设备上的存储安全,密钥可以保存在TEE或SE中。SE和ARM处理器可以集成在SoC上,也可以分别位于两个独立的芯片上,图4a以SE和ARM处理器集成在SoC上为例。ARM处理器用于运行ARM trust firmware以及必要的软件程序,如安全类或非安全类软件程序,以形成安全区和非安全区。SE用于运行高安全程序以形成高安全区。当然,SoC上集成的处理器还可以是其他类型的处理器,例如通用处理器、微处理器、微控制器或数字信号处理器等,本实施例对此不做限定。
在多个用户设备(例如第一用户设备和第二用户设备)之间在通过服务器交互数据时,第一用户设备可以与第二用户设备协商与第二用户设备交互数据所需的密钥。在密钥的协商过程中,需要通过服务器转发密钥协商数据,密钥协商数据包括密钥或生成密钥所使用的数据。由于本申请所提供的方法中,通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,需要使用用户身份私钥才可以解密,而用户身份私钥和用户身份公钥是由第一用户设备和第二用户设备信任的密钥中心生成的,密钥中心不会将用户身份私钥提供给服务器,服务器无法获取用户身份私钥,因此,服务器无法对该密文进行解密以获取密钥。这样,在第一用户设备通过服务器与第二用户设备交互数据过程中,第一用户设备可以使用该密钥对交互的数据做加密或解密中的至少一项,并且由于服务器无法获取密钥,从而避免服务器触碰到第一用户设备和第二用户设备所交互的数据,尤其是避免服务器触碰到涉及隐私或机密等安全性要求较高数据,保证数据交互过程的安全性。
接下来,将对S301中如何与第二用户设备协商与第二用户设备交互数据所需的密钥进行详细介绍。
可以理解的是,第一用户设备与第二用户设备协商该密钥过程中,通过一定的算法机制选择一个核心设备,该核心设备可以用leader表示,用于生成该密钥,作为leader的用户设备可以是第一用户设备,也可以是第二用户设备。接下来,将分别以第一用户设备和第二用户设备作为leader为例,介绍协商密钥的过程。
可以理解的是,为了避免攻击者通过穷举的方式破解密钥,提高密钥的安全性,可以利用随机数生成密钥。根据随机数生成密钥的方式可以包括多种,本实施例主要以两种生成方式进行介绍。第一种生成方式为根据第一用户设备生成的随机数(例如第一随机数)生成密钥;第二种生成方式为根据第二用户设备生成的随机数(例如第二随机数)生成密钥。
若以第一用户设备作为leader,第一用户设备与第二用户设备协商密钥的方式可以包括两种,第一种方式为第一用户设备直接根据自身生成的第一随机数生成密钥,并通过服务器向第二用户设备发送第一密钥协商数据,此时,第一密钥协商数据为第一用户设备利用第二用户设备的用户身份公钥对该密钥加密得到的,第二用户设备可以利用自身的用户身份私钥解密第一密钥协商数据,得到该密钥。
第二种方式为,第一用户设备根据第二用户设备生成的第二随机数生成密钥。此时,参见图4b,第一用户设备与第二用户设备协商密钥具体包括以下步骤:
S401、第一用户设备通过服务器获取第二用户设备发送的第二密钥协商数据。其中,第二密钥协商数据为第二用户设备利用第一用户设备的用户身份公钥对第二随机数加密得到的。此时,第二密钥协商数据为通过服务器转发的密钥协商数据,第二随机数为生成密钥所使用的数据。在协商密钥过程中,通过利用第一用户设备的用户身份公钥对第二随机数进行加密,由于需要使用第一用户设备的用户身份私钥对第二密钥协商数据进行解密,而服务器无法获取第一用户设备的用户身份私钥,因此,服务器无法解密第二密钥协商数据得到第二随机数,进而无法利用第二密钥协商数据获得密钥。
S402、第一用户设备根据第一用户设备的用户身份私钥对第二密钥协商数据进行解密,得到第二随机数。在一些情况下,为了保证第二用户设备的合法性,避免攻击者冒充第二用户设备的身份,第二密钥协商数据还可以包括第二用户设备的用户身份私钥签名,即第二密钥协商数据是利用第一用户设备的用户身份公钥对第二随机数和第二用户设备的用户身份私钥签名进行加密得到的。当第一用户设备根据第一用户设备的用户身份私钥对第二密钥协商数据进行解密后,除了得到第二随机数,还可以得到第二用户设备的用户身份私钥签名。由于该用户身份私钥签名是第二用户设备利用第二用户设备的用户身份私钥对第二随机数签名得到的,其他用户设备无法利用第二用户设备的用户身份私钥得到该用户身份私钥签名。因此,第一用户设备可以利用第二用户设备的用户身份公钥解密该用户身份私钥签名以对该用户身份私钥签名进行验证,若第一用户设备利用第二用户设备的用户身份公钥成功解密该用户身份私钥签名,可以认为第二密钥协商数据来自于第二用户设备,可以执行S403;否则,则认为第二密钥协商数据并非来自第二用户设备,可能存在冒充第二用户设备身份的行为,不会利用此次接收到的第二随机数生成密钥,需要重新协商以生成密钥。
S403、第一用户设备根据第二随机数生成密钥。需要说明的是,密钥可以用于第一用户设备在通信群组中与第二用户设备交互数据的场景中,该群组包括第一用户设备和第二用户设备。如果群组中除了第一用户设备和第二用户设备还包括多个其他用户设备,那么,该密钥还可以用于第一用户设备在通信群组中与任一个或多个用户设备交互。第一用户设备通过服务器还可以获取其他用户设备分别发送的第二密钥协商数据。这样,第一用户设备可以获取每个用户设备分别对应的第二随机数,从而根据每个用户设备分别对应的第二随机数生成密钥。例如,第一用户设备可以将每个用户设备分别对应的第二随机数进行异或运算或者进行其他运算生成密钥。
如果群组中包括的用户设备的数量过多,例如用户设备的数量大于预设阈值,为了提高密钥生成效率,第一用户设备可以从多个用户设备中随机选择部分用户设备通过服务器向第一用户设备发送第二密钥协商数据。
参见图5a所示,若通信群组中包括N个用户设备,第一用户设备从中随机选择3个用户设备(例如第二用户设备、第三用户设备和第四用户设备)通过服务器向第一用户设备发送第二密钥协商数据,即第一用户设备要求这3个用户设备分别产生对应的第二随机数,若第二用户设备对应的第二随机数用R2表示,第三用户设备对应的第二随机数用R3表示,第四用户设备对应的第二随机数用R4表示,则第二用户设备利用第一用户设备的用户身份公钥加密R2,第三用户设备利用第一用户设备的用户身份公钥加密R3,第四用户设备利用第一用户设备的用户身份公钥加密R4,分别得到各自对应的第二密钥协商数据,并通过服务器分别将各自对应的第二密钥协商数据发送给第一用户设备,第一用户设备利用第一用户设备的用户身份私钥分别对获取到的3个第二密钥协商数据进行解密得到R2、R3和R4。然后,根据R2、R3和R4生成密钥。
S404、第一用户设备通过服务器向第二用户设备发送第一密钥协商数据。
可以理解的是,在第一用户设备与第二用户设备交互数据过程中,不仅第一用户设备需要利用该密钥对数据做加密和/或解密处理,第二用户设备也需要利用密钥对数据做加密和/或解密处理。因此,若获取的用于与第二用户设备交互数据所需的密钥是第一用户设备生成的,那么,在第一用户设备生成密钥后,第一用户设备还可以通过服务器向第二用户设备发送第一密钥协商数据,该第一密钥协商数据为第一用户设备利用第二用户设备的用户身份公钥对该密钥加密得到的,以便在交互数据的过程中,第二用户设备使用该密钥对所交互的数据做加密或解密中的至少一项。
由于第一密钥协商数据为第一用户设备利用第二用户设备的用户身份公钥对该密钥加密得到的,即服务器转发的为利用第二用户设备的用户身份公钥对该密钥加密后的密文,需要利用第二用户设备的用户身份私钥解密,而服务器不具有第二用户设备的用户身份私钥,因此,服务器无法获取密钥,进而无法在数据交互过程中解密所交互的数据,保证数据交互过程的安全性。
在一种可能的实现方式中,若用于与第二用户设备交互数据的密钥是第一用户设备根据第二随机数生成的,第一密钥协商数据中还可以包括第二随机数,以便第二用户设备验证第二随机数。第二用户设备可以验证接收到的第二随机数与发送的第二随机数是否一致,若一致,第二用户设备可以确认获取到的密钥是根据自己发送的第二随机数生成的,若不一致,第二用户设备可以认为第二随机数在传输的过程中被篡改,第二用户设备可以发出提醒,以提醒排查非法设备。
若以第二用户设备作为leader,第一用户设备与第二用户设备协商密钥的方式可以包括两种,第一种方式为第二用户设备直接根据自身生成的第二随机数生成密钥,并通过服务器向第一用户设备发送第二密钥协商数据,此时,第二密钥协商数据为第二用户设备利用第一用户设备的用户身份公钥对该密钥加密得到的,第一用户设备可以利用自身的用户身份私钥解密第二密钥协商数据,得到该密钥。
第二种方式为,第二用户设备根据第一用户设备生成的第一随机数生成密钥。此时,参见图5b,第一用户设备与第二用户设备协商密钥具体包括以下步骤:
S501、第一用户设备通过服务器向第二用户设备发送第一密钥协商数据。
其中,第一密钥协商数据为第一用户设备利用第二用户设备的用户身份公钥对第一随机数加密得到的。此时,第一密钥协商数据为通过服务器转发的密钥协商数据,第一随机数为生成密钥所使用的数据。
在协商密钥过程中,通过利用第二用户设备的用户身份公钥对第一随机数进行加密,由于需要使用第二用户设备的用户身份私钥对第一密钥协商数据进行解密,而服务器无法获取第二用户设备的用户身份私钥,因此,服务器无法解密第一密钥协商数据得到第一随机数,进而无法利用第一密钥协商数据获得密钥。
S502、第二用户设备根据第二用户设备的用户身份私钥对第一密钥协商数据进行解密,得到第一随机数。
在一些情况下,为了保证第一用户设备的合法性,避免攻击者冒充第一用户设备的身份,第一密钥协商数据还可以包括第一用户设备的用户身份私钥签名,即第一密钥协商数据是利用第二用户设备的用户身份公钥对第一随机数和第一用户设备的用户身份私钥签名进行加密得到的。当第二用户设备根据第二用户设备的用户身份私钥对第一密钥协商数据进行解密后,除了得到第一随机数,还可以得到第一用户设备的用户身份私钥签名。由于该用户身份私钥签名是第一用户设备利用第一用户设备的用户身份私钥对第一随机数签名得到的,其他用户设备无法利用第一用户设备的用户身份私钥得到该用户身份私钥签名。因此,第二用户设备可以利用第一用户设备的用户身份公钥解密该用户身份私钥签名以对该用户身份私钥签名进行验证,若第二用户设备利用第一用户设备的用户身份公钥成功解密该用户身份私钥签名,可以认为第一密钥协商数据来自于第一用户设备,可以执行S503;否则,则认为第一密钥协商数据并非来自第一用户设备,可能存在冒充第一用户设备身份的行为,不会利用此次接收到的第一随机数生成密钥,需要重新协商以生成密钥。
S503、第二用户设备根据第一随机数生成密钥。
S504、第二用户设备通过服务器向第一用户设备发送第二密钥协商数据。
可以理解的是,在第一用户设备与第二用户设备交互数据过程中,不仅第二用户设备需要利用该密钥对数据做加密和/或解密处理,第一用户设备也需要利用密钥对数据做加密和/或解密处理。因此,若与第二用户设备交互数据所需的密钥是第二用户设备生成的,那么,在第二用户设备生成密钥后,第二用户设备还可以通过服务器向第一用户设备发送第二密钥协商数据,该第二密钥协商数据为第二用户设备利用第一用户设备的用户身份公钥对该密钥加密得到的,以便在交互数据的过程中,第一用户设备使用该密钥对所交互的数据做加密或解密中的至少一项。
由于第二密钥协商数据为第二用户设备利用第一用户设备的用户身份公钥对该密钥加密得到的,即服务器转发的为利用第一用户设备的用户身份公钥对该密钥加密后的密文,需要利用第一用户设备的用户身份私钥解密,而服务器不具有第一用户设备的用户身份私钥,因此,服务器无法获取密钥,进而无法在数据交互过程中解密所交互的数据,保证数据交互过程的安全性。
可以理解的是,若用于与第二用户设备交互数据的密钥是第二用户设备根据第一随机数生成的,第二密钥协商数据中还可以包括第一随机数。第一用户设备在与第二用户设备协商过程中可以验证第一随机数。第一用户设备验证接收到的第一随机数与发送的第一随机数是否一致,若一致,第一用户设备可以确认获取到的密钥是根据自己发送的第一随机数生成的,若不一致,第一用户设备可以认为第一随机数在传输的过程中被篡改,第一用户设备可以发出提醒,以提醒排查非法设备。
需要说明的是,S401-S403以及S501-S503所提供的密钥生成方式可以是基于区块链的委托股权证明(delegated proof of stake,DPOS)共识机制实现的。其中,区块链技术实现了一种按照时间顺序将数据和信息区块以顺序相连的方式组成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式存储。一般情况下,将区块链中的数据和信息称为“交易(Transaction)”,例如,第一密钥协商数据、或第二密钥协商数据等。
区块链通常是基于非对称加密技术实现可信的信息传播、和校验等。其中“区块”的概念是将一条或多条数据记录以“块”的形式组织,“区块”的大小可以根据实际应用场景自定义;而“链”是一种数据结构,该数据结构将存储数据记录的“区块”按照时间顺序并以哈希(HASH)技术相连。在区块链中,每个“区块”包含“区块头”和“区块体”两个部分,其中“区块体”包含打包进“区块”的交易记录;“区块头”包含“区块”中所有交易的根HASH值和前一“区块”的HASH值。区块链的数据结构保证了区块链上存储的数据具有不可篡改的特性。
通过区块链可以在密钥协商过程中,实现密钥和生成密钥所使用数据的分布式数据存储:区块链中的分布式存储是参与该区块链的节点各自都存有独立的、完整的数据,保证了数据存储在节点间全公开。与传统的分布式数据存储不同,传统的分布式数据存储按照一定规则将数据分成多份进行备份或同步存储,而区块链分布式数据存储则依赖于区块链中各地位对等的、独立的节点间的共识来实现高一致性的数据存储。在本实施例中,区块链包括第一用户设备和第二用户设备,即第一用户设备和第二用户设备为区块链中的节点,若密钥用于第一用户设备与群组交互数据的场景中,该群组中包括第一用户设备和第二用户设备,则区块链包括群组中所有的用户设备。
因此,在基于区块链的DPOS共识机制生成密钥过程中,密钥协商数据(例如第一密钥协商数据、或第二密钥协商数据)和所交互的加密后的数据记录在区块链中,第一用户设备和第二用户设备为区块链的节点,区块链上的数据备份在服务器中。这样,若第一用户设备中保存的所述密钥丢失,当第一用户设备需要获取用于与第二用户设备交互数据所需的密钥时,第一用户设备可以根据所交互的数据从服务器上获取密钥协商数据,并根据密钥协商数据恢复该密钥。
密钥协商数据和所交互的加密后的数据虽然备份在服务器中,但是,由于服务器无法获取用户身份私钥,从而无法解密密钥协商数据,以获取密钥,因此,也无法解密所交互的数据,保证服务器无法触碰到交互的数据,保证通信安全。另外,由于密钥协商数据和所交互的加密后的数据记录在区块链中,通过区块链可以追溯查询,确认参与生成密钥的用户设备是否包括了未经允许的用户设备。
本实施例中,数据交互过程所使用的密钥可以按照预设周期更新,也可以在参与数据交互的用户设备发生更新时进行更新,更新密钥的过程即重新通过协商生成密钥的过程,参见图4b或图5b对应的实施例。其中,生成密钥的过程可以采用第一用户设备的安全环境(TEE或SE)中执行,生成密钥所使用的密钥协商算法程序可以保存在第一用户设备的安全环境(TEE或SE)中。
由前述实施例可以看出,本申请实施例提供的数据交互方法之所以可以保证数据交互过程的安全性,是因为服务器无法获取到用于与第二用户设备交互数据所需的密钥。而服务器无法获取该密钥的关键在于服务器获取到的密钥协商数据为利用用户身份公钥例如第一用户设备的公钥加密得到的密文,需要使用用户身份私钥例如第一用户设备的私钥才可以解密,而服务器无法获取用户身份私钥。若在所述密钥生成过程中使用的用户身份公钥和用户身份私钥为第一用户设备的用户身份公钥和用户身份私钥,第一用户设备的用户身份公钥和用户身份私钥可以是预先申请得到的,第一用户设备预先申请用户身份公钥和用户身份私钥的过程可以称为用户登记过程。接下来,将对第一用户设备的用户身份公钥和用户身份私钥的申请方法进行介绍。
第一用户设备通过密钥中心获取用户身份公钥和用户身份私钥的系统架构参见图6所示,第一用户设备通过与密钥中心进行交互得到第一用户设备的用户身份公钥和用户身份私钥。可以理解的是,参与数据交互的所有用户设备都需要通过与密钥中心进行交互以申请自己的用户身份公钥和用户身份私钥,本实施例仅以第一用户设备为例对用户身份公钥和用户身份私钥的申请方法进行介绍。
图7示出了一种用户身份公钥和用户身份私钥的申请方法流程图,所述方法包括:
S701、第一用户设备与向密钥中心发起申请请求。所述申请请求用于申请基于双线性对的用户身份公钥和用户身份私钥,所述申请请求中包括所述第一用户设备的身份信息和第一用户设备的设备证书,所述设备证书包括设备证书公钥。其中,身份信息为表征使用第一用户设备的用户身份的信息,例如,用户的手机号、身份证号、或公司的工号等。设备证书是预置在第一用户设备中的,保存在第一用户设备的TEE或SE中,设备证书相当于第一用户设备的标识(Identification,ID)。参见图6中步骤1所示。
S702、密钥中心根据所述身份信息生成第一用户设备的用户身份公钥和用户身份私钥。
S703、密钥中心利用所述设备证书公钥对所述第一用户设备的用户身份公钥和用户身份私钥进行加密得到加密数据。
S704、第一用户设备从密钥中心获取加密数据。密钥中心审核身份信息和设备证书成功后,生成第一用户的用户身份公钥和用户身份私钥,并利用设备证书公钥对第一用户设备的用户身份公钥和用户身份私钥进行加密得到加密数据,将加密数据下发给第一用户设备。参见图6中步骤2-4所示。
S705、利用设备证书私钥对所述加密数据进行解密,得到所述第一用户设备的用户身份公钥和用户身份私钥。其中,第一用户设备的用户身份公钥一般是用户的电话号码、身份证号甚至用户在公司的工号等唯一的且可以公开的标识。
密钥中心还可以将第一用户设备的用户身份公钥和设备证书发送给服务器,服务器记录,从而完成第一用户设备、密钥中心和服务器三方的注册和登记过程。若第一用户设备完成注册和登记过程后,需要生成第一用户设备的用户身份公钥和用户身份私钥,则密钥中心可以将第一用户设备的注册ID作为第一用户设备的用户身份公钥,并根据第一用户设备的注册ID通过双线性对算法生成第一用户的用户身份私钥。
密钥中心根据所述身份信息采用双线性对算法生成第一用户设备的用户身份公钥和用户身份私钥后,密钥中心可以保存第一用户设备的用户身份公钥和用户身份私钥,这样,若第一用户设备中保存的第一用户设备的用户身份公钥和用户身份私钥丢失,那么,在需要使用第一用户设备的用户身份公钥和用户身份私钥时,第一用户设备可以直接从密钥中心获取第一用户设备的用户身份公钥和用户身份私钥。可见,与传统的用户身份公钥和用户身份私钥生成方法相比,该方法利用密钥中心生成并保存用户身份公钥和用户身份私钥(例如第一用户设备的用户身份公钥和用户身份私钥),密钥中心是用户设备所信任的监管方,既可以保证用户设备的用户身份私钥安全,又可以在用户设备中保存的用户身份私钥丢失后,直接从密钥中心获取用户设备的用户身份私钥,避免发生因用户身份私钥丢失而无法解密数据现象的发生。
此外,双线性对算法是基于身份加密(Identity Based Encryption,IBE)算法,主要应用到基于标识的密码技术(Identity-Based Cryptography,IBC),是与传统非对称算法例如椭圆曲线密码学(Elliptic curve cryptography,ECC)等相比具有其独特性。这种独特性表现在其用户身份公钥是用户的身份标识,该用户的身份标识可以是任何有意义的字符串,比如邮箱地址、电话号码、身份证号、姓名、或工号等,而不再是随机乱码。密钥中心可以根据不同用户的身份标识生成有意义字符串的用户身份公钥和对应的用户身份私钥。使用用户身份公钥对密钥协商数据进行加密,更加直观。
可以理解的是,为了保证第一用户设备的用户身份私钥安全,那么,第一用户设备的用户身份私钥和用户身份公钥,以及生成用户身份私钥和用户身份公钥所使用的数据(例如双线性对算法、设备证书和设备证书私钥)需要保存在安全环境中。综合图3-图7对应实施例的描述,第一用户设备的软件实现架构参见图8所示,该软件实现架构包括android运行环境和安全环境(TEE或SE)。Android运行环境提供数据交互应用例如即时通讯应用、可信审计接口、或密钥服务接口等。其中,即时通讯应用可以通过调用密钥服务器接口获取密钥以利用密钥对交互的数据做加密和/或解密,通过可信审计接口用户可以查询整个数据交互过程是否为可信过程。安全环境用于实现密钥存储和管理、双线性对算法存储、第一用户设备的私钥存储、设备证书和设备证书私钥存储、执行生成密钥的过程、和密钥协商算法存储等。
为便于更好的实施本申请实施例的上述方案,下面还提供用于实施上述方案的相关装置。
请参阅图9a所示,本申请实施例提供的一种数据交互装置900,该装置900可以包括协商单元901和交互单元902:
协商单元901,用于与第二用户设备协商与第二用户设备交互数据所需的密钥;在密钥的协商过程中,通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,密钥协商数据包括密钥或生成密钥所使用的数据;用户身份公钥和用户身份私钥是由第一用户设备和第二用户设备信任的密钥中心生成的;
交互单元902,用于通过服务器与第二用户设备交互数据,其中,在交互数据的过程中,使用密钥对交互的数据做加密或解密中的至少一项。
可选的,第一用户设备在通信群组中与第二用户设备交互数据,通信群组中包括第一用户设备和第二用户设备。
可选的,协商单元901用于:
通过服务器向第二用户设备发送第一密钥协商数据,第一密钥协商数据为第一用户设备利用第二用户设备的用户身份公钥对密钥或用于生成密钥的第一随机数加密得到的并能够被第二用户设备的用户身份私钥所解密;其中,通过服务器转发的密钥协商数据包括第一密钥协商数据;生成密钥所使用的数据包括第一随机数;第一随机数为第一用户设备生成的。
可选的,第一密钥协商数据还包括第一用户设备的用户身份私钥签名;用户身份私钥签名是第一用户设备利用第一用户设备的用户身份私钥对第一随机数签名得到的。
可选的,若第一密钥协商数据中包括密钥,且密钥是第一用户设备根据第二用户设备产生的第二随机数生成的,第一密钥协商数据还包括第二随机数,第二随机数被第二用户设备验证。
可选的,协商单元901用于:
通过服务器获取第二用户设备发送的第二密钥协商数据,第二密钥协商数据为第二用户设备利用第一用户设备的用户身份公钥对密钥或用于生成密钥的第二随机数加密得到的;其中,通过服务器转发的密钥协商数据包括第二密钥协商数据;生成密钥所使用的数据包括第二随机数;第二随机数为第二用户设备生成的;
根据第一用户设备的用户身份私钥对第二密钥协商数据进行解密,得到第二随机数或密钥。
可选的,若第二密钥协商数据还包括第二用户设备的用户身份私钥签名,参见图9b,协商单元901中还包括验证单元9011:
验证单元9011,用于利用第二用户设备的用户身份公钥对用户身份私钥签名进行验证;用户身份私钥签名是第二用户设备利用第二用户设备的用户身份私钥对第二随机数签名得到的。
可选的,若第二密钥协商数据中包括密钥,且密钥是第二用户设备根据第一用户设备产生的第一随机数生成的,第二密钥协商数据中还包括第一随机数;验证单元9011还用于:
验证第一随机数。
可选的,参见图9c,该装置900还包括存储单元903:
存储单元903,用于存储密钥;
在通过服务器与第二用户设备交互数据时,该装置900还包括获取单元904:
获取单元904,用于获取被存储的密钥。
可选的,在协商密钥过程中,密钥协商数据和所交互加密后的数据以区块链形式存储,第一用户设备和第二用户设备为区块链的节点,区块链上的数据备份在云服务器中,若第一用户设备中存储的密钥丢失,获取单元904还用于:
根据所交互的加密数据从云服务器获取密钥协商数据;
根据密钥协商数据恢复密钥。
可选的,若在密钥生成过程中需要使用第一用户设备的用户身份公钥和用户身份私钥,参见图9d,该装置900还包括发送单元905和解密单元906:
发送单元905,用于向密钥中心发起申请请求,申请请求用于申请用户身份公钥和用户身份私钥,申请请求中包括第一用户设备的身份信息和第一用户设备的设备证书,设备证书包括设备证书公钥;
获取单元904,还用于从密钥中心获取加密数据,加密数据是密钥中心利用设备证书公钥对第一用户设备的用户身份公钥和用户身份私钥进行加密得到的;第一用户的用户身份公钥和用户身份私钥是密钥中心根据身份信息生成的;
解密单元906,用于利用设备证书私钥对加密数据进行解密,得到第一用户设备的用户身份公钥和用户身份私钥。
可选的,第一用户设备的用户身份公钥和用户身份私钥保存在密钥中心,若第一用户设备中保存的第一用户设备的用户身份私钥丢失,获取单元904还用于:
从密钥中心获取第一用户设备的用户身份公钥和用户身份私钥。
另外,本申请实施例还提供了一种终端设备,请参阅图10所示,终端设备1000包括:
接收器1001、发射器1002、处理器1003和存储器1004(其中终端设备1000中的处理器1003的数量可以一个或多个,图10中以一个处理器为例)。在本申请的一些实施例中,接收器1001、发射器1002、处理器1003和存储器1004可连接。
存储器1004可以包括只读存储器和随机存取存储器,并向处理器1003提供指令和数据。存储器1004的一部分还可以包括NVRAM。存储器1004存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
处理器1003控制用户终端的操作,处理器1003可以集成在图4a所示的SOC上,例该处理器1003包括图4a所示的ARM处理器或SE中至少一个,ARM处理器和SE也可以为各自独立的芯片。处理器1003可以在安全环境(例如图4a中SE或TEE)下执行上述方法中安全性要求较高的步骤,例如密钥存储、用户身份私钥和用户身份公钥的保存和密钥协商等,处理器1003可以在如图4a中Android环境下完成上述方法中通过服务器与第二用户设备交互数据的步骤。具体的应用中,用户终端的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
上述本申请实施例揭示的方法可以应用于处理器1003中,或者由处理器1003实现。处理器1003可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器1003中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1003可以包括通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1004,处理器1003读取存储器1004中的信息,结合其硬件完成上述方法的步骤。
在具体实现时,所述处理器1003用于实现如下操作:
与第二用户设备协商与第二用户设备交互数据所需的密钥;在所述密钥的协商过程中,通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,所述密钥协商数据包括所述密钥或生成所述密钥所使用的数据;所述用户身份公钥和用户身份私钥是由第一用户设备和所述第二用户设备信任的密钥中心生成的;
通过所述服务器与所述第二用户设备交互数据,其中,在交互数据的过程中,使用所述密钥对交互的数据做加密或解密中的至少一项。
可选地,所述第一用户设备在通信群组中与所述第二用户设备交互所述数据,所述通信群组中包括所述第一用户设备和所述第二用户设备。
可选地,所述处理器1003还用于实现如下操作:
通过发射器1002经由服务器向所述第二用户设备发送第一密钥协商数据,所述第一密钥协商数据为所述第一用户设备利用所述第二用户设备的用户身份公钥对所述密钥或用于生成所述密钥的第一随机数加密得到的并能够被所述第二用户设备的用户身份私钥所解密;其中,通过服务器转发的密钥协商数据包括所述第一密钥协商数据;所述生成所述密钥所使用的数据包括所述第一随机数;所述第一随机数为所述第一用户设备生成的。
可选地,所述第一密钥协商数据还包括第一用户设备的用户身份私钥签名;所述用户身份私钥签名是所述第一用户设备利用所述第一用户设备的用户身份私钥对所述第一随机数签名得到的。
可选地,若所述第一密钥协商数据中包括所述密钥,且所述密钥是第一用户设备根据第二用户设备产生的第二随机数生成的,所述第一密钥协商数据还包括所述第二随机数,所述第二随机数被所述第二用户设备验证。
可选地,所述处理器1003还用于实现如下操作:
通过接收器1001经由服务器获取所述第二用户设备发送的第二密钥协商数据,所述第二密钥协商数据为所述第二用户设备利用第一用户设备的用户身份公钥对所述密钥或用于生成所述密钥的第二随机数加密得到的;其中,通过服务器转发的密钥协商数据包括第二密钥协商数据;所述生成所述密钥所使用的数据包括所述第二随机数;所述第二随机数为所述第二用户设备生成的;
根据所述第一用户设备的用户身份私钥对所述第二密钥协商数据进行解密,得到所述第二随机数或所述密钥。
若所述第二密钥协商数据还包括第二用户设备的用户身份私钥签名,利用所述第二用户设备的用户身份公钥对所述用户身份私钥签名进行验证;所述用户身份私钥签名是所述第二用户设备利用所述第二用户设备的用户身份私钥对所述第二随机数签名得到的。
可选的,若所述第二密钥协商数据中包括所述密钥,且所述密钥是所述第二用户设备根据第一用户设备产生的第一随机数生成的,所述第二密钥协商数据中还包括所述第一随机数;
在与第二用户设备协商得到与第二用户设备交互数据所需的密钥时,所述处理器1003还用于实现如下操作:
验证所述第一随机数。
可选的,在与第二用户设备协商与第二用户设备交互数据所需的密钥之后,所述处理器1003还用于实现如下操作:
存储所述密钥;
在通过所述服务器与所述第二用户设备交互数据时,所述处理器1003还用于实现如下操作:
获取被存储的所述密钥。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行上述方法实施例中记载的部分或全部步骤。
本申请实施例还提供了在一种包含计算机可读指令的计算机程序产品,当该计算机可读指令在计算机上运行时,使得计算机执行上述各方面所述的数据交互方法。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,图9a-图9d中的所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现,或采用软件硬件结合的方式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (12)
1.一种数据交互方法,其特征在于,所述方法包括:
与第二用户设备协商与第二用户设备交互数据所需的密钥;在所述密钥的协商过程中,通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,所述密钥协商数据包括所述密钥或生成所述密钥所使用的数据;所述用户身份公钥和用户身份私钥是由第一用户设备和所述第二用户设备信任的密钥中心根据身份标识采用双线性对算法生成的,所述用户身份公钥和用户身份私钥是双线性对的用户身份公钥和用户身份私钥;所述服务器为公有云的服务器,所述第一用户设备和所述第二用户设备是区块链中的节点,所述密钥的协商过程是基于所述区块链的委托股权证明共识机制实现的;
通过所述服务器与所述第二用户设备交互数据,其中,在交互数据的过程中,使用所述密钥对交互的数据做加密或解密中的至少一项,所述密钥协商数据和所交互的加密后的数据记录在所述区块链中。
2.根据权利要求1所述的方法,其特征在于,所述第一用户设备在通信群组中与所述第二用户设备交互所述数据,所述通信群组中包括所述第一用户设备和所述第二用户设备。
3.根据权利要求1或2所述的方法,其特征在于,所述与第二用户设备协商与第二用户设备交互数据所需的密钥,包括:
通过所述服务器向所述第二用户设备发送第一密钥协商数据,所述第一密钥协商数据为所述第一用户设备利用所述第二用户设备的用户身份公钥对所述密钥或用于生成所述密钥的第一随机数加密得到的并能够被所述第二用户设备的用户身份私钥所解密;其中,通过服务器转发的密钥协商数据包括所述第一密钥协商数据;所述生成所述密钥所使用的数据包括所述第一随机数;所述第一随机数为所述第一用户设备生成的。
4.根据权利要求3所述的方法,其特征在于,所述第一密钥协商数据还包括第一用户设备的用户身份私钥签名;所述用户身份私钥签名是所述第一用户设备利用所述第一用户设备的用户身份私钥对所述第一随机数签名得到的。
5.根据权利要求3所述的方法,其特征在于,若所述第一密钥协商数据中包括所述密钥,且所述密钥是第一用户设备根据第二用户设备产生的第二随机数生成的,所述第一密钥协商数据还包括所述第二随机数,所述第二随机数被所述第二用户设备验证。
6.根据权利要求1或2所述的方法,其特征在于,所述与第二用户设备协商得到与第二用户设备交互数据所需的密钥,包括:
通过所述服务器获取所述第二用户设备发送的第二密钥协商数据,所述第二密钥协商数据为所述第二用户设备利用第一用户设备的用户身份公钥对所述密钥或用于生成所述密钥的第二随机数加密得到的;其中,通过服务器转发的密钥协商数据包括第二密钥协商数据;所述生成所述密钥所使用的数据包括所述第二随机数;所述第二随机数为所述第二用户设备生成的;
根据所述第一用户设备的用户身份私钥对所述第二密钥协商数据进行解密,得到所述第二随机数或所述密钥。
7.根据权利要求6所述的方法,其特征在于,所述与第二用户设备协商得到与第二用户设备交互数据所需的密钥,还包括:
若所述第二密钥协商数据还包括第二用户设备的用户身份私钥签名,利用所述第二用户设备的用户身份公钥对所述用户身份私钥签名进行验证;所述用户身份私钥签名是所述第二用户设备利用所述第二用户设备的用户身份私钥对所述第二随机数签名得到的。
8.根据权利要求6所述的方法,其特征在于,若所述第二密钥协商数据中包括所述密钥,且所述密钥是所述第二用户设备根据第一用户设备产生的第一随机数生成的,所述第二密钥协商数据中还包括所述第一随机数;
所述与第二用户设备协商得到与第二用户设备交互数据所需的密钥,还包括:
验证所述第一随机数。
9.根据权利要求1所述的方法,其特征在于,在与第二用户设备协商与第二用户设备交互数据所需的密钥之后,所述方法还包括:
存储所述密钥;
在通过所述服务器与所述第二用户设备交互数据时,还包括:获取被存储的所述密钥。
10.一种数据交互装置,其特征在于,所述装置包括协商单元和交互单元:
所述协商单元,用于与第二用户设备协商与第二用户设备交互数据所需的密钥;在所述密钥的协商过程中,通过服务器转发的密钥协商数据为利用用户身份公钥加密后的密文,所述密钥协商数据包括所述密钥或生成所述密钥所使用的数据;所述用户身份公钥和用户身份私钥是由第一用户设备和所述第二用户设备信任的密钥中心根据身份标识采用双线性对算法生成的,所述用户身份公钥和用户身份私钥是双线性对的用户身份公钥和用户身份私钥;所述服务器为公有云的服务器,所述第一用户设备和所述第二用户设备是区块链中的节点,所述密钥的协商过程是基于所述区块链的委托股权证明共识机制实现的;
所述交互单元,用于通过所述服务器与所述第二用户设备交互数据,其中,在交互数据的过程中,使用所述密钥对交互的数据做加密或解密中的至少一项,所述密钥协商数据和所交互的加密后的数据记录在所述区块链中。
11.一种终端设备,其特征在于,所述终端设备包括:处理器,存储器;所述处理器、所述存储器之间进行相互的通信;
所述存储器用于存储指令;
所述处理器用于执行所述存储器中的所述指令,执行如权利要求1至9中任一项所述的方法。
12.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至9中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2019/091469 WO2020252611A1 (zh) | 2019-06-17 | 2019-06-17 | 一种数据交互方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112400299A CN112400299A (zh) | 2021-02-23 |
CN112400299B true CN112400299B (zh) | 2022-06-14 |
Family
ID=74036869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980010192.5A Active CN112400299B (zh) | 2019-06-17 | 2019-06-17 | 一种数据交互方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112400299B (zh) |
WO (1) | WO2020252611A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115529128B (zh) * | 2022-09-23 | 2023-09-29 | 中科海川(北京)科技有限公司 | 基于sd-wan的端端协商通信方法、终端设备、服务器 |
CN115529127B (zh) * | 2022-09-23 | 2023-10-03 | 中科海川(北京)科技有限公司 | 基于sd-wan场景的设备认证方法、装置、介质、设备 |
CN115941262A (zh) * | 2022-10-31 | 2023-04-07 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的交易执行方法和节点 |
CN116112916B (zh) * | 2023-02-07 | 2024-02-23 | 深圳市华赛睿飞智能科技有限公司 | 一种无人机数据安全分享方法、智能底座及存储介质 |
CN117240617B (zh) * | 2023-11-13 | 2024-02-23 | 中国联合网络通信集团有限公司 | 公有云存储访问方法、装置、设备及存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1218841A2 (en) * | 1999-09-20 | 2002-07-03 | Ethentica, Inc. | Electronic commerce with cryptographic authentication |
US7085376B2 (en) * | 2001-02-14 | 2006-08-01 | Copytele, Inc. | Method and system for securely exchanging encryption key determination information |
CN105141426B (zh) * | 2015-08-17 | 2018-12-21 | 北京幺正科技有限公司 | 工控设备安全认证方法、服务器和客户端 |
CN107317674B (zh) * | 2016-04-27 | 2021-08-31 | 华为技术有限公司 | 密钥分发、认证方法,装置及系统 |
CN107241190A (zh) * | 2017-08-04 | 2017-10-10 | 南京理工大学 | 一种基于身份的密钥协商构建方法与网络平台 |
CN109728901B (zh) * | 2017-10-31 | 2022-04-08 | 中国电信股份有限公司 | 数字签名认证方法、装置和系统 |
CN109302412B (zh) * | 2018-11-06 | 2021-09-21 | 晋商博创(北京)科技有限公司 | 基于CPK的VoIP通信处理方法、终端、服务器及存储介质 |
-
2019
- 2019-06-17 WO PCT/CN2019/091469 patent/WO2020252611A1/zh active Application Filing
- 2019-06-17 CN CN201980010192.5A patent/CN112400299B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
WO2020252611A1 (zh) | 2020-12-24 |
CN112400299A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112400299B (zh) | 一种数据交互方法及相关设备 | |
US10785019B2 (en) | Data transmission method and apparatus | |
US11271730B2 (en) | Systems and methods for deployment, management and use of dynamic cipher key systems | |
CN106104562B (zh) | 机密数据安全储存和恢复系统及方法 | |
US9852300B2 (en) | Secure audit logging | |
JP7454564B2 (ja) | 鍵管理のための方法、ユーザ・デバイス、管理デバイス、記憶媒体及びコンピュータ・プログラム製品 | |
JP2020528224A (ja) | 信頼できる実行環境におけるスマート契約動作のセキュアな実行 | |
EP2095288B1 (en) | Method for the secure storing of program state data in an electronic device | |
US20210357914A1 (en) | Constructing a Distributed Ledger Transaction on a Cold Hardware Wallet | |
US11831753B2 (en) | Secure distributed key management system | |
US11716206B2 (en) | Certificate based security using post quantum cryptography | |
CN109639697A (zh) | 云手机安全投屏的方法、移动终端和服务器 | |
CN110138739B (zh) | 数据信息加密方法、装置、计算机设备及存储介质 | |
AU2021271512A1 (en) | Constructing a distributed ledger transaction on a cold hardware wallet | |
CN111131278A (zh) | 数据处理方法及装置、计算机存储介质、电子设备 | |
WO2022003009A1 (en) | Tls integration of post quantum cryptographic algorithms | |
WO2023151479A1 (zh) | 数据处理方法及设备 | |
CN109257347A (zh) | 适于银企间数据交互的通信方法和相关装置、存储介质 | |
CN112822177A (zh) | 数据传输方法、装置、设备和存储介质 | |
CN113411187A (zh) | 身份认证方法和系统、存储介质及处理器 | |
EP2942899A1 (en) | Information processing method, trust server and cloud server | |
CN114465803A (zh) | 对象授权方法、装置、系统及存储介质 | |
US20210281608A1 (en) | Separation of handshake and record protocol | |
CN110912683B (zh) | 密码存储方法及装置、密码验证方法及装置 | |
CN116866029B (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 |