CN111510462A - 通信方法、***、装置、电子设备和可读存储介质 - Google Patents
通信方法、***、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN111510462A CN111510462A CN202010351777.8A CN202010351777A CN111510462A CN 111510462 A CN111510462 A CN 111510462A CN 202010351777 A CN202010351777 A CN 202010351777A CN 111510462 A CN111510462 A CN 111510462A
- Authority
- CN
- China
- Prior art keywords
- node
- execution environment
- trusted execution
- communication
- intelligent contract
- 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.)
- Granted
Links
- 230000006854 communication Effects 0.000 title claims abstract description 635
- 238000004891 communication Methods 0.000 title claims abstract description 634
- 238000000034 method Methods 0.000 title claims abstract description 117
- 230000000977 initiatory effect Effects 0.000 claims description 40
- 230000005540 biological transmission Effects 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 35
- 230000004931 aggregating effect Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 14
- 238000013475 authorization Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/065—Network architectures or network communication protocols for network security for supporting key management in a packet data network for group communications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开实施例公开了一种通信方法、***、装置、电子设备和可读存储介质。通信方法包括:在通信组中的第一节点获取智能合约,将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密;通过第一节点的可信执行环境将经加密的智能合约发送到通信组中的至少一个第二节点的可信执行环境;对经加密的智能合约进行解密,并且至少一个第二节点读取经解密的智能合约;通信组中的具有智能合约的节点检测智能合约是否满足预设条件;根据检测到智能合约满足预设条件,通信组中的具有智能合约的节点对智能合约签名,将经签名的智能合约装入所述通信组中的具有所述智能合约的节点各自的可信执行环境中以供调用。
Description
技术领域
本公开涉及计算机技术领域,具体涉及通信方法、***、装置、电子设备和可读存储介质。
背景技术
出于代码审核难度的考虑,也出于单一责任的设计考虑,利用可信执行环境(TEE,Trusted Execution Environment)通信时所用的代码的代码量应该越小越好,功能越简单越好。但是节点拥有者利用TEE进行通信时具体的业务诉求不尽相同,而且随着时间的改变业务诉求也在不停发生改变。一个节点的业务升级或改变也要修改TEE代码本身,会导致代码审核的需求越来越多,无法快速应对业务的变化。
发明内容
为了解决相关技术中的问题,本公开实施例提供通信方法、***、装置、电子设备和可读存储介质。
第一方面,本公开实施例中提供了一种通信方法,包括:
利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;
所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密;
通过所述第一节点的可信执行环境将经加密的智能合约发送到所述通信组中的至少一个第二节点的可信执行环境;
通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;
所述通信组中的具有所述智能合约的节点检测所述智能合约是否满足预设条件;
根据检测到所述智能合约满足预设条件,所述通信组中的具有所述智能合约的节点对所述智能合约签名,将经签名的智能合约装入所述通信组中的具有所述智能合约的节点各自的可信执行环境中以供调用。
结合第一方面,本公开在第一方面的第一种实现方式中,还包括:
响应于所述通信组中的具有所述智能合约的节点对自身的可信执行环境中的经签名的智能合约的调用请求,所述发起调用请求的节点检测所述经签名的智能合约是否满足所述预设条件;
根据检测到经签名的智能合约满足所述预设条件,所述发起调用请求的节点的可信执行环境中的用于加载智能合约的加载模块加载并执行经签名的智能合约。
结合第一方面的第一种实现方式,本公开在第一方面的第二种实现方式中,还包括:
响应于所述加载模块对经签名的智能合约的执行,对发起调用请求的节点的状态和/或数据进行访问;并且/或者
响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问。
结合第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,包括:
响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的可信执行环境中装入的经签名的智能合约的特定接口进行调用。
结合第一方面的第一种实现方式至第一方面的第三种实现方式中的任意一种,本公开在第一方面的第四种实现方式中,还包括:
响应于所述加载模块对经签名的智能合约的执行,对在发起所述调用请求的节点的可信执行环境中对经签名的智能合约的执行结果进行汇总,并且输出汇总的执行结果,或者
响应于所述加载模块对经签名的智能合约的执行,调用除所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的节点以外的节点,执行与对所述智能合约的调用请求对应的业务。
结合第一方面的第四种实现方式,本公开在第一方面的第五种实现方式中,所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:
所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密。
结合第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,所述利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:
根据预设确定方法确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组。
结合第一方面的第六种实现方式,本公开在第一方面的第七种实现方式中,所述根据预设确定方法确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:
确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;
根据确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征一致,允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组。
结合第一方面的第七种实现方式,本公开在第一方面的第八种实现方式中,所述确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致,包括:
在所述多个安装有可信执行环境的节点以外的特定装置确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;
所述多个安装有可信执行环境的节点接收所述特定装置发出的确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致的确定结果。
结合第一方面、第一方面的第一种实现方式至第三种实现方式中的任意一种,本公开在第一方面的第九种实现方式中,所述利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:
所述多个节点根据预设协商方法在所述多个节点的可信执行环境中协商用于所述通信组中全部或部分节点之间的加密通信的组通信密钥。
结合第一方面的第九种实现方式,本公开在第一方面的第十种实现方式中,所述组通信密钥是对称式密钥。
结合第一方面的第十种实现方式,本公开在第一方面的第十一种实现方式中,所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:
根据第一鉴权方法对所述第一节点进行鉴权;
根据对所述第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中。
结合第一方面的第十一种实现方式,本公开在第一方面的第十二种实现方式中,所述根据对所述第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中,包括:
根据对所述第一节点的鉴权结果满足第一预设条件,所述第一节点利用第一私钥对所述智能合约进行加密并装入所述第一节点的可信执行环境中。
结合第一方面的第十二种实现方式,本公开在第一方面的第十三种实现方式中,所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:
在所述第一节点的可信执行环境中利用与所述第一私钥对应的第一公钥对经所述第一私钥加密的智能合约进行解密;
在所述第一节点的可信执行环境中利用所述组通信密钥对解密得到的智能合约进行加密。
结合第一方面的第十三种实现方式,本公开在第一方面的第十四种实现方式中,所述通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约,包括:
在所述至少一个第二节点自身的可信执行环境中利用所述组通信密钥对所述经加密的智能合约进行解密;
根据第二鉴权方法对所述至少一个第二节点进行鉴权;
根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约。
结合第一方面的第十四种实现方式,本公开在第一方面的第十五种实现方式中,所述根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约,包括:
根据对所述至少一个第二节点的鉴权结果满足第二预设条件,在所述至少一个第二节点的可信执行环境中利用第二私钥对所述智能合约进行解密并传送到所述第二节点;
所述第二节点利用与所述第二私钥对应的第二公钥对经所述第二私钥加密的智能合约进行解密以获取所述智能合约。
结合第一方面的第九种实现方式,本公开在第一方面的第十六种实现方式中,还包括:
由所述通信组中的节点在可信执行环境中针对所述组通信生成日志;
所述通信组中的节点的可信执行环境中基于所述组密钥生成第三私钥;
在所述通信组中的节点的可信执行环境中利用所述第三私钥对所述日志进行签名;
在所述通信组中的节点之间利用可信执行环境传送所述经第三私钥签名的日志。
第二方面,本公开实施例中提供了一种通信***,包括:
多个安装有可信执行环境的节点,
其中,利用所述多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;
其中,所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密;
其中,通过所述第一节点的可信执行环境将经加密的智能合约发送到所述通信组中的至少一个第二节点的可信执行环境;
其中,通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;
其中,所述通信组中的具有所述智能合约的节点检测所述智能合约是否满足预设条件;
其中,根据检测到所述智能合约满足预设条件,所述通信组中的具有所述智能合约的节点对所述智能合约签名,将经签名的智能合约装入所述通信组中的具有所述智能合约的节点各自的可信执行环境中以供调用。
结合第二方面,本公开在第二方面的第一种实现方式中,响应于所述通信组中的具有所述智能合约的节点对自身的可信执行环境中的经签名的智能合约的调用请求,所述发起调用请求的节点检测所述经签名的智能合约是否满足所述预设条件;
其中,根据检测到经签名的智能合约满足所述预设条件,所述发起调用请求的节点的可信执行环境中的用于加载智能合约的加载模块加载并执行经签名的智能合约。
结合第二方面的第一种实现方式,本公开在第二方面的第二种实现方式中,响应于所述加载模块对经签名的智能合约的执行,对发起调用请求的节点的状态和/或数据进行访问;并且/或者
其中,响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问。
结合第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,包括:
响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的可信执行环境中装入的经签名的智能合约的特定接口进行调用。
结合第二方面的第一种实现方式至第二方面的第三种实现方式中的任意一种,本公开在第二方面的第四种实现方式中,响应于所述加载模块对经签名的智能合约的执行,对在发起所述调用请求的节点的可信执行环境中对经签名的智能合约的执行结果进行汇总,并且输出汇总的执行结果,或者
响应于所述加载模块对经签名的智能合约的执行,调用除所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的节点以外的节点,执行与对所述智能合约的调用请求对应的业务。
结合第二方面的第四种实现方式,本公开在第二方面的第五种实现方式中,所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:
所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密。
结合第二方面的第五种实现方式,本公开在第二方面的第六种实现方式中,所述利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:
根据预设确定***确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组。
结合第二方面的第六种实现方式,本公开在第二方面的第七种实现方式中,所述根据预设确定***确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:
确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;
根据确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征一致,允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组。
结合第二方面的第七种实现方式,本公开在第二方面的第八种实现方式中,所述确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致,包括:
在所述多个安装有可信执行环境的节点以外的特定装置确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;
所述多个安装有可信执行环境的节点接收所述特定装置发出的确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致的确定结果。
结合第二方面、第二方面的第一种实现方式至第三种实现方式中的任意一种,本公开在第二方面的第九种实现方式中,所述利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:
所述多个节点根据预设协商***在所述多个节点的可信执行环境中协商用于所述通信组中全部或部分节点之间的加密通信的组通信密钥。
结合第二方面的第九种实现方式,本公开在第二方面的第十种实现方式中,所述组通信密钥是对称式密钥。
结合第二方面的第十种实现方式,本公开在第二方面的第十一种实现方式中,所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:
根据第一鉴权***对所述第一节点进行鉴权;
根据对所述第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中。
结合第二方面的第十一种实现方式,本公开在第二方面的第十二种实现方式中,所述根据对所述第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中,包括:
根据对所述第一节点的鉴权结果满足第一预设条件,所述第一节点利用第一私钥对所述智能合约进行加密并装入所述第一节点的可信执行环境中。
结合第二方面的第十二种实现方式,本公开在第二方面的第十三种实现方式中,所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:
在所述第一节点的可信执行环境中利用与所述第一私钥对应的第一公钥对经所述第一私钥加密的智能合约进行解密;
在所述第一节点的可信执行环境中利用所述组通信密钥对解密得到的智能合约进行加密。
结合第二方面的第十三种实现方式,本公开在第二方面的第十四种实现方式中,所述通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约,包括:
在所述至少一个第二节点自身的可信执行环境中利用所述组通信密钥对所述经加密的智能合约进行解密;
根据第二鉴权***对所述至少一个第二节点进行鉴权;
根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约。
结合第二方面的第十四种实现方式,本公开在第二方面的第十五种实现方式中,所述根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约,包括:
根据对所述至少一个第二节点的鉴权结果满足第二预设条件,在所述至少一个第二节点的可信执行环境中利用第二私钥对所述智能合约进行解密并传送到所述第二节点;
所述第二节点利用与所述第二私钥对应的第二公钥对经所述第二私钥加密的智能合约进行解密以获取所述智能合约。
结合第二方面的第九种实现方式,本公开在第二方面的第十六种实现方式中,还包括:
由所述通信组中的节点在可信执行环境中针对所述组通信生成日志;
所述通信组中的节点的可信执行环境中基于所述组密钥生成第三私钥;
在所述通信组中的节点的可信执行环境中利用所述第三私钥对所述日志进行签名;
在所述通信组中的节点之间利用可信执行环境传送所述经第三私钥签名的日志。
第三方面,本公开实施例中提供了一种通信装置,包括:发送模块和可信执行环境,其中,在利用多个通信装置生成的利用可信执行环境进行加密通信的通信组中,所述通信装置与第二通信装置利用可信执行环境进行通信且不经过第三方通信装置,
其中,所述通信装置获取第一智能合约,通过所述发送模块将所述第一智能合约发送到所述通信装置的可信执行环境中,
其中,所述可信执行环境被配置为:对所述第一智能合约加密,并且将经加密的第一智能合约发送到所述第二通信装置的可信执行环境。
结合第三方面,本公开在第三方面的第一种实现方式中,还包括:
读取模块,
其中,所述可信执行环境被配置为接收所述第二通信装置通过所述可信执行环境发送的经加密的第二智能合约,并且对所述经加密的第二智能合约进行解密,
其中,所述读取模块从所述可信执行环境中读取经解密的第二智能合约。
结合第三方面或第三方面的第一种实现方式,本公开在第三方面的第二种实现方式中,还包括:
加载模块,被配置为加载并执行经签名的第一智能合约或经签名的第二智能合约。
第四方面,本公开实施例中提供了一种通信方法,由包括发送模块和可信执行环境的通信装置执行,其中,利用多个安装有可信执行环境的通信装置生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个通信装置利用可信执行环境进行通信且不经过第三方通信装置,
其中,所述方法包括:
所述通信装置获取第一智能合约,通过所述发送模块将所述第一智能合约发送到所述通信装置的可信执行环境中;
在可信执行环境中对所述第一智能合约加密;
利用所述可信执行环境将经加密的第一智能合约发送到所述第二通信装置的可信执行环境。
结合第四方面,本公开在第四方面的第一种实现方式中,还包括:
接收所述第二通信装置利用所述可信执行环境发送的经加密的第二智能合约;
通过所述可信执行环境对所述经加密的第二智能合约进行解密;
对所述通信装置授权以从所述可信执行环境中读取经解密的第二智能合约。
结合第四方面或第四方面的第一种实现方式,本公开在第四方面的第二种实现方式中,还包括:加载并执行经签名的第一智能合约或经签名的第二智能合约。
第五方面,本公开实施例中提供了一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第四方面、第四方面的第一种实现方式至第二种实现方式中任一项所述的方法。
第六方面,本公开实施例中提供了一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第四方面、第四方面的第一种实现方式至第二种实现方式中任一项所述的方法。
本公开实施例提供的技术方案可以包括以下有益效果:
根据本公开实施例提供的技术方案,通过利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密;通过所述第一节点的可信执行环境将经加密的智能合约发送到所述通信组中的至少一个第二节点的可信执行环境;通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;所述通信组中的具有所述智能合约的节点检测所述智能合约是否满足预设条件;根据检测到所述智能合约满足预设条件,所述通信组中的具有所述智能合约的节点对所述智能合约签名,将经签名的智能合约装入所述通信组中的具有所述智能合约的节点各自的可信执行环境中以供调用,从而在保证业务执行的同时降低了审核代码的需求,利用可信执行环境执行的智能合约的传输和签名机制可以实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过响应于所述通信组中的具有所述智能合约的节点对自身的可信执行环境中的经签名的智能合约的调用请求,所述发起调用请求的节点检测所述经签名的智能合约是否满足所述预设条件;根据检测到经签名的智能合约满足所述预设条件,所述发起调用请求的节点的可信执行环境中的用于加载智能合约的加载模块加载并执行经签名的智能合约,从而实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过响应于所述加载模块对经签名的智能合约的执行,对发起调用请求的节点的状态和/或数据进行访问;并且/或者响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,从而实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过所述响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,包括:响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的可信执行环境中装入的经签名的智能合约的特定接口进行调用,从而实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过响应于所述加载模块对经签名的智能合约的执行,对在发起所述调用请求的节点的可信执行环境中对经签名的智能合约的执行结果进行汇总,并且输出汇总的执行结果,或者响应于所述加载模块对经签名的智能合约的执行,调用除所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的节点以外的节点,执行与对所述智能合约的调用请求对应的业务,从而实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:根据预设确定方法确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,从而在保证业务执行的同时降低了审核代码的需求,防止泄密。
根据本公开实施例提供的技术方案,通过所述根据预设确定方法确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;根据确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征一致,允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,从而保证通信组中节点的可信执行环境的安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致,包括:在所述多个安装有可信执行环境的节点以外的特定装置确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;所述多个安装有可信执行环境的节点接收所述特定装置发出的确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致的确定结果,从而保证通信组中节点的可信执行环境的安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:所述多个节点根据预设协商方法在所述多个节点的可信执行环境中协商用于所述通信组中全部或部分节点之间的加密通信的组通信密钥,从而保证通信组中节点间通信的安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述组通信密钥是对称式密钥,从而保证通信组中节点间通信的安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:根据第一鉴权方法对所述第一节点进行鉴权;根据对所述第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中,从而保证在节点内部传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过所述根据对所述第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中,包括:根据对所述第一节点的鉴权结果满足第一预设条件,所述第一节点利用第一私钥对所述智能合约进行加密并装入所述第一节点的可信执行环境中,从而保证在节点内部将智能合约传递到可信执行环境时的安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:在所述第一节点的可信执行环境中利用与所述第一私钥对应的第一公钥对经所述第一私钥加密的智能合约进行解密;在所述第一节点的可信执行环境中利用所述组通信密钥对解密得到的智能合约进行加密,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约,包括:在所述至少一个第二节点自身的可信执行环境中利用所述组通信密钥对所述经加密的智能合约进行解密;根据第二鉴权方法对所述至少一个第二节点进行鉴权;根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的加密传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过所述根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约,包括:根据对所述至少一个第二节点的鉴权结果满足第二预设条件,在所述至少一个第二节点的可信执行环境中利用第二私钥对所述智能合约进行加密并传送到所述第二节点;所述第二节点利用与所述第二私钥对应的第二公钥对经所述第二私钥加密的智能合约进行解密以获取所述智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的加密传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过由所述通信组中的节点在可信执行环境中针对所述组通信生成日志;所述通信组中的节点的可信执行环境中基于所述组密钥生成第三私钥;在所述通信组中的节点的可信执行环境中利用所述第三私钥对所述日志进行签名;在所述通信组中的节点之间利用可信执行环境传送所述经第三私钥签名的日志,从而避免日志被伪造,并实现泄密后的精准追责。
根据本公开实施例提供的技术方案,通过多个安装有可信执行环境的节点,其中,利用所述多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;其中,所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密;其中,通过所述第一节点的可信执行环境将经加密的智能合约发送到所述通信组中的至少一个第二节点的可信执行环境;其中,通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;其中,所述通信组中的具有所述智能合约的节点检测所述智能合约是否满足预设条件;其中,根据检测到所述智能合约满足预设条件,所述通信组中的具有所述智能合约的节点对所述智能合约签名,将经签名的智能合约装入所述通信组中的具有所述智能合约的节点各自的可信执行环境中以供调用,从而在保证业务执行的同时降低了审核代码的需求,利用可信执行环境执行的智能合约的传输和签名机制可以实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过响应于所述通信组中的具有所述智能合约的节点对自身的可信执行环境中的经签名的智能合约的调用请求,所述发起调用请求的节点检测所述经签名的智能合约是否满足所述预设条件;其中,根据检测到经签名的智能合约满足所述预设条件,所述发起调用请求的节点的可信执行环境中的用于加载智能合约的加载模块加载并执行经签名的智能合约,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
根据本公开实施例提供的技术方案,通过响应于所述加载模块对经签名的智能合约的执行,对发起调用请求的节点的状态和/或数据进行访问;并且/或者其中,响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,包括:响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的可信执行环境中装入的经签名的智能合约的特定接口进行调用,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
根据本公开实施例提供的技术方案,通过响应于所述加载模块对经签名的智能合约的执行,对在发起所述调用请求的节点的可信执行环境中对经签名的智能合约的执行结果进行汇总,并且输出汇总的执行结果,或者响应于所述加载模块对经签名的智能合约的执行,调用除所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的节点以外的节点,执行与对所述智能合约的调用请求对应的业务,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,从而保证智能合约在可信执行环境中的运行安全性,保证节点间加密传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过所述利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:根据预设确定***确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,从而保证通信组中节点间通信的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过所述根据预设确定***确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;根据确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征一致,允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,从而保证智能合约在可信执行环境中的运行安全性,保证节点间加密传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过所述确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致,包括:在所述多个安装有可信执行环境的节点以外的特定装置确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;所述多个安装有可信执行环境的节点接收所述特定装置发出的确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致的确定结果,从而保证智能合约在可信执行环境中的运行安全性,保证节点间加密传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过所述利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:所述多个节点根据预设协商***在所述多个节点的可信执行环境中协商用于所述通信组中全部或部分节点之间的加密通信的组通信密钥,从而保证通信组中节点间通信的安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述组通信密钥是对称式密钥,从而保证通信组中节点间通信的安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:根据第一鉴权***对所述第一节点进行鉴权;根据对所述第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中,从而保证在节点内部传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过所述根据对所述第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中,包括:根据对所述第一节点的鉴权结果满足第一预设条件,所述第一节点利用第一私钥对所述智能合约进行加密并装入所述第一节点的可信执行环境中,从而保证在节点内部传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过所述通信组中的第一节点获取智能合约,经授权将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密,包括:在所述第一节点的可信执行环境中利用与所述第一私钥对应的第一公钥对经所述第一私钥加密的智能合约进行解密;在所述第一节点的可信执行环境中利用所述组通信密钥对解密得到的智能合约进行加密,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约,包括:在所述至少一个第二节点自身的可信执行环境中利用所述组通信密钥对所述经加密的智能合约进行解密;根据第二鉴权***对所述至少一个第二节点进行鉴权;根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过所述根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约,包括:根据对所述至少一个第二节点的鉴权结果满足第二预设条件,在所述至少一个第二节点的可信执行环境中利用第二私钥对所述智能合约进行解密并传送到所述第二节点;所述第二节点利用与所述第二私钥对应的第二公钥对经所述第二私钥加密的智能合约进行解密以获取所述智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过由所述通信组中的节点在可信执行环境中针对所述组通信生成日志;所述通信组中的节点的可信执行环境中基于所述组密钥生成第三私钥;在所述通信组中的节点的可信执行环境中利用所述第三私钥对所述日志进行签名;在所述通信组中的节点之间利用可信执行环境传送所述经第三私钥签名的日志,从而避免日志被伪造,并实现泄密后的精准追责。
根据本公开实施例提供的技术方案,通过发送模块和可信执行环境,其中,在利用多个通信装置生成的利用可信执行环境进行加密通信的通信组中,所述通信装置与第二通信装置利用可信执行环境进行通信且不经过第三方通信装置,其中,所述通信装置获取第一智能合约,通过所述发送模块将所述第一智能合约发送到所述通信装置的可信执行环境中,其中,所述可信执行环境被配置为:对所述第一智能合约加密,并且将经加密的第一智能合约发送到所述第二通信装置的可信执行环境,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过读取模块,其中,所述可信执行环境被配置为接收所述第二通信装置通过所述可信执行环境发送的经加密的第二智能合约,并且对所述经加密的第二智能合约进行解密,其中,所述读取模块从所述可信执行环境中读取经解密的第二智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过加载模块,被配置为加载并执行经签名的第一智能合约或经签名的第二智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过由包括发送模块和可信执行环境的通信装置执行,其中,利用多个安装有可信执行环境的通信装置生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个通信装置利用可信执行环境进行通信且不经过第三方通信装置,其中,所述方法包括:所述通信装置获取第一智能合约,通过所述发送模块将所述第一智能合约发送到所述通信装置的可信执行环境中;在可信执行环境中对所述第一智能合约加密;利用所述可信执行环境将经加密的第一智能合约发送到所述第二通信装置的可信执行环境,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过接收所述第二通信装置利用所述可信执行环境发送的经加密的第二智能合约;通过所述可信执行环境对所述经加密的第二智能合约进行解密;对所述通信装置授权以从所述可信执行环境中读取经解密的第二智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过加载并执行经签名的第一智能合约或经签名的第二智能合约,从而保证节点间智能合约的一致性,保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的通信方法的流程图;
图2示出根据本公开另一实施方式的通信方法的流程图;
图3示出根据本公开又一实施方式的通信方法的流程图;
图4示出根据本公开又一实施方式的通信方法的流程图;
图5示出在根据本公开一实施方式的通信***的实现场景的示例性示意图;
图6示出根据本公开一实施方式的通信装置的结构框图;
图7示出根据本公开另一实施方式的通信装置的结构框图;
图8示出根据本公开一实施方式的通信方法的流程图;
图9示出根据本公开另一实施方式的通信方法的流程图;
图10示出根据本公开一实施方式的电子设备的结构框图;
图11是适于用来实现根据本公开一实施方式的通信方法的计算机***的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的标签、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他标签、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的标签可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
在多个节点之间执行业务处理时,跟随业务的需求变化,可以不断用加入TEE代码逻辑的方式来满足需求。这种情况下,TEE中代码特征不一致可能来自以下几种情况:多个节点背靠背构建利用TEE通信的通信组时因为源代码、编译器、编译器版本、构造参数等不同会导致编译出来的代码不一致。此外,还存在对于代码逻辑的故意或意外的篡改。例如,多个节点中的一方或多方在代码中刻意增加、编入恶意/不诚实逻辑导致代码不一致;或者多个节点中的一方或多方无意,但被其他人用攻击方式进行了代码逻辑篡改。因此,需要保持多个节点的TEE中代码的一致性,以及多个节点间相互信任彼此的操作,同时,在应对业务变化时降低代码审核的需求。
根据本公开实施例提供的技术方案,通过利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;通信组中的第一节点获取智能合约,将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密;通过第一节点的可信执行环境将经加密的智能合约发送到通信组中的至少一个第二节点的可信执行环境;通过至少一个第二节点的可信执行环境对经加密的智能合约进行解密,并且至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;通信组中的具有智能合约的节点检测智能合约是否满足预设条件;根据检测到智能合约满足预设条件,通信组中的具有智能合约的节点对智能合约签名,将经签名的智能合约装入通信组中的具有智能合约的节点各自的可信执行环境中以供调用,从而在保证业务执行的同时降低了审核代码的需求,利用可信执行环境执行的智能合约的传输和签名机制可以实现不同节点间操作的相互信任,提高操作安全性。
图1示出根据本公开一实施方式的通信方法的流程图。如图1所示,通信方法包括以下步骤S101、S102、S103、S104、S105和S106:
在步骤S101中,利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点。
在步骤S102中,通信组中的第一节点获取智能合约,将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密。
在步骤S103中,通过第一节点的可信执行环境将经加密的智能合约发送到通信组中的至少一个第二节点的可信执行环境。
在步骤S104中,通过至少一个第二节点的可信执行环境对经加密的智能合约进行解密,并且至少一个第二节点从自身的可信执行环境中读取经解密的智能合约。
在步骤S105中,通信组中的具有智能合约的节点检测智能合约是否满足预设条件。
在步骤S106中,根据检测到智能合约满足预设条件,通信组中的具有智能合约的节点对智能合约签名,将经签名的智能合约装入通信组中的具有智能合约的节点各自的可信执行环境中以供调用。
在互联网平台环境中,随着业务升级,采用TEE的节点的TEE中的代码需要随之升级。如果不同节点中部分升级并且部分不升级,或者不同节点采用不同的升级方式升级,则可能导致TEE中的代码的代码特征不一致。除了代码升级以外,还可能存在其他情况导致TEE中的代码的代码特征不一致。例如,多个节点背靠背构建建利用TEE通信的通信组时因为源代码、编译器、编译器版本、构造参数等不同会导致编译出来的代码不一致。例如,多个节点中的一方或多方在TEE中的代码中刻意增加、编入恶意/不诚实逻辑。例如,多个节点中的一方或多方无意,但被其他人用攻击方式对TEE中的代码进行了逻辑篡改。因此,需要保持多个节点的TEE中代码的一致性,以及多个节点间相互信任彼此的操作。
为了解决这个问题,在本公开的一个实施例中,多个具有可信执行环境(TEE)的节点组成通信组,通信组间传送经过加密的智能合约,从而实现节点间TEE中代码的一致性。在本公开的一个实施例中,由于通信组的组成方式类似于社会结构中的“联邦”,因此通信组可以被称为联邦。在本公开的一个实施例中,授权可以通过相关技术中的密码学手段来实现。例如,发送的内容全部由通信组中的组通信密钥加密,则通信组外的节点读到内容也不能破解。在本公开的一个实施例中,通信组内的节点也可以在与通信组内的特定节点通信时对通信组内的其他节点保密,例如,可以通过通信组内的通信双方临时协商出的密钥对传递的信息加密,那么通信组内其他节点因为没有密钥,所以也不能获取原始内容。在本公开的一个实施例中,一个节点可以存在于多个不同的通信组中,在不同的通信组中可以利用不同的组通信密钥进行通信。
在本公开的一个实施例中,可信执行环境可以用硬件保护,各个层级应用都无法访问可信执行环境,可用于对重要信息及运行时状态的保护。智能合约是两方或多方用密码学手段签署,并且按照达成共识的逻辑进行运行的一段代码,智能合约可以运行于TEE中。通信组是多个带有TEE的节点通过代码一致性约束组成的去中心化的组织。在形成该通信组的过程中,可以采用可信第三方提供的根信任进行节点TEE的认证。
在本公开的一个实施例中,通信组中的第一节点获取智能合约后,将智能合约装入自己的可信执行环境中,并在可信执行环境中对智能合约加密,再将加密后的智能合约传送到至少一个第二节点的可信执行环境。至少一个第二节点的可信执行环境对加密后的智能合约解密。第二节点从自己的可信执行环境中读取解密的智能合约后,检查智能合约是否满足预设条件。
在本公开的一个实施例中,通信组中的节点可以分布于不同地理位置。例如,同一公司的不同部门或者不同公司间的节点,可以通过智能合约执行业务,诸如检索不同节点中存储的数据库中的数据的差异,并且完善差异的部分。例如,预设条件可以设定为一次检索的条目数的阈值,诸如一千条数据。如果不同节点在可信执行环境中执行相同的智能合约,则第一节点通过智能合约向第二节点请求检索的数据条目数不超过一千条时,确定智能合约满足预设条件;如果第一节点通过智能合约向第二节点请求检索的数据条目数超过一千条,则确定智能合约不满足预设条件。当智能合约中一次检索的条目数不超过设定的阈值时,第二节点对智能合约签名,并且将签名的智能合约装载入可信执行环境,以进行调用,实现数据库的检索。
图2示出根据本公开另一实施方式的通信方法的流程图。如图2所示,本公开另一实施方式的通信方法除了包括和图1相同的步骤S101、S102、S103、S104、S105和S106之外,还包括:步骤S201、S202。
在步骤S201中,响应于通信组中的具有智能合约的节点对自身的可信执行环境中的经签名的智能合约的调用请求,发起调用请求的节点检测经签名的智能合约是否满足预设条件。
在步骤S202中,根据检测到经签名的智能合约满足预设条件,发起调用请求的节点的可信执行环境中的用于加载智能合约的加载模块加载并执行经签名的智能合约。
在本公开的一个实施例中,参照前述一个节点向另一节点请求检索的数据条目数具有预设阈值的示例,至少一个第二节点核对经签名的智能合约一次检索的条目数是否不超过设定的阈值。如果核对通过,第二节点加载智能合约并运行,以进行数据库检索。如果核对不通过,即一次检索的条目数超过了设定的阈值,则智能合约可能存在漏洞或异常,如果加载则可能破坏节点间查询操作的公平性,因此不进行智能合约的加载,从而实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过响应于通信组中的具有所述智能合约的节点对自身的可信执行环境中的经签名的智能合约的调用请求,发起调用请求的节点检测所述经签名的智能合约是否满足预设条件;根据检测到经签名的智能合约满足预设条件,发起调用请求的节点的可信执行环境中的用于加载智能合约的加载模块加载并执行经签名的智能合约,从而实现不同节点间操作的相互信任,提高操作安全性。
图3示出根据本公开又一实施方式的通信方法的流程图。如图2所示,本公开又一实施方式的通信方法除了包括和图2相同的步骤S101、S102、S103、S104、S105、S106、S201、S202之外,还包括步骤S301、S302。
在步骤S301中,响应于加载模块对经签名的智能合约的执行,对发起调用请求的节点的状态和/或数据进行访问。
在步骤S302中,响应于加载模块对经签名的智能合约的执行,对通信组中的具有经签名的智能合约的节点中调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问。
在步骤S301和S302中,可以选择任意一个执行,也可以全部执行。
在本公开的一个实施例中,响应于加载模块对经签名的智能合约的执行,至少一个第二节点在执行智能合约时,可以对本节点的数据库进行查询,访问其状态和/或数据;也可以通过调用本节点之外的其它节点的相同智能合约,对其它节点的数据库进行查询,访问其状态和/或数据;也可以同时对本节点和其它节点的数据库进行查询,以补足节点间的差异。通过对本地数据库的查询和对其它节点数据库的查询,可以精确得到检索的数据不存在于本地节点数据库,而存在于其它节点数据库的结论,并且可以利用其它节点的数据库对本地节点的数据库进行更新。通过这种方式,实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过响应于加载模块对经签名的智能合约的执行,对发起调用请求的节点的状态和/或数据进行访问;并且/或者响应于加载模块对经签名的智能合约的执行,对通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,从而实现不同节点间操作的相互信任,提高操作安全性。
在本公开的一个实施例中,在本地节点调用其它远端节点的TEE中的智能合约时,可以通过远端节点的相同智能合约的特定端口进行调用,从而避免非法调用的发生,实现不同节点间操作的相互信任,提高操作安全性。
根据本公开实施例提供的技术方案,通过响应于加载模块对经签名的智能合约的执行,对通信组中的具有经签名的智能合约的节点中调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,包括:响应于加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中调用请求涉及的除发起调用请求的节点以外的节点的可信执行环境中装入的经签名的智能合约的特定接口进行调用,从而实现不同节点间操作的相互信任,提高操作安全性。
图4示出根据本公开又一实施方式的通信方法的流程图。如图4所示,本公开又一实施方式的通信方法除了包括和图1相同的步骤S101、S102、S103、S104、S105和S106之外,还包括:步骤S401、S402。
在步骤S401中,响应于加载模块对经签名的智能合约的执行,对在发起调用请求的节点的可信执行环境中对经签名的智能合约的执行结果进行汇总,并且输出汇总的执行结果。
在步骤S402中,响应于加载模块对经签名的智能合约的执行,调用除通信组中的具有经签名的智能合约的节点中调用请求涉及的节点以外的节点,执行与对智能合约的调用请求对应的业务。
在步骤S401和S402中,可以选择任意一个执行。
在本公开的一个实施例中,响应于加载模块对经签名的智能合约的执行,发起调用请求的节点的可信执行环境对智能合约对数据库进行多次查询的结果进行汇总,并输出汇总的结果。
在本公开的一个实施例中,响应于加载模块对经签名的智能合约的执行,如果本地节点确认由调用请求涉及的其它节点查询数据库可能存在诸如不安全或导致数据泄露等问题,也可以选择可信的第三方对数据库进行查询工作,并对基于查询结果更新本地数据库,并且根据查询结果的汇总,如查询出的不同数据集的数量,向第三方支付相应的报酬。
根据本公开实施例提供的技术方案,通过响应于加载模块对经签名的智能合约的执行,对在发起调用请求的节点的可信执行环境中对经签名的智能合约的执行结果进行汇总,并且输出汇总的执行结果,或者响应于加载模块对经签名的智能合约的执行,调用除通信组中的具有经签名的智能合约的节点中调用请求涉及的节点以外的节点,执行与对智能合约的调用请求对应的业务,从而实现不同节点间操作的相互信任,提高操作安全性。
在本公开的一个实施例中,第一节点获取智能合约后,需要经过授权才能将智能合约装入第一节点的可信执行环境,并在第一节点的可信执行环境中对智能合约加密。在本公开的一个实施例中,授权可以通过相关技术中的密码学手段来实现。在本公开的一个实施例中,智能合约全部由通信组的组通信密钥加密,则通信组外的人读到内容也不能破解。在本公开的一个实施例中,通信组内的节点也可以在与通信组内的特定节点通信时对通信组内的其他节点保密,例如,可以通过通信组内的通信双方临时协商出的密钥对传递的信息加密,那么通信组内其他节点因为没有密钥,所以也不能获取原始内容。在本公开的一个实施例中,一个节点可以存在于多个不同的通信组中,在不同的通信组中可以利用不同的组通信密钥进行通信。
在本公开的一个实施例中,步骤S102包括:通信组中的第一节点获取智能合约,经授权将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密。
根据本公开实施例提供的技术方案,通过通信组中的第一节点获取智能合约,将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密,包括:通信组中的第一节点获取智能合约,经授权将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
在本公开的一个实施例中,可以通过预设的确定方法,例如Diffie-Hellman算法等密码学方法在可信执行环境中进行密码协商以协商/创建密钥。因此,协商/创建完成密钥的多个安装可信执行环境的节点可以建立加密通信组(联邦)。在通信组中,节点之间可以利用可信执行环境以一对一的利用密钥加密通信的方式避免通信受到安全攻击或泄密,从而提高通信信息传递的安全性,防止泄密。在本公开的实施例中,也可以使用其它密码学方法协商/创建密钥以使节点组成加密通信组。
根据本公开实施例提供的技术方案,通过利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:根据预设确定方法确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,从而在保证业务执行的同时降低了审核代码的需求,防止泄密。
在本公开的一个实施例中,在协商/创建完成密钥的多个安装可信执行环境的节点建立加密通信组之前,需要确定可信执行环境中的代码特征是否一致。在多个节点的可信执行环境中执行的代码的代码特征一致时,可以保证各个节点的逻辑一致,并且可以加入通信组。同时,这使得节点拥有方不必以自行对各个节点的代码审查作为加入通信组的先决条件。而且,由于各节点的编译后代码完全一样(这样才使得代码特征一致)且有本地备份,因此在发生数据泄密情况下,每个参与方可以分工合作对代码进行针对性审查,从而发现实现中的代码泄密点,也就可以有效制约代码开发方的恶意行为。在这一制约下,代码开发方会倾向于提供诚实可靠的代码。代码特征可以是编译后的代码的类指纹信息,例如代码二进制的加密学摘要,也可以是代码的其它特征。
根据本公开实施例提供的技术方案,通过根据预设确定方法确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;根据确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征一致,允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,从而保证通信组中节点的可信执行环境的安全性,防止泄密。
在本公开的一个实施例中,可以通过多个节点外的特定装置来确定多个节点的可信执行环境中的代码特征是否一致,避免使用安装有可信执行环境的节点判断代码特征是否一致导致的不公平,以及节点被攻破后导致的泄密发生,从而保证通信组中节点的可信执行环境的安全性,防止泄密。在多个节点中,可以采用硬件保护的方式,例如基于芯片实现的技术的根信任对可信执行环境的代码进行度量从而生成代码特征,而该代码特征从节点传送到节点外的特定装置可以通过可信传输通道实现,例如使用远程证明的方式传送到节点外的特定设备。多个安装有可信执行环境的节点接收特定装置发出的确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致的确定结果。在本公开的实施例中,前述硬件保护方式和可信传输通道也可以用其它方式实现,本公开对此不作赘述。在使用基于芯片实现的技术进行密钥协商以建立通信组时,多个节点都需要使用远程证明的方式来证明对方的节点运行在基于芯片实现的可信执行环境下,而且在可信执行环境中执行的代码的代码特征一致。一旦远程证明完成,节点间的信息交换就都可以绕开根信任来进行。本申请的技术方案仅需要在通信组建立时对根信任进行相互鉴别,而不是次次鉴别,大幅减少了根信任的使用次数,有效降低了根信任被破解的可能性,从而避免了通过伪造可信执行环境的方式来窃取更多机密的攻击场景。
根据本公开实施例提供的技术方案,通过确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致,包括:在所述多个安装有可信执行环境的节点以外的特定装置确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;所述多个安装有可信执行环境的节点接收所述特定装置发出的确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致的确定结果,从而保证通信组中节点的可信执行环境的安全性,防止泄密。
在本公开的一个实施例中,在例如批量交换信息,或者例如文件共享场景的共享文件内容时,通信组内多个节点的可信执行环境可以使用密码协商的方法,例如Diffie-Hellman算法,由通信组的第一个节点,用随机算法产生熵值足够的密钥,并共享给通信组内的其它节点,作为通信组内的组通信密钥。通信组内的节点通过可信执行环境共享的内容全部由通信组内的组通信密钥加密,组通信密钥仅在通信组内的节点间共享,通信组外的节点即使读到加密后的内容,由于没有组通信密钥,因此也无法破解。组通信密钥也可以由其它密码算法产生,或者由通信组内的其它任意一个节点生成。这种加密方法对通信组内的部分节点也成立。例如,通信组内的若干节点可以通过双方临时协商出的会话密钥加密,那么通信组内其他节点因为没有会话密钥,所以也不能获取原始内容。即,具有临时协商出的会话密钥的节点构成了一个临时通信组。在本公开的实施例中,一个具有可信执行环境的节点可以存在于多个通信组中,各个通信组具有不同的组通信密钥。
根据本公开实施例提供的技术方案,通过利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:多个节点根据预设协商方法在所述多个节点的可信执行环境中协商用于所述通信组中全部或部分节点之间的加密通信的组通信密钥,从而保证通信组中节点间通信的安全性,防止泄密。
在本公开的一个实施例中,通信组内的节点可以协商出对称式密钥,加密和解密均由相同的对称式密钥完成,和非对称式密钥相比,加、解密过程更加快速高效,而且由于对称式密钥仅在通信组内的全部或者部分节点的可信执行环境中使用,也具有较好的安全性,从而保证通信组中节点间通信的安全性,防止泄密。
根据本公开实施例提供的技术方案,通过组通信密钥是对称式密钥,从而保证通信组中节点间通信的安全性,防止泄密。
在本公开的一个实施例中,通信组中的第一节点获取智能合约,经授权将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密,包括:根据第一鉴权方法对第一节点进行鉴权;根据对第一节点的鉴权结果满足第一预设条件对第一节点授权将待发送到第二节点的第一信息传送到第一节点的可信执行环境中。
在本公开的一个实施例中,根据第一鉴权方法对第一节点进行鉴权可以指的是,使用特定的鉴权方式,例如签名的方式对发送智能合约的第一节点进行鉴权。而在鉴权中可以设定不同等级的权限。当对第一节点的鉴权结果满足第一预设条件,即满足权限等级时,授权第一节点将需要发送的智能合约传送到第一节点的可信执行环境中。鉴权也可以通过签名之外的其它方式完成。通过对第一节点的鉴权,保证了加密传输的可靠性,防止泄密。
根据本公开实施例提供的技术方案,通过通信组中的第一节点获取智能合约,经授权将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密,包括:根据第一鉴权方法对第一节点进行鉴权;根据对第一节点的鉴权结果满足第一预设条件对第一节点授权将智能合约装入第一节点的可信执行环境中,从而保证在节点内部传输的可靠性,防止泄密。
在本公开的一个实施例中,根据对第一节点的鉴权结果满足第一预设条件对第一节点授权将智能合约装入第一节点的可信执行环境中,包括:根据对第一节点的鉴权结果满足第一预设条件,第一节点利用第一私钥对智能合约进行加密并装入第一节点的可信执行环境中。在本公开的该实施例中,第一节点可以用自己的私钥对欲发送到第二节点的智能合约进行加密,并传送到第一节点的可信执行环境中。第一节点的私钥由第一节点本地保存,不被传送给其它节点,从而保证加密传输的可靠,防止泄密。
根据本公开实施例提供的技术方案,通过根据对第一节点的鉴权结果满足第一预设条件对第一节点授权将智能合约装入第一节点的可信执行环境中,包括:根据对第一节点的鉴权结果满足第一预设条件,第一节点利用第一私钥对智能合约进行加密并装入第一节点的可信执行环境中,从而保证在节点内部将智能合约传递到可信执行环境时的安全性,防止泄密。
在本公开的一个实施例中,通信组中的第一节点获取智能合约,经授权将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密,包括:在第一节点的可信执行环境中利用与第一私钥对应的第一公钥对经第一私钥加密的智能合约进行解密;在第一节点的可信执行环境中利用组通信密钥对解密得到的智能合约进行加密。在本公开的该实施例中,作为鉴权过程的一部分,第一节点的可信执行环境中使用与第一私钥相对应的第一公钥,对第一私钥加密后的智能合约进行解密,保证传输到可信执行环境中的智能合约安全可靠。而第一节点的组通信密钥再对解密后的智能合约进行加密,从而保证通信组中节点间通信的安全性,防止泄密。第一私钥加密、第一公钥解密是和组通信密钥无关的操作,保证了智能合约从可信执行环境外部到达可信执行环境这一过程的可靠性。而组通信密钥则保证了节点间传输的安全可靠。两者相结合,进一步保证了加密传输的可靠,防止泄密。除了非对称的第一私钥、第一公钥的加密解密方式之外,还可以采用其它密钥的方式对第一信息进行加、解密。本领域技术人员可以理解,可以采用相关技术中的各种鉴权手段保证智能合约从可信执行环境外部到达可信执行环境这一过程的可靠性,本公开对此不作赘述。
根据本公开实施例提供的技术方案,通过通信组中的第一节点获取智能合约,经授权将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密,包括:在第一节点的可信执行环境中利用与第一私钥对应的第一公钥对经第一私钥加密的智能合约进行解密;在第一节点的可信执行环境中利用组通信密钥对解密得到的智能合约进行加密,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
在本公开的一个实施例中,通过至少一个第二节点的可信执行环境对经加密的智能合约进行解密,并且至少一个第二节点从自身的可信执行环境中读取经解密的智能合约,包括:在至少一个第二节点自身的可信执行环境中利用组通信密钥对经加密的智能合约进行解密;根据第二鉴权方法对至少一个第二节点进行鉴权;根据对至少一个第二节点的鉴权结果满足第二预设条件对至少一个第二节点授权从其自身的可信执行环境中读取智能合约。至少一个第二节点的可信执行环境使用组通信密钥对加密后的智能合约解密后,还要用第二鉴权方法对第二节点进行鉴权。第二鉴权方法可以是验证签名的方法,或者是其它鉴权方法,各不同节点可以有各自的鉴权方法。当第二节点的鉴权结果满足第二预设条件,例如高于特定的权限等级时,授权第二节点从第二节点的可信执行环境中读取智能合约,从而防止没有读取权限的第二节点非法读取智能合约,保证加密传输的可靠,防止泄密。不同节点也可以采用不同的第二预设条件,例如特定的权项等级。本领域技术人员可以理解,可以采用相关技术中的各种鉴权手段保证智能合约从可信执行环境到达可信执行环境外部这一过程的可靠性,本公开对此不作赘述。
根据本公开实施例提供的技术方案,通过至少一个第二节点的可信执行环境对经加密的智能合约进行解密,并且至少一个第二节点从自身的可信执行环境中读取经解密的智能合约,包括:在至少一个第二节点自身的可信执行环境中利用组通信密钥对经加密的智能合约进行解密;根据第二鉴权方法对至少一个第二节点进行鉴权;根据对至少一个第二节点的鉴权结果满足第二预设条件对至少一个第二节点授权从其自身的可信执行环境中读取智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的加密传输的可靠性,防止泄密。
在本公开的一个实施例中,根据对至少一个第二节点的鉴权结果满足第二预设条件对至少一个第二节点授权从其自身的可信执行环境中读取智能合约,包括:根据对至少一个第二节点的鉴权结果满足第二预设条件,在至少一个第二节点的可信执行环境中利用第二私钥对智能合约进行加密并传送到第二节点;第二节点利用与第二私钥对应的第二公钥对经第二私钥加密的智能合约进行解密以获取智能合约。例如,在第二节点的鉴权结果高于特定的权限等级,第二节点获得读取智能合约的授权之后,第二节点的可信执行环境使用自己的第二私钥对智能合约加密并传送到第二节点,第二节点采用与第二私钥相对应的第二公钥对加密后的智能合约解密,从而获得原始的智能合约。通过第二私钥加密、第二公钥解密的过程,保证了智能合约从第二节点的可信执行环境传送到第二节点的可靠性,保证加密传输的可靠,防止泄密。除了非对称的第二私钥、第二公钥之外,还可以采用其它密钥的方式对智能合约进行加、解密。
根据本公开实施例提供的技术方案,通过根据对至少一个第二节点的鉴权结果满足第二预设条件对至少一个第二节点授权从其自身的可信执行环境中读取智能合约,包括:根据对至少一个第二节点的鉴权结果满足第二预设条件,在至少一个第二节点的可信执行环境中利用第二私钥对智能合约进行加密并传送到第二节点;第二节点利用与第二私钥对应的第二公钥对经第二私钥加密的智能合约进行解密以获取智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的加密传输的可靠性,防止泄密。
在本公开的一个实施例中,还可以处理可信执行环境中通信组内加密通信的日志信息。首先通信组内的节点在可信执行环境中生成加密通信的日志信息,通信组内的节点在可信执行环境中基于通信组内的组通信密钥生成第三私钥,并用第三私钥对日志进行签名,最后在通信组的节点间利用可信执行环境传送经过第三私钥签名的日志。通信组内节点可以用通信组内的组通信密钥做简单密钥派生即可生成第三私钥用于签名,同时其他节点也可以验证。而通信组外节点无此通信组内的组通信密钥,因此无法模仿出签名,也就很容易被通信组节点发现日志是伪造的。由于日志由各节点自身的第三私钥签名,保证了日志传输的安全可靠,也在泄密后可以由第三私钥找到泄密位置,从而实现精准追责。
根据本公开实施例提供的技术方案,通过由通信组中的节点在可信执行环境中针对组通信生成日志;所述通信组中的节点的可信执行环境中基于组密钥生成第三私钥;在所述通信组中的节点的可信执行环境中利用第三私钥对日志进行签名;在通信组中的节点之间利用可信执行环境传送经第三私钥签名的日志,从而避免日志被伪造,并实现泄密后的精准追责。
在本公开的一个实施例中,可以利用通信***实现前述通信方法中的方案。通信***包括:多个安装有可信执行环境的节点,其中,利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;其中,通信组中的第一节点获取智能合约,将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密;其中,通过第一节点的可信执行环境将经加密的智能合约发送到通信组中的至少一个第二节点的可信执行环境;其中,通过至少一个第二节点的可信执行环境对经加密的智能合约进行解密,并且至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;其中,通信组中的具有智能合约的节点检测智能合约是否满足预设条件;其中,根据检测到智能合约满足预设条件,通信组中的具有智能合约的节点对智能合约签名,将经签名的智能合约装入通信组中的具有智能合约的节点各自的可信执行环境中以供调用。
以下参照图5描述本公开实施例中的通信***的示例。图5示出在根据本公开一实施方式的通信***的实现场景的示例性示意图。本领域技术人员可以理解,图5示出通信***的示例性实现场景,而不构成对本公开的限定。
在图5中,通信***500包括:第一节点510和第二节点520。第一节点510中包括智能合约调度器511,用于装载、卸载和加载WASM(WebAssembly)虚拟机512中的智能合约513。智能合约调度器511装载、卸载和加载智能合约513时,可以使用智能合约仓库514、文件型存储模块515和结构化存储模块516。智能合约调度器511获取授权后,可以将智能合约513传送到利用可信执行环境实现的联邦加密通信模块517。联邦加密通信模块517中采用组通信密钥加密智能合约513后,将加密后的智能合约传送至第二节点520中的利用可信执行环境实现的联邦加密通信模块522。联邦加密通信模块522对加密后的智能合约解密,第二节点520中的智能合约调度器521获取授权后,从联邦加密通信模块522读取解密后的智能合约,并进行加载、调用。在本公开的实施例中,智能合约调度器511在可信执行环境中实现以保证执行智能合约时的安全性。
在本公开的一个实施例中,通信组(联邦)中的第一节点获取智能合约后,将智能合约装入自己的可信执行环境中,并在可信执行环境中对智能合约加密,再将加密后的智能合约传送到至少一个第二节点的可信执行环境。至少一个第二节点的可信执行环境对加密后的智能合约解密。第二节点从自己的可信执行环境中读取解密的智能合约后,检查智能合约是否满足预设条件。
在本公开的一个实施例中,分布于不同地理位置,例如同一公司的不同部门或者不同公司间的节点,可以通过智能合约检索不同节点中存储的数据库的差异,并且补足差异的部分。而预设条件可以设定为一次检索的条目数的阈值。当一次检索的条目数不超过设定的阈值时,第二节点对智能合约签名。经核对无误,第二节点将智能合约装载入可信执行环境,以进行调用,实现数据库的检索。
根据本公开实施例提供的技术方案,通过多个安装有可信执行环境的节点,其中,利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;其中,通信组中的第一节点获取智能合约,将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密;其中,通过第一节点的可信执行环境将经加密的智能合约发送到通信组中的至少一个第二节点的可信执行环境;其中,通过至少一个第二节点的可信执行环境对经加密的智能合约进行解密,并且至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;其中,通信组中的具有智能合约的节点检测智能合约是否满足预设条件;其中,根据检测到智能合约满足预设条件,通信组中的具有智能合约的节点对智能合约签名,将经签名的智能合约装入通信组中的具有智能合约的节点各自的可信执行环境中以供调用,从而在保证业务执行的同时降低了审核代码的需求,利用可信执行环境执行的智能合约的传输和签名机制可以实现不同节点间操作的相互信任,提高操作安全性。
在本公开的一个实施例中,发起调用请求的节点的可信执行环境加载智能合约,并执行经签名的智能合约,对数据库进行检索。
根据本公开实施例提供的技术方案,通过响应于通信组中的具有智能合约的节点对自身的可信执行环境中的经签名的智能合约的调用请求,发起调用请求的节点检测经签名的智能合约是否满足预设条件;其中,根据检测到经签名的智能合约满足预设条件,发起调用请求的节点的可信执行环境中的用于加载智能合约的加载模块加载并执行经签名的智能合约,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
在本公开的一个实施例中,响应于加载模块对经签名的智能合约的执行,可以是发起调用请求的节点的智能合约对数据库进行检索,也可以是发起调用请求的节点之外的节点的智能合约对数据库进行检索,也可以是上述两种节点的智能合约同时对数据库进行检索。
根据本公开实施例提供的技术方案,通过响应于加载模块对经签名的智能合约的执行,对发起调用请求的节点的状态和/或数据进行访问;并且/或者其中,响应于加载模块对经签名的智能合约的执行,对通信组中的具有经签名的智能合约的节点中调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
在本公开的一个实施例中,当发起调用请求的节点之外的节点的智能合约对数据库进行检索时,可以通过发起调用请求的节点之外的节点的智能合约的特定接口进行调用,从而避免非法调用,保证安全性。
根据本公开实施例提供的技术方案,通过响应于所述加载模块对经签名的智能合约的执行,对通信组中的具有经签名的智能合约的节点中调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,包括:响应于加载模块对经签名的智能合约的执行,对通信组中的具有经签名的智能合约的节点中调用请求涉及的除发起调用请求的节点以外的节点的可信执行环境中装入的经签名的智能合约的特定接口进行调用,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
在本公开的一个实施例中,可以对智能合约的查询结果进行汇总,或者采用其它第三方节点的智能合约进行查询。
根据本公开实施例提供的技术方案,通过响应于加载模块对经签名的智能合约的执行,对在发起调用请求的节点的可信执行环境中对经签名的智能合约的执行结果进行汇总,并且输出汇总的执行结果,或者响应于加载模块对经签名的智能合约的执行,调用除通信组中的具有经签名的智能合约的节点中调用请求涉及的节点以外的节点,执行与对智能合约的调用请求对应的业务,从而保证智能合约在可信执行环境中的运行安全性,防止泄密。
在本公开的一个实施例中,通信组中的第一节点可以获得授权,再将智能合约装入可信执行环境进行加密。
根据本公开实施例提供的技术方案,通过通信组中的第一节点获取智能合约,将智能合约装入所述第一节点的可信执行环境中,并且在第一节点的可信执行环境中对所述智能合约加密,包括:通信组中的第一节点获取智能合约,经授权将智能合约装入所述第一节点的可信执行环境中,并且在第一节点的可信执行环境中对智能合约加密,从而保证智能合约在可信执行环境中的运行安全性,保证节点间加密传输的可靠性,防止泄密。
在本公开的一个实施例中,可以通过预设确定***确定允许多个节点利用可信执行环境生成加密通信组。
根据本公开实施例提供的技术方案,通过利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:根据预设确定***确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,从而保证通信组中节点间通信的可靠性,防止泄密。
在本公开的一个实施例中,可以基于确定节点的可信执行环境中的代码特征一致,允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组。
根据本公开实施例提供的技术方案,通过根据预设确定***确定允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;根据确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征一致,允许利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,从而保证智能合约在可信执行环境中的运行安全性,保证节点间加密传输的可靠性,防止泄密。
在本公开的一个实施例中,可以使用通信组的节点之外的特定装置确定通信组节点的可信执行环境中执行的代码的代码特征是否一致。
根据本公开实施例提供的技术方案,通过确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致,包括:在所述多个安装有可信执行环境的节点以外的特定装置确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致;多个安装有可信执行环境的节点接收特定装置发出的确定多个安装有可信执行环境的节点在可信执行环境中执行的代码的代码特征是否一致的确定结果,从而保证智能合约在可信执行环境中的运行安全性,保证节点间加密传输的可靠性,防止泄密。
在本公开的一个实施例中,多个节点可以根据预设协***协商全部或部分节点间加密通信的组通信密钥。
根据本公开实施例提供的技术方案,通过利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,包括:多个节点根据预设协商***在多个节点的可信执行环境中协商用于所述通信组中全部或部分节点之间的加密通信的组通信密钥,从而保证通信组中节点间通信的安全性,防止泄密。
在本公开的一个实施例中,组通信密钥可以是对称式密钥。
根据本公开实施例提供的技术方案,通过组通信密钥是对称式密钥,从而保证通信组中节点间通信的安全性,防止泄密。
在本公开的一个实施例中,可以通过第一鉴权***对第一节点进行鉴权,再根据鉴权结果满足第一预设条件,授权第一节点将智能合约装入可信执行环境。
根据本公开实施例提供的技术方案,通过通信组中的第一节点获取智能合约,经授权将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对所述智能合约加密,包括:根据第一鉴权***对所述第一节点进行鉴权;根据对第一节点的鉴权结果满足第一预设条件对所述第一节点授权将所述智能合约装入所述第一节点的可信执行环境中,从而保证在节点内部传输的可靠性,防止泄密。
在本公开的一个实施例中,根据鉴权结果,第一节点可以用第一私钥对智能合约加密,并装入可信执行环境。
根据本公开实施例提供的技术方案,通过根据对第一节点的鉴权结果满足第一预设条件对第一节点授权将智能合约装入第一节点的可信执行环境中,包括:根据对第一节点的鉴权结果满足第一预设条件,第一节点利用第一私钥对智能合约进行加密并装入第一节点的可信执行环境中,从而保证在节点内部传输的可靠性,防止泄密。
在本公开的一个实施例中,第一节点的可信执行环境利用第一私钥对应的第一公钥对第一节点传送的加密后的智能合约解密,并使用组通信密钥加密。
根据本公开实施例提供的技术方案,通过通信组中的第一节点获取智能合约,经授权将智能合约装入第一节点的可信执行环境中,并且在第一节点的可信执行环境中对所述智能合约加密,包括:在第一节点的可信执行环境中利用与第一私钥对应的第一公钥对经第一私钥加密的智能合约进行解密;在第一节点的可信执行环境中利用组通信密钥对解密得到的智能合约进行加密,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
在本公开的一个实施例中,第二节点的第二鉴权***对第二节点进行鉴权,并根据鉴权结果满足第二预设条件,从可信执行环境中读取智能合约。
根据本公开实施例提供的技术方案,通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约,包括:在所述至少一个第二节点自身的可信执行环境中利用所述组通信密钥对所述经加密的智能合约进行解密;根据第二鉴权***对所述至少一个第二节点进行鉴权;根据对所述至少一个第二节点的鉴权结果满足第二预设条件对所述至少一个第二节点授权从其自身的可信执行环境中读取所述智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
在本公开的一个实施例中,第二节点的可信执行环境用第二私钥对智能合约加密,第二节点用与第二私钥对应的第二公钥对加密后的智能合约解密。
根据本公开实施例提供的技术方案,通过根据对至少一个第二节点的鉴权结果满足第二预设条件对至少一个第二节点授权从其自身的可信执行环境中读取智能合约,包括:根据对至少一个第二节点的鉴权结果满足第二预设条件,在至少一个第二节点的可信执行环境中利用第二私钥对所述智能合约进行加密并传送到第二节点;第二节点利用与第二私钥对应的第二公钥对经第二私钥加密的智能合约进行解密以获取所述智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
在本公开的一个实施例中,通信组节点的可信执行环境可以使用基于组通信密钥生成的第三私钥,对日志进行签名,并在节点间利于可信执行环境传送经第三私钥签名的日志。
根据本公开实施例提供的技术方案,通过由通信组中的节点在可信执行环境中针对组通信生成日志;通信组中的节点的可信执行环境中基于组密钥生成第三私钥;在所述通信组中的节点的可信执行环境中利用第三私钥对日志进行签名;在通信组中的节点之间利用可信执行环境传送所述经第三私钥签名的日志,从而避免日志被伪造,并实现泄密后的精准追责。
本领域技术人员可以理解,参照图5描述的技术方案的可以与参照图1至4描述的实施例结合,从而具备参照图1至4描述的实施例所实现的技术效果。具体内容可以参照以上根据图1至4进行的描述,其具体内容在此不再赘述。
图6示出根据本公开一实施方式的通信装置的结构框图。如图6所示,通信装置600包括:发送模块601和可信执行环境602。
在利用包括通信装置600在内的多个通信装置生成的利用可信执行环境进行加密通信的通信组中,通信装置600与第二通信装置(未示出)利用可信执行环境602进行通信且不经过第三方通信装置。通信装置600获取第一智能合约,通过发送模块601将所述第一智能合约发送到通信装置600的可信执行环境602中。可信执行环境602被配置为:对第一智能合约加密并且将经加密的第一智能合约发送到所述第二通信装置的可信执行环境。通信装置600中的可信执行环境602将加密后的第一智能合约发送至第二通信装置(图中未示出)的可信执行环境,加密后的第一智能合约在通信过程中不经过第三方通信装置,从而保证了加密通信的安全性。
根据本公开实施例提供的技术方案,通过发送模块和可信执行环境,其中,在利用多个通信装置生成的利用可信执行环境进行加密通信的通信组中,通信装置与第二通信装置利用可信执行环境进行通信且不经过第三方通信装置,其中,通信装置获取第一智能合约,通过发送模块将所述第一智能合约发送到通信装置的可信执行环境中,其中,可信执行环境被配置为:对第一智能合约加密,并且将经加密的第一智能合约发送到第二通信装置的可信执行环境,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
在本公开的一个实施例中,通信装置还包括读取模块。可信执行环境被配置为接收第二通信装置通过可信执行环境发送的经加密的第二智能合约,并且对经加密的第二智能合约进行解密,其中,读取模块从可信执行环境中读取经解密的第二智能合约。
根据本公开实施例提供的技术方案,通过读取模块,其中,可信执行环境被配置为接收第二通信装置通过可信执行环境发送的经加密的第二智能合约,并且对经加密的第二智能合约进行解密,其中,读取模块从可信执行环境中读取经解密的第二智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
图7示出根据本公开另一实施方式的通信装置的结构框图。如图7所示,本公开另一实施方式的通信装置700除了包括和图6中相同的发送模块601、可信执行环境602之外,还包括:读取模块701、加载模块702。
可信执行环境602被配置为接收第二通信装置通过可信执行环境发送的经加密的第二智能合约,并且对经加密的第二智能合约进行解密,其中,读取模块701从可信执行环境中读取经解密的第二智能合约。加载模块702被配置为加载并执行经签名的第一智能合约或经签名的第二智能合约。
在本公开的一个实施例中,可信执行环境602接收到第二通信装置(图中未示出)利用可信执行环境发送的经加密的第二智能合约后,进行解密。通信装置700经授权通过读取模块701从可信执行环境602中读取经解密的第二智能合约。第二智能合约不经过其它第三方通信装置,从而保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过加载模块,被配置为加载并执行经签名的第一智能合约或经签名的第二智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
本领域技术人员可以理解,参照图6和7描述的技术方案的可以与参照图1至5描述的实施例结合,从而具备参照图1至5描述的实施例所实现的技术效果。具体内容可以参照以上根据图1至5进行的描述,其具体内容在此不再赘述。
图8示出根据本公开一实施方式的通信方法的流程图。如图8所示,通信方法包括:步骤S801、S802、S803。该方法由包括发送模块和可信执行环境的通信装置执行。
在步骤S801中,通信装置获取第一智能合约,通过发送模块将所述第一智能合约发送到通信装置的可信执行环境中。
在步骤S802中,在可信执行环境中对第一智能合约加密。
在步骤S803中,利用可信执行环境将经加密的第一智能合约发送到第二通信装置的可信执行环境。
在本公开的一个实施例中,通信组中的任意两个通信装置利用可信执行环境进行加密通信。通信装置获取第一智能合约,发送到可信执行环境进行加密,可信执行环境将加密后的第一智能合约发送到第二通信装置的可信执行环境。
根据本公开实施例提供的技术方案,通过由包括发送模块和可信执行环境的通信装置执行,其中,利用多个安装有可信执行环境的通信装置生成利用可信执行环境进行加密通信的通信组,其中,通信组中的任意两个通信装置利用可信执行环境进行通信且不经过第三方通信装置,其中,方法包括:所述通信装置获取第一智能合约,通过发送模块将所述第一智能合约发送到通信装置的可信执行环境中;在可信执行环境中对第一智能合约加密;利用可信执行环境将经加密的第一智能合约发送到第二通信装置的可信执行环境,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
图9示出根据本公开另一实施方式的通信方法的流程图。如图9所示,另一实施方式的通信方法除了包括和图8相同的步骤S801、S802、S803之外,还包括步骤S901、S902、S903。
在步骤S901中,接收第二通信装置利用可信执行环境发送的经加密的第二智能合约。
在步骤S902中,通过可信执行环境对经加密的第二智能合约进行解密。
在步骤S903中,对通信装置授权以从可信执行环境中读取经解密的第二智能合约。
步骤S901、S902、S903除了可以如图9所示,在步骤S801、S802、S803之后执行,还可以将步骤S901、S902、S903置于步骤S801、S802、S803之前执行,或者将步骤S901、S902、S903与步骤S801、S802、S803并列执行。
根据本公开实施例提供的技术方案,通过接收所述第二通信装置利用所述可信执行环境发送的经加密的第二智能合约;通过所述可信执行环境对所述经加密的第二智能合约进行解密;对所述通信装置授权以从所述可信执行环境中读取经解密的第二智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
在本公开的一个实施例中,通信方法还包括:加载并执行经签名的第一智能合约或经签名的第二智能合约。通信装置可以加载并执行自身的经签名的第一智能合约,也可以加载并执行第二通信装置经可信执行环境传送过来的经签名的第二智能合约。通过这种方式,保证节点间智能合约的一致性,保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
根据本公开实施例提供的技术方案,通过加载并执行经签名的第一智能合约或经签名的第二智能合约,从而保证智能合约在可信执行环境中的运行安全性,保证节点间的通信安全性,防止泄密。
本领域技术人员可以理解,参照图8和9描述的技术方案的可以与参照图1至7描述的实施例结合,从而具备参照图1至7描述的实施例所实现的技术效果。具体内容可以参照以上根据图1至7进行的描述,其具体内容在此不再赘述。
前述实施例描述了通信装置的内部功能和结构,在一个可能的设计中,通信装置的结构可实现为电子设备,如图10中所示,该电子设备1000可以包括处理器1001以及存储器1002。
存储器1002用于存储处理器执行上述任一实施例中的通信装置的程序,所述处理器1001被配置为用于执行所述存储器1002中存储的程序。
该电子设备1000可以包括可信执行环境的通信装置,用多个安装有可信执行环境的通信装置生成利用可信执行环境进行加密通信的通信组,其中,通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点。
在本公开的一个实施例中,所述存储器1002用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1001执行以实现以下步骤:
所述通信装置获取第一智能合约,通过所述发送模块将所述第一智能合约发送到所述通信装置的可信执行环境中;
在可信执行环境中对所述第一智能合约加密;
利用所述可信执行环境将经加密的第一智能合约发送到所述第二通信装置的可信执行环境。
在本公开的一个实施例中,所述一条或多条计算机指令还被所述处理器1001执行以实现以下步骤:
接收所述第二通信装置利用所述可信执行环境发送的经加密的第二智能合约;
通过所述可信执行环境对所述经加密的第二智能合约进行解密;
对所述通信装置授权以从所述可信执行环境中读取经解密的第二智能合约。
在本公开的一个实施例中,所述一条或多条计算机指令还被所述处理器1001执行以实现以下步骤:
加载并执行经签名的第一智能合约或经签名的第二智能合约。
图11是适于用来实现根据本公开一实施方式的通信方法的计算机***的结构示意图。
如图11所示,计算机***1100包括处理单元1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行上述附图所示的实施方式中的各种处理。在RAM1103中,还存储有***1100操作所需的各种程序和数据。处理单元1101、ROM1102以及RAM1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。其中,所述处理单元1101可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施方式,上文参考附图描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行附图中的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。
上述产品可执行本公开实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本公开实施方式所提供的方法。
附图中的流程图和框图,图示了按照本公开各种实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开实施例中的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种通信方法,其特征在于,包括:
利用多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;
所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密;
通过所述第一节点的可信执行环境将经加密的智能合约发送到所述通信组中的至少一个第二节点的可信执行环境;
通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;
所述通信组中的具有所述智能合约的节点检测所述智能合约是否满足预设条件;
根据检测到所述智能合约满足预设条件,所述通信组中的具有所述智能合约的节点对所述智能合约签名,将经签名的智能合约装入所述通信组中的具有所述智能合约的节点各自的可信执行环境中以供调用。
2.根据权利要求1所述的方法,其特征在于,还包括:
响应于所述通信组中的具有所述智能合约的节点对自身的可信执行环境中的经签名的智能合约的调用请求,所述发起调用请求的节点检测所述经签名的智能合约是否满足所述预设条件;
根据检测到经签名的智能合约满足所述预设条件,所述发起调用请求的节点的可信执行环境中的用于加载智能合约的加载模块加载并执行经签名的智能合约。
3.根据权利要求2所述的方法,其特征在于,还包括:
响应于所述加载模块对经签名的智能合约的执行,对发起调用请求的节点的状态和/或数据进行访问;并且/或者
响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问。
4.根据权利要求3所述的方法,其特征在于,所述响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的状态和/或数据进行访问,包括:
响应于所述加载模块对经签名的智能合约的执行,对所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的除发起调用请求的节点以外的节点的可信执行环境中装入的经签名的智能合约的特定接口进行调用。
5.根据权利要求2至4任一项所述的方法,其特征在于,还包括:
响应于所述加载模块对经签名的智能合约的执行,对在发起所述调用请求的节点的可信执行环境中对经签名的智能合约的执行结果进行汇总,并且输出汇总的执行结果,或者
响应于所述加载模块对经签名的智能合约的执行,调用除所述通信组中的具有经签名的智能合约的节点中所述调用请求涉及的节点以外的节点,执行与对所述智能合约的调用请求对应的业务。
6.一种通信***,其特征在于,包括:
多个安装有可信执行环境的节点,
其中,利用所述多个安装有可信执行环境的节点生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个节点利用可信执行环境进行通信且不经过第三方节点;
其中,所述通信组中的第一节点获取智能合约,将所述智能合约装入所述第一节点的可信执行环境中,并且在所述第一节点的可信执行环境中对所述智能合约加密;
其中,通过所述第一节点的可信执行环境将经加密的智能合约发送到所述通信组中的至少一个第二节点的可信执行环境;
其中,通过所述至少一个第二节点的可信执行环境对所述经加密的智能合约进行解密,并且所述至少一个第二节点从自身的可信执行环境中读取经解密的智能合约;
其中,所述通信组中的具有所述智能合约的节点检测所述智能合约是否满足预设条件;
其中,根据检测到所述智能合约满足预设条件,所述通信组中的具有所述智能合约的节点对所述智能合约签名,将经签名的智能合约装入所述通信组中的具有所述智能合约的节点各自的可信执行环境中以供调用。
7.一种通信装置,其特征在于,包括:
发送模块和可信执行环境,其中,在利用多个通信装置生成的利用可信执行环境进行加密通信的通信组中,所述通信装置与第二通信装置利用可信执行环境进行通信且不经过第三方通信装置,
其中,所述通信装置获取第一智能合约,通过所述发送模块将所述第一智能合约发送到所述通信装置的可信执行环境中,
其中,所述可信执行环境被配置为:对所述第一智能合约加密,并且将经加密的第一智能合约发送到所述第二通信装置的可信执行环境。
8.一种通信方法,其特征在于,由包括发送模块和可信执行环境的通信装置执行,其中,利用多个安装有可信执行环境的通信装置生成利用可信执行环境进行加密通信的通信组,其中,所述通信组中的任意两个通信装置利用可信执行环境进行通信且不经过第三方通信装置,
其中,所述方法包括:
所述通信装置获取第一智能合约,通过所述发送模块将所述第一智能合约发送到所述通信装置的可信执行环境中;
在可信执行环境中对所述第一智能合约加密;
利用所述可信执行环境将经加密的第一智能合约发送到所述第二通信装置的可信执行环境。
9.一种电子设备,其特征在于,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求8所述的方法。
10.一种可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求8所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010351777.8A CN111510462B (zh) | 2020-04-28 | 2020-04-28 | 通信方法、***、装置、电子设备和可读存储介质 |
PCT/CN2021/089308 WO2021218812A1 (zh) | 2020-04-28 | 2021-04-23 | 通信方法、***、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010351777.8A CN111510462B (zh) | 2020-04-28 | 2020-04-28 | 通信方法、***、装置、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111510462A true CN111510462A (zh) | 2020-08-07 |
CN111510462B CN111510462B (zh) | 2022-07-08 |
Family
ID=71878113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010351777.8A Active CN111510462B (zh) | 2020-04-28 | 2020-04-28 | 通信方法、***、装置、电子设备和可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111510462B (zh) |
WO (1) | WO2021218812A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021218812A1 (zh) * | 2020-04-28 | 2021-11-04 | 拉扎斯网络科技(上海)有限公司 | 通信方法、***、装置、电子设备和可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115549906B (zh) * | 2022-11-24 | 2023-04-11 | 富算科技(上海)有限公司 | 基于区块链的隐私计算方法、***、设备和介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454528A (zh) * | 2015-08-07 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 基于可信执行环境的业务处理方法和客户端 |
CN109831298A (zh) * | 2019-01-31 | 2019-05-31 | 阿里巴巴集团控股有限公司 | 区块链中安全更新密钥的方法及节点、存储介质 |
CN110008686A (zh) * | 2018-11-16 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 跨区块链的数据处理方法、装置、客户端、区块链*** |
CN110034924A (zh) * | 2018-12-12 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
US20190279206A1 (en) * | 2018-12-13 | 2019-09-12 | Alibaba Group Holding Limited | Off-chain smart contract service based on trusted execution environment |
CN110245506A (zh) * | 2019-05-30 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约管理方法及装置、电子设备 |
CN110264197A (zh) * | 2019-05-20 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 结合事件函数类型和判断条件的收据存储方法和节点 |
CN111047443A (zh) * | 2019-11-29 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 用户评分方法及装置、电子设备、计算机可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107342858B (zh) * | 2017-07-05 | 2019-09-10 | 武汉凤链科技有限公司 | 一种基于可信环境的智能合约保护方法和*** |
US10554634B2 (en) * | 2017-08-18 | 2020-02-04 | Intel Corporation | Techniques for shared private data objects in a trusted execution environment |
US11489816B2 (en) * | 2018-07-31 | 2022-11-01 | Ezblock Ltd. | Blockchain joining for a limited processing capability device and device access security |
CN111510462B (zh) * | 2020-04-28 | 2022-07-08 | 拉扎斯网络科技(上海)有限公司 | 通信方法、***、装置、电子设备和可读存储介质 |
-
2020
- 2020-04-28 CN CN202010351777.8A patent/CN111510462B/zh active Active
-
2021
- 2021-04-23 WO PCT/CN2021/089308 patent/WO2021218812A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106454528A (zh) * | 2015-08-07 | 2017-02-22 | 阿里巴巴集团控股有限公司 | 基于可信执行环境的业务处理方法和客户端 |
CN110008686A (zh) * | 2018-11-16 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 跨区块链的数据处理方法、装置、客户端、区块链*** |
CN110034924A (zh) * | 2018-12-12 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 一种数据处理方法和装置 |
US20190279206A1 (en) * | 2018-12-13 | 2019-09-12 | Alibaba Group Holding Limited | Off-chain smart contract service based on trusted execution environment |
CN109831298A (zh) * | 2019-01-31 | 2019-05-31 | 阿里巴巴集团控股有限公司 | 区块链中安全更新密钥的方法及节点、存储介质 |
CN110264197A (zh) * | 2019-05-20 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 结合事件函数类型和判断条件的收据存储方法和节点 |
CN110245506A (zh) * | 2019-05-30 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于区块链的智能合约管理方法及装置、电子设备 |
CN111047443A (zh) * | 2019-11-29 | 2020-04-21 | 支付宝(杭州)信息技术有限公司 | 用户评分方法及装置、电子设备、计算机可读存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021218812A1 (zh) * | 2020-04-28 | 2021-11-04 | 拉扎斯网络科技(上海)有限公司 | 通信方法、***、装置、电子设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111510462B (zh) | 2022-07-08 |
WO2021218812A1 (zh) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210097528A1 (en) | Blockchain hot wallet based on secure enclave and multi-signature authorization | |
US6516413B1 (en) | Apparatus and method for user authentication | |
US7870399B2 (en) | Software trusted platform module and application security wrapper | |
US8417964B2 (en) | Software module management device and program | |
EP1161715B1 (en) | Communications between modules of a computing apparatus | |
CN101019369B (zh) | 利用在线服务向装置传递直接证明私有密钥的方法 | |
CN110580412B (zh) | 基于链代码的权限查询配置方法及装置 | |
EP4318286A1 (en) | Secure multi-party computation | |
US20220114249A1 (en) | Systems and methods for secure and fast machine learning inference in a trusted execution environment | |
CN111475827A (zh) | 基于链下授权的隐私数据查询方法及装置 | |
EP4092984A1 (en) | Data processing method and apparatus, device and medium | |
CN113726733B (zh) | 一种基于可信执行环境的加密智能合约隐私保护方法 | |
CN114036573A (zh) | 支持隐私计算的计算设备 | |
CN111510462B (zh) | 通信方法、***、装置、电子设备和可读存储介质 | |
CN115580413A (zh) | 一种零信任的多方数据融合计算方法和装置 | |
Cooijmans et al. | Secure key storage and secure computation in Android | |
CN112910641B (zh) | 用于跨链交易监管的验证方法、装置、中继链节点及介质 | |
CN110399706B (zh) | 授权认证方法、装置和计算机*** | |
CN114615087B (zh) | 数据共享方法、装置、设备及介质 | |
CN115357866A (zh) | 应用程序执行方法、装置、设备及存储介质 | |
JP2019057827A (ja) | 分散認証システムおよびプログラム | |
Wagner et al. | Challenges of Using Trusted Computing for Collaborative Data Processing | |
CN111510918B (zh) | 通信方法、***、装置、电子设备和可读存储介质 | |
Chaki et al. | Verification across intellectual property boundaries | |
CN112818384B (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 |