CN111079158B - 数据存储和读取的方法及装置 - Google Patents
数据存储和读取的方法及装置 Download PDFInfo
- Publication number
- CN111079158B CN111079158B CN201911151124.9A CN201911151124A CN111079158B CN 111079158 B CN111079158 B CN 111079158B CN 201911151124 A CN201911151124 A CN 201911151124A CN 111079158 B CN111079158 B CN 111079158B
- Authority
- CN
- China
- Prior art keywords
- cluster
- trusted computing
- key
- data
- public key
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本说明书实施例提供了一种数据存储和读取的方法和装置。根据数据存储方法,可信计算集群中任意的第一可信计算节点可以利用第一可信计算节点的硬件标识生成第一对称密钥,使用第一对称密钥加密待持久化数据,得到第一加密数据,例如,待持久化数据可以为第一可信计算节点中的隐私数据;使用集群公钥加密第一对称密钥,得到第二加密数据,将第一加密数据和第二加密数据对应地存储至数据存储平台。
Description
技术领域
本说明书一个或多个实施例涉及数据安全领域,尤其涉及一种数据存储和读取的方法和装置。
背景技术
可信计算集群是由运行在可信执行环境(Trusted Execution Environment,TEE)中的多个可信计算节点所构成的计算集群。可信计算集群能够提供数据计算服务。可信计算节点具有一定的隔离能力,这种隔离能力能够防止其他应用程序包括操作系统或驱动等窥探和篡改可信计算节点的应用程序和数据,进而保证数据计算的安全性。
发明内容
本说明书一个或多个实施例描述了数据存储和读取的方法和装置,以提高持久化数据的可读取性。
第一方面,本说明书提供了一种数据存储方法,通过可信计算集群中任意的第一可信计算节点执行,所述方法包括:
利用所述第一可信计算节点的硬件标识生成第一对称密钥;
使用所述第一对称密钥加密待持久化数据,得到第一加密数据;
使用集群公钥加密所述第一对称密钥,得到第二加密数据;其中,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥,用于解密使用所述集群公钥加密后的数据;
将所述第一加密数据和所述第二加密数据对应地存储至数据存储平台。
在一种具体实施例中,所述利用所述第一可信计算节点的硬件标识生成第一对称密钥的步骤,包括:
当存在所述待持久化数据时,利用所述第一计算节点的硬件标识和预设生成规则,生成与所述待持久化数据对应的第一对称密钥。
在一种具体实施例中,所述数据存储平台包括分布式文件系统HDFS、对象存储服务OSS和MySQL数据库中的至少一个。
在一种具体实施例中,方法还包括,可采用以下方式确定集群公钥和对应的集群私钥:
在预设数据范围内随机生成待选公钥和对应的私钥;
将节点密钥信息发送至协调器;其中,所述节点密钥信息包括:所述待选公钥和所述第一可信计算节点中运行的计算任务的代码哈希;
获取所述协调器发送的针对选定的集群公钥的指示信息;其中,所述指示信息为所述协调器根据各个可信计算节点发送的节点密钥信息而确定;
利用所述指示信息确定集群公钥和对应的集群私钥。
在一种具体实施例中,所述利用所述指示信息确定集群公钥和对应的集群私钥的步骤,包括:
当所述指示信息指示所述第一可信计算节点的节点密钥信息中的待选公钥为集群公钥时,将所述第一可信计算节点的待选公钥和对应的私钥确定为集群公钥和对应的集群私钥;
当所述指示信息指示其他可信计算节点的节点密钥信息中的待选公钥为集群公钥时,从所述其他可信计算节点中获取集群公钥和对应的集群私钥。
在一种具体实施例中,所述从所述其他可信计算节点中获取集群公钥和对应的集群私钥的步骤,包括:
与所述其他可信计算节点进行远程RA认证,并建立RA通道;
通过所述RA通道,从所述其他可信计算节点获取所述集群公钥和对应的集群私钥。
第二方面,本说明书提供了一种数据读取方法,通过可信计算集群中任意的第二可信计算节点执行,所述方法包括:
当需要获取已持久化数据时,从数据存储平台获取第三加密数据和对应的第四加密数据;其中,所述第三加密数据为使用第二对称密钥加密所述已持久化数据后的加密数据,所述第四加密数据为使用集群公钥加密所述第二对称密钥后得到的加密数据,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥用于解密使用所述集群公钥加密后的数据;
使用所述集群私钥解密所述第四加密数据,得到所述第二对称密钥;
使用所述第二对称密钥解密所述第三加密数据,得到所述已持久化数据。
在一种具体实施例中,第二对称密钥为利用所述可信计算集群中的其他可信计算节点的硬件标识生成。
第三方面,本说明书提供了一种数据存储装置,部署在可信计算集群中任意的第一可信计算节点中,所述装置包括:
生成单元,配置为利用所述第一可信计算节点的硬件标识生成第一对称密钥;
第一加密单元,配置为使用所述第一对称密钥加密待持久化数据,得到第一加密数据;
第二加密单元,配置为使用集群公钥加密所述第一对称密钥,得到第二加密数据;其中,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥,用于解密使用所述集群公钥加密后的数据;
存储单元,配置为将所述第一加密数据和所述第二加密数据对应地存储至数据存储平台。
在一种具体实施例中,所述生成单元具体配置为:
当存在所述待持久化数据时,利用所述第一计算节点的硬件标识和预设生成规则,生成与所述待持久化数据对应的第一对称密钥。
在一种具体实施例中,所述数据存储平台包括分布式文件系统HDFS、对象存储服务OSS和MySQL数据库中的至少一个。
在一种具体实施例中,该装置还包括:
确定单元,配置为采用以下操作确定集群公钥和对应的集群私钥:
在预设数据范围内随机生成待选公钥和对应的私钥;
将节点密钥信息发送至协调器;其中,所述节点密钥信息包括:所述待选公钥和所述第一可信计算节点中运行的计算任务的代码哈希;
获取所述协调器发送的针对选定的集群公钥的指示信息;其中,所述指示信息为所述协调器根据各个可信计算节点发送的节点密钥信息而确定;
利用所述指示信息确定集群公钥和对应的集群私钥。
在一种具体实施例中,确定单元,利用所述指示信息确定集群公钥和对应的集群私钥时,包括:
当所述指示信息指示所述第一可信计算节点的节点密钥信息中的待选公钥为集群公钥时,将所述第一可信计算节点的待选公钥和对应的私钥确定为集群公钥和对应的集群私钥;
当所述指示信息指示其他可信计算节点的节点密钥信息中的待选公钥为集群公钥时,从所述其他可信计算节点中获取集群公钥和对应的集群私钥。
在一种具体实施例中,确定单元,从所述其他可信计算节点中获取集群公钥和对应的集群私钥时,包括:
与所述其他可信计算节点进行远程RA认证,并建立RA通道;
通过所述RA通道,从所述其他可信计算节点获取所述集群公钥和对应的集群私钥。
第四方面,本说明书提供了一种数据读取装置,部署在可信计算集群中任意的第二可信计算节点中,所述装置包括:
获取单元,配置为当需要获取已持久化数据时,从数据存储平台获取第三加密数据和对应的第四加密数据;其中,所述第三加密数据为使用第二对称密钥加密所述已持久化数据后的加密数据,所述第四加密数据为使用集群公钥加密所述第二对称密钥后得到的加密数据,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥用于解密使用所述集群公钥加密后的数据;
第一解密单元,配置为使用所述集群私钥解密所述第四加密数据,得到所述第二对称密钥;
第二解密单元,配置为使用所述第二对称密钥解密所述第三加密数据,得到所述已持久化数据。
在一种具体实施例中,所述第二对称密钥为利用所述可信计算集群中的其他可信计算节点的硬件标识生成。
第五方面,本说明书提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面和第二方面提供的任一方法。
第五方面,本说明书提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面和第二方面提供的任一的方法。
综上,在本说明书实施例提供的数据存储和读取的方法和装置中,可信计算节点可以使用第一对称密钥加密待持久化数据得到第一加密数据,使用集群公钥加密第一对称密钥得到第二加密数据,将第一加密数据和第二加密数据对应地存储至数据存储方。当该可信计算节点发生故障或者不发生故障时,可信计算集群中的其他可信计算节点都可以使用共有的集群私钥解密第二加密数据,得到第一对称密钥,使用第一对称密钥解密第一加密数据,得到待持久化数据。因此,本说明书中,各个可信计算节点均能读取本可信计算集群中某个可信计算节点加密存储的持久化数据,能够提高持久化数据的可读取性。
附图说明
为了更清楚地说明本说明书的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中可信计算集群初始化过程的示意图一;
图2为一个实施例中可信计算集群初始化过程的示意图二;
图3为一个实施例中的数据存储方法的示意图;
图4为一个实施例中的数据读取方法的示意图;
图5为一个实施例提供的数据存储装置的示意性框图;
图6为一个实施例提供的数据提取装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
可信计算节点用于对数据进行计算。当可信计算节点完成对数据的计算之后,可以将该数据通过加密的方式存储在高可用存储设备中,这种将非持久保存的瞬时数据进行持久保存的过程,称为对数据的持久化。在对待持久化数据进行加密时,可信计算节点通常利用自身的标识对待持久化数据进行加密。各个可信计算节点彼此独立地加密自身的待持久化数据。这种加密方式能够一定程度上保障数据安全性。当前,需要提高持久化数据的可读取性。
为了解决持久化数据的可读取性不够高的问题,本说明书实施例中,可信计算节点利用自身的硬件标识生成对称密钥,使用对称密钥加密待持久化数据,使用可信计算集群中的集群公钥加密对称密钥,将两个加密结果对应地存储至数据存储平台。当可信计算节点需要获取已持久化数据时,可以使用集群私钥解密得到对称密钥,使用得到的对称密钥解密得到已持久化数据。这样,任意可信计算节点都能读取自身以及本可信计算集群中的其他可信计算节点存储的已持久化数据。
本说明书为了说明上述技术方案,首先通过图1和图2说明可信计算节点通过协调器进行可信计算集群初始化的过程。
图1为一个实施例中可信计算集群初始化过程的示意图一。图1中的实施场景包括协调器100和多个可信计算节点200。可信计算节点200可以在可信执行环境(TrustedExecution Environment,TEE)中运行计算任务。计算任务对应的程序代码的哈希值,可以称为代码哈希。可信计算节点200也可以称为可信计算单元或TEE节点,其隔离能力能够防止其他应用程序窥探和篡改可信计算节点的应用程序和数据,保证计算的安全性。可信计算节点200可以是可信的计算围圈(Enclave),且可以采用软件保护扩展(software guardextension,SGX)或信任域(Trust Zone)等技术来实现。例如,根据SGX技术,通过提供一系列CPU指令码,允许用户代码创建具有高访问权限的私有内存区域而形成计算围圈。其他应用程序,包括操作系统OS、BIOS系统、虚拟机系统等,均不能访问围圈中的数据,也就不能窥探和篡改其中应用程序的状态和数据。
下面通过步骤S101~步骤S104说明可信计算集群的初始化过程。其中,以任意的第一可信计算节点200(例如可以为TEE A)为执行主体进行说明。
步骤S101,TEE A在预设数据范围内随机生成待选公钥Pub-K1和对应的私钥Pr i-K1。步骤S102,TEE A将节点密钥信息发送至协调器100。节点密钥信息包括待选公钥Pub-K1以及TEE A中运行的计算任务的代码哈希HashX。由于待选公钥和对应的私钥在TEE A内部生成,其只对该TEE A可见,并且第一可信计算节点200并不将生成的私钥发送至协调器100,因此能够尽可能保证密钥数据的安全性。
协调器100可以接收到一个或多个可信计算节点200发送的节点密钥信息。当可信计算节点TEE A、TEE B和TEE C等运行相同的计算任务时,其具有相同的代码哈希,例如可以均为HashX。协调器100可以通过相同的代码哈希来识别属于同一个可信计算集群的可信计算节点。协调器100还可以根据具有相同的代码哈希的可信计算节点所发送的待选公钥,选定集群公钥。
协调器100可以根据各个可信计算节点200发送的节点密钥信息确定指示信息,该指示信息用于指示选定的集群公钥。协调器100可以按照预设规则从可信计算节点TEE A、TEE B和TEE C发送的待选公钥中选定集群公钥。
例如,可以将最先发送节点密钥信息的可信计算节点的待选公钥作为集群公钥。具体的,协调器100首先接收到了可信计算节点TEE C发送的节点密钥信息(HashX,Pub-K3),此时可以确定该节点密钥信息中的代码哈希并不存在选定的集群公钥。在这种情况下,协调器100可以将Pub-K3选定为集群公钥。对应的,TEE C中生成的私钥为集群私钥。协调器100可以向TEE C发送指示TEE C中的待选公钥为集群公钥的指示信息。协调器100其次接收到了TEE A发送的节点密钥信息(HashX,Pub-K1),此时可以确定该节点密钥信息中的代码哈希已经存在选定的集群公钥,则可以指示TEE A利用RA通道从拥有集群公钥的可信计算节点TEE C中获取集群公钥和集群私钥。当协调器100接收到其他可信计算节点发送的节点密钥信息时,均可以执行相同操作。
当然,协调器也可以从各个可信计算节点发送的待选公钥中随机选定集群公钥,或者将最后一个发送的待选公钥选定为集群公钥,这些实施例都是可行的。
步骤S103,TEE A获取协调器100发送的针对选定的集群公钥的指示信息。步骤S104,TEE A利用指示信息确定集群公钥和对应的集群私钥。
指示信息具体可以指示拥有集群公钥的可信计算节点,TEE A可以利用该指示信息从拥有集群公钥的可信计算节点中获取集群公钥和集群私钥。图2给出了各个可信计算节点之间同步密钥过程的示意图。例如,协调器100选定的集群公钥为Pub-K3,其向TEE A发送指示信息1,向TEE B发送指示信息2,向TEEC发送指示信息3。其中,指示信息1和指示信息2均可以指示TEE C的节点密钥信息中的待选公钥为集群公钥。指示信息3可以指示TEE C自身的节点密钥信息中的选定公钥为集群公钥。TEE A和TEE B均可以从TEE C中获取集群公钥和对应的集群私钥。TEE A、TEE B和TEE C也可以采用广播拓扑结构的方式同步密钥,例如可以采用常见的树形传播方式同步密钥。
本实施例中,当指示信息指示第一可信计算节点的节点密钥信息中的待选公钥为集群公钥时,第一可信计算节点可以将自身的待选公钥和对应的私钥确定为集群公钥和对应的集群私钥。当指示信息指示其他可信计算节点的节点密钥信息中的待选公钥为集群公钥时,第一可信计算节点可以从其他可信计算节点中获取集群公钥和对应的集群私钥。
综上可见,本实施例中,协调器可以对集群公钥进行选定,并协调可信计算节点之间进行集群公钥和集群私钥的同步,这样能够更高效、更安全地完成集群密钥的共有过程。
具有相同代码哈希的各个可信计算节点之间运行有相同的计算任务,彼此之间同步集群密钥之后即形成可信计算集群。例如,图2中可信计算节点TEE A、TEE B和TEE C具有相同的代码哈希,当它们完成集群密钥的同步时即形成可信计算集群300。
为了使得集群密钥的同步过程更加安全可信,各个可信计算节点之间在同步密钥时可以进行可信认证,认证通过之后再同步集群密钥。其中,可信认证包括确认对方运行在TEE环境中,以及确认对方运行同样的计算任务,即具有同样的代码哈希等。例如,在从TEEC中获取密钥时,TEE A可以与TEE C进行远程认证(Remote Attestation,RA),并建立RA通道,通过该RA通道,从TEE中获取集群公钥和对应的集群私钥。这样能够尽可能避免密钥被窃取,进而提高集群公钥和集群私钥在传输时的安全性。
TEE C对TEE A进行上述RA认证时,可以向TEE A发送RA认证请求,TEE A在接收到TEE C发送的RA认证请求时向TEE C返回认证信息,TEE C利用该认证信息确认RA认证是否通过。上述过程可以至少包括以下实施方式。方式一,TEE A发送的认证信息为报告文件。TEE C在接收到TEE A发送的报告文件时,可以将该报告文件发送至第三方认证机构,并获取第三方认证机构针对该报告文件确定的认证结果,利用该认证结果确认RA认证是否通过。方式二,TEE A发送的认证信息即为认证结果。即TEE A直接将报告文件发送至第三方认证机构,并获取第三方认证机构针对该报告文件确定的认证结果,将获取的认证结果作为认证信息发送至TEE C。
其中,上述报告文件用于描述可信计算节点自身的配置状况和运行状况。具体的,该报告文件至少包括:可信计算节点的配置状况信息、运行状况信息、运行的计算任务的代码哈希以及签名信息等。其中,代码哈希可以唯一地标识运行的计算任务,签名信息可以保证报告文件真实可靠,识别伪造和篡改的情况。
第三方认证机构是可信的、具有认证能力的权威认证机构。并且,在各个可信计算节点投入使用之前,可以向该第三方认证机构进行注册。因此,该第三方认证机构保存有各个可信计算节点的配置状况信息、计算任务的代码哈希等信息,根据这些信息可以对报告文件的可信性和安全性进行认证。
例如,当可信计算节点是通过Intel SGX实现的可信围圈Enclave时,第三方认证机构可以为Intel认证服务器(Attestation Service)。
在上述认证结果表明认证通过之后,双方可以建立RA通道。双方通过交互确认RA通道的密钥,使用该密钥加密集群公钥和对应的集群私钥,通过密文的形式发送集群公钥和集群私钥。
综上可见,第一可信计算节点在从其他可信计算节点中获取集群公钥和对应的集群私钥时,可以与其他可信计算节点进行远程RA认证,并建立RA通道;通过该RA通道,从其他可信计算节点获取集群公钥和对应的集群私钥。通过RA安全通道进行集群密钥的同步,能够提高集群密钥传输过程中的安全性。
如图2所示,经过同步集群密钥的过程之后即完成可信计算集群300的初始化,并且可信计算集群300中任意的可信计算节点均获取到集群公钥Pub-K3和集群私钥Pri-K3。此时,任意的可信计算节点可以切入可服务状态,并可以进行安全数据的持久化读和写。
图3为一个实施例中的数据存储方法的示意图。图3沿用了图1和图2中的可信计算集群300和其中的可信计算节点TEE A和TEE C进行说明。图3中还示出了数据存储平台400。该数据存储平台400至少可以用于存储可信计算节点200发送的持久化数据。数据存储平台400可以包括分布式文件系统(Hadoop Distributed File System,HDFS)、对象存储服务(Object Storage Serv ice,OSS)和MySQL数据库中的至少一个。HDFS为分布式的高可用存储平台,其分布式的存储能够提高所存储的持久化数据的安全性和可靠性。
首先,来明确本说明书中的瞬时数据、待持久化数据、已持久化数据和持久化数据。存在于可信计算节点中且等待存储至数据管理平台的瞬时数据,可以称为待持久化数据。可信计算节点中的瞬时数据可以包括程序数据、服务状态数据等,通常可以存储在可信计算节点的内存中,这种数据是没有永久保存的数据,容易丢失。将非持久保存的瞬时数据转换为持久保存的数据的过程,称为数据的持久化。将待持久化数据存储在数据管理平台内,是一种数据的持久化过程,存储在数据管理平台中的数据可以称为已持久化数据。
参见图3,在经过集群密钥同步之后,TEE A和TEE C等节点共有集群公钥Pub-K3和对应的集群私钥Pri-K3。第一可信计算节点为可信计算集群中的任意一个可信计算节点,下面以第一可信计算节点TEE A为例,通过步骤S301~步骤S304说明本实施例中提供的数据存储方法。
步骤S301,TEE A利用第一可信计算节点(TEE A)的硬件标识生成第一对称密钥K1。TEE A的硬件标识可以为CPU或内存等硬件的序列号。利用该硬件标识生成第一对称密钥K1时,可以直接将该硬件标识作为第一对称密钥K1,也可以在该硬件标识的基础上叠加随机数,得到第一对称密钥K1。
TEE A内部可以存在多个待持久化数据。其中,待持久化数据可以为TEE A中的隐私数据或其他数据。针对多个待持久化数据,可以生成统一的一个第一对称密钥K1,也可以针对不同的待持久化数据生成与之对应的第一对称密钥K1。具体的,当TEE A存在待持久化数据Data1时,可以利用第一计算节点TEE A的硬件标识和预设生成规则,生成与待持久化数据Data1对应的第一对称密钥K1。这样,针对不同的待持久化数据Data1,存在不同的第一对称密钥K1对之对应。预设生成规则可以包括,在硬件标识基础上叠加预设范围内的随机数,或者,在硬件标识基础上叠加顺序数。上述叠加的数据可以是正数也可以是负数,因此上述叠加操作实际可以包括对硬件标识的数值进行增加或减少。
步骤S302,使用第一对称密钥K1加密待持久化数据Data1,得到第一加密数据R1,R1可以表示为(K1,Data1)。在加密待持久化数据Data1时,可以使用第一对称密钥K1,采用各种对称加密算法对Data1进行加密,得到第一加密数据R1。例如,对称加密算法可以包括数据加密标准(Data Encryption Standard,DES)、高级加密标准(Advanced EncryptionStandard,AES)等。第一对称密钥K1可以用于解密使用K1加密后的第一加密数据R1。
步骤S303,使用集群公钥Pub-K3加密第一对称密钥K1,得到第二加密数据R2,R2可以表示为(Pub-K3,K1)。以K1作为待加密数据,在对K1进行加密时,可以使用集群公钥Pub-K3,采用各种非对称加密算法对K1进行加密,得到R2。非对称加密算法可以包括背包算法、椭圆曲线加密算法等。
步骤S304,将第一加密数据R1和第二加密数据R2对应地存储至数据存储平台400。由于第一加密数据R1和第二加密数据R2均为已经加密过的数据,因此可以直接通过TEE A与数据存储平台400之间建立的普通通信通道进行发送。
综上,在本实施例中,集群私钥可以用于解密使用对应的集群公钥加密后的数据。因此,采用集群公钥对第一对称密钥进行加密,能够将第一对称密钥转换为暗文,提高第一对称密钥的安全性。同时,可信计算集群中的其他可信计算节点都可以使用共有的集群私钥解密第二加密数据,得到第一对称密钥,使用第一对称密钥解密第一加密数据,得到待持久化数据。即便是某个可信计算节点发生故障,本可信计算集群中的其他可信计算节点也可以通过集群私钥解密得到持久化数据,因此能够提高持久化数据的可读性。
当可信计算集群中的某个节点发生故障时,可以直接启动新的可信计算节点来运行同样的计算任务,维持同样的代码哈希。新的可信计算节点可以通过协调器获取针对集群公钥的指示信息,根据指示信息从其他处于存活状态的可信计算节点中获取集群公钥和对应的集群私钥。上述指示信息可以指示新的可信计算节点从处于存活状态的可信计算节点中获取集群公钥和对应的集群私钥。这样能够保证可信计算集群中总存在活着的可信计算节点,使得可信计算集群的集群密钥有冗余,从而尽可能避免节点发生故障导致该故障节点存储的持久化数据无法被读取的情况。同时,本说明书提供的实施例还可以减少集群中最少可信计算节点的数量,即只需要至少一个可信计算节点处于存活状态,其便可以提供服务,进而优化了实施方案。
图4为一个实施例中的数据读取方法的示意图。图4沿用图3实施例中的结构场景进行说明。第二可信计算节点为可信计算集群中的任意一个可信计算节点,下面以第二可信计算节点TEE C为例,通过步骤S401~步骤S403说明本实施例中提供的数据读取方法。
步骤S401,当需要获取已持久化数据时,TEE C可以从数据存储平台400获取第三加密数据R3和对应的第四加密数据R4。其中,第三加密数据R3为使用第二对称密钥K2加密已持久化数据Data2后的加密数据,第四加密数据R4为使用集群公钥Pub-K3加密第二对称密钥K2后得到的加密数据。R3可以表示为(K2,Data2),R4可以表示为(Pub-K3,K2)。
TEE C可以通过与数据存储平台400直接建立的普通通信通道获取R3和R4。
步骤S402,TEE C使用集群私钥Pri-K3解密第四加密数据R4,得到第二对称密钥K2。在解密第四加密数据R4时,可以使用集群私钥Pri-K3,采用与加密阶段对应的非对称解密算法解密第四加密数据R4,得到K2。
步骤S403,TEE C使用第二对称密钥K2解密第三加密数据R3,得到已持久化数据Data2。在解密第三加密数据R3时,可以使用第二对称密钥K2,采用与加密阶段对应的对称解密算法解密第三加密数据R3,得到Data2。
其中,上述第三加密数据R3和对应的第四加密数据R4,可以是TEE C存储至数据存储平台400中的,也可以是其他可信计算节点(例如TEE A)存储至数据存储平台400中的,即第二对称密钥K2可以为利用可信计算集群300中的其他可信计算节点(除了TEE C之外的可信计算节点)的硬件标识生成。也就是说,针对可信计算集群300中的每个可信计算节点200,均可以从数据存储平台400中读取可信计算集群300对应的持久化数据。
综合图3所示的存储过程和图4所示的读取过程可知,可信计算集群300中的每个可信计算节点200可以实现对数据存储平台400中持久化数据的写入和读取双向过程。
图5为一个实施例提供的数据存储装置的示意性框图。该装置实施例与图1~图3所示方法实施例相对应。其中,数据存储装置500部署在可信计算集群中任意的第一可信计算节点中,该装置包括:
生成单元501,配置为利用所述第一可信计算节点的硬件标识生成第一对称密钥;
第一加密单元502,配置为使用所述第一对称密钥加密待持久化数据,得到第一加密数据;
第二加密单元503,配置为使用集群公钥加密所述第一对称密钥,得到第二加密数据;其中,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥,用于解密使用所述集群公钥加密后的数据;
存储单元504,配置为将所述第一加密数据和所述第二加密数据对应地存储至数据存储平台。
在一个具体实施例中,生成单元501可以具体配置为:
当存在所述待持久化数据时,利用所述第一计算节点的硬件标识和预设生成规则,生成与所述待持久化数据对应的第一对称密钥。
在一个具体实施例中,数据存储平台可以包括分布式文件系统HDFS、对象存储服务OSS和MySQL数据库中的至少一个。
在一个具体实施例中,该数据读取装置600还包括:
确定单元(图中未示出),配置为采用以下操作确定集群公钥和对应的集群私钥:
在预设数据范围内随机生成待选公钥和对应的私钥;
将节点密钥信息发送至协调器;其中,所述节点密钥信息包括:所述待选公钥和第一可信计算节点中运行的计算任务的代码哈希;
获取所述协调器发送的针对选定的集群公钥的指示信息;其中,所述指示信息为协调器根据各个可信计算节点发送的节点密钥信息而确定;
利用所述指示信息确定集群公钥和对应的集群私钥。
在一个具体实施例中,确定单元,利用所述指示信息确定集群公钥和对应的集群私钥时,包括:
当所述指示信息指示所述第一可信计算节点的节点密钥信息中的待选公钥为集群公钥时,将所述第一可信计算节点的待选公钥和对应的私钥确定为集群公钥和对应的集群私钥;
当所述指示信息指示其他可信计算节点的节点密钥信息中的待选公钥为集群公钥时,从所述其他可信计算节点中获取集群公钥和对应的集群私钥。
在一个具体实施例中,确定单元,从所述其他可信计算节点中获取集群公钥和对应的集群私钥时,包括:
与所述其他可信计算节点进行远程RA认证,并建立RA通道;
通过所述RA通道,从所述其他可信计算节点获取所述集群公钥和对应的集群私钥。
图6为一个实施例提供的数据提取装置的示意性框图。该装置实施例与图4所示方法实施例相对应。数据读取装置600部署在可信计算集群中任意的第二可信计算节点中,该装置包括:
获取单元601,配置为当需要获取已持久化数据时,从数据存储平台获取第三加密数据和对应的第四加密数据;其中,所述第三加密数据为使用第二对称密钥加密所述已持久化数据后的加密数据,所述第四加密数据为使用集群公钥加密所述第二对称密钥后得到的加密数据,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥用于解密使用所述集群公钥加密后的数据;
第一解密单元602,配置为使用所述集群私钥解密所述第四加密数据,得到所述第二对称密钥;
第二解密单元603,配置为使用所述第二对称密钥解密所述第三加密数据,得到所述已持久化数据。
在一个具体实施例中,第二对称密钥为利用所述可信计算集群中的其他可信计算节点的硬件标识生成。
上述装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。上述装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
在本说明书的一实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序在计算机中执行时,令计算机执行图1到图4所描述的方法。
在本说明书的一实施例中,还提供了一种计算设备,包括存储器和处理器,存储器中存储有可执行代码,处理器执行可执行代码时,可以实现图1到图4所描述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (18)
1.一种数据存储方法,通过可信计算集群中任意的第一可信计算节点执行,所述方法包括:
利用所述第一可信计算节点的硬件标识生成第一对称密钥;
使用所述第一对称密钥加密待持久化数据,得到第一加密数据;其中,所述待持久化数据是所述第一可信计算节点中的数据;
使用集群公钥加密所述第一对称密钥,得到第二加密数据;其中,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥,用于解密使用所述集群公钥加密后的数据;
将所述第一加密数据和所述第二加密数据对应地存储至数据存储平台,以使得所述可信计算集群中的其他可信计算节点,使用所述集群私钥解密所述第二加密数据,得到所述第一对称密钥,使用所述第一对称密钥解密所述第一加密数据,得到所述待持久化数据。
2.根据权利要求1所述的方法,所述利用所述第一可信计算节点的硬件标识生成第一对称密钥的步骤,包括:
当存在所述待持久化数据时,利用所述第一可信计算节点的硬件标识和预设生成规则,生成与所述待持久化数据对应的第一对称密钥。
3.根据权利要求1所述的方法,所述数据存储平台包括分布式文件系统HDFS、对象存储服务OSS和MySQL数据库中的至少一个。
4.根据权利要求1所述的方法,还包括,采用以下方式确定集群公钥和对应的集群私钥:
在预设数据范围内随机生成待选公钥和对应的私钥;
将节点密钥信息发送至协调器;其中,所述节点密钥信息包括:所述待选公钥和所述第一可信计算节点中运行的计算任务的代码哈希;
获取所述协调器发送的针对选定的集群公钥的指示信息;其中,所述指示信息为所述协调器根据各个可信计算节点发送的节点密钥信息而确定;
利用所述指示信息确定集群公钥和对应的集群私钥。
5.根据权利要求4所述的方法,所述利用所述指示信息确定集群公钥和对应的集群私钥的步骤,包括:
当所述指示信息指示所述第一可信计算节点的节点密钥信息中的待选公钥为集群公钥时,将所述第一可信计算节点的待选公钥和对应的私钥确定为集群公钥和对应的集群私钥;
当所述指示信息指示其他可信计算节点的节点密钥信息中的待选公钥为集群公钥时,从所述其他可信计算节点中获取集群公钥和对应的集群私钥。
6.根据权利要求5所述的方法,所述从所述其他可信计算节点中获取集群公钥和对应的集群私钥的步骤,包括:
与所述其他可信计算节点进行远程RA认证,并建立RA通道;
通过所述RA通道,从所述其他可信计算节点获取所述集群公钥和对应的集群私钥。
7.一种数据读取方法,通过可信计算集群中任意的第二可信计算节点执行,所述方法包括:
当需要获取已持久化数据时,从数据存储平台获取第三加密数据和对应的第四加密数据;其中,所述第三加密数据为使用第二对称密钥加密所述已持久化数据后的加密数据,所述已持久化数据是所述可信计算集群中的可信计算节点中的数据,所述第四加密数据为使用集群公钥加密所述第二对称密钥后得到的加密数据,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥用于解密使用所述集群公钥加密后的数据;
使用所述集群私钥解密所述第四加密数据,得到所述第二对称密钥;
使用所述第二对称密钥解密所述第三加密数据,得到所述已持久化数据。
8.根据权利要求7所述的方法,其中,所述第二对称密钥为利用所述可信计算集群中的其他可信计算节点的硬件标识生成。
9.一种数据存储装置,部署在可信计算集群中任意的第一可信计算节点中,所述装置包括:
生成单元,配置为利用所述第一可信计算节点的硬件标识生成第一对称密钥;
第一加密单元,配置为使用所述第一对称密钥加密待持久化数据,得到第一加密数据;其中,所述待持久化数据是所述第一可信计算节点中的数据;
第二加密单元,配置为使用集群公钥加密所述第一对称密钥,得到第二加密数据;其中,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥,用于解密使用所述集群公钥加密后的数据;
存储单元,配置为将所述第一加密数据和所述第二加密数据对应地存储至数据存储平台,以使得所述可信计算集群中的其他可信计算节点,使用所述集群私钥解密所述第二加密数据,得到所述第一对称密钥,使用所述第一对称密钥解密所述第一加密数据,得到所述待持久化数据。
10.根据权利要求9所述的装置,所述生成单元,具体配置为:
当存在所述待持久化数据时,利用所述第一可信计算节点的硬件标识和预设生成规则,生成与所述待持久化数据对应的第一对称密钥。
11.根据权利要求9所述的装置,所述数据存储平台包括分布式文件系统HDFS、对象存储服务OSS和MySQL数据库中的至少一个。
12.根据权利要求9所述的装置,还包括:
确定单元,配置为采用以下操作确定集群公钥和对应的集群私钥:
在预设数据范围内随机生成待选公钥和对应的私钥;
将节点密钥信息发送至协调器;其中,所述节点密钥信息包括:所述待选公钥和所述第一可信计算节点中运行的计算任务的代码哈希;
获取所述协调器发送的针对选定的集群公钥的指示信息;其中,所述指示信息为所述协调器根据各个可信计算节点发送的节点密钥信息而确定;
利用所述指示信息确定集群公钥和对应的集群私钥。
13.根据权利要求12所述的装置,所述确定单元,利用所述指示信息确定集群公钥和对应的集群私钥时,包括:
当所述指示信息指示所述第一可信计算节点的节点密钥信息中的待选公钥为集群公钥时,将所述第一可信计算节点的待选公钥和对应的私钥确定为集群公钥和对应的集群私钥;
当所述指示信息指示其他可信计算节点的节点密钥信息中的待选公钥为集群公钥时,从所述其他可信计算节点中获取集群公钥和对应的集群私钥。
14.根据权利要求13所述的装置,所述确定单元,从所述其他可信计算节点中获取集群公钥和对应的集群私钥时,包括:
与所述其他可信计算节点进行远程RA认证,并建立RA通道;
通过所述RA通道,从所述其他可信计算节点获取所述集群公钥和对应的集群私钥。
15.一种数据读取装置,部署在可信计算集群中任意的第二可信计算节点中,所述装置包括:
获取单元,配置为当需要获取已持久化数据时,从数据存储平台获取第三加密数据和对应的第四加密数据;其中,所述第三加密数据为使用第二对称密钥加密所述已持久化数据后的加密数据,所述已持久化数据是所述可信计算集群中的可信计算节点中的数据,所述第四加密数据为使用集群公钥加密所述第二对称密钥后得到的加密数据,所述可信计算集群中的所有可信计算节点共有所述集群公钥和对应的集群私钥,所述集群私钥用于解密使用所述集群公钥加密后的数据;
第一解密单元,配置为使用所述集群私钥解密所述第四加密数据,得到所述第二对称密钥;
第二解密单元,配置为使用所述第二对称密钥解密所述第三加密数据,得到所述已持久化数据。
16.根据权利要求15所述的装置,其中,所述第二对称密钥为利用所述可信计算集群中的其他可信计算节点的硬件标识生成。
17.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-8中任一项的所述的方法。
18.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911151124.9A CN111079158B (zh) | 2019-11-21 | 2019-11-21 | 数据存储和读取的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911151124.9A CN111079158B (zh) | 2019-11-21 | 2019-11-21 | 数据存储和读取的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111079158A CN111079158A (zh) | 2020-04-28 |
CN111079158B true CN111079158B (zh) | 2022-04-12 |
Family
ID=70311687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911151124.9A Active CN111079158B (zh) | 2019-11-21 | 2019-11-21 | 数据存储和读取的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111079158B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112926051B (zh) * | 2021-03-25 | 2022-05-06 | 支付宝(杭州)信息技术有限公司 | 多方安全计算方法和装置 |
CN115544530A (zh) * | 2021-06-30 | 2022-12-30 | 阿里巴巴新加坡控股有限公司 | 密钥管理系统及其实现密钥管理的方法和计算节点 |
CN113569264A (zh) * | 2021-07-30 | 2021-10-29 | 拉扎斯网络科技(上海)有限公司 | 数据安全处理方法、装置及电子设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106027503A (zh) * | 2016-05-09 | 2016-10-12 | 浪潮集团有限公司 | 一种基于tpm的云存储数据加密方法 |
CN106549963A (zh) * | 2016-11-05 | 2017-03-29 | 北京工业大学 | 基于hdfs的安全存储系统 |
AU2016228528A1 (en) * | 2015-03-12 | 2017-09-28 | Fornetix Llc | Systems and methods for organizing devices in a policy hierarchy |
CN108667605A (zh) * | 2018-04-25 | 2018-10-16 | 拉扎斯网络科技(上海)有限公司 | 一种数据加密、解密方法和装置 |
CN108777677A (zh) * | 2018-05-18 | 2018-11-09 | 上海小蚁科技有限公司 | 云存储数据安全保护方法及装置、存储介质、摄像头、计算设备 |
CN109150502A (zh) * | 2018-09-19 | 2019-01-04 | 广州通达汽车电气股份有限公司 | 数据加密方法、装置、系统、计算机设备和存储介质 |
CN110032876A (zh) * | 2019-02-19 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点和存储介质 |
CN110046507A (zh) * | 2018-12-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 形成可信计算集群的方法及装置 |
CN110059497A (zh) * | 2019-02-19 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点和存储介质 |
CN110460563A (zh) * | 2018-05-08 | 2019-11-15 | 北京京东尚科信息技术有限公司 | 数据加密、解密方法及装置、系统、可读介质和电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8479020B2 (en) * | 2007-07-25 | 2013-07-02 | Motorola Mobility Llc | Method and apparatus for providing an asymmetric encrypted cookie for product data storage |
US9811680B2 (en) * | 2015-06-04 | 2017-11-07 | Microsoft Technology Licensing, Llc | Secure storage and sharing of data by hybrid encryption using predefined schema |
-
2019
- 2019-11-21 CN CN201911151124.9A patent/CN111079158B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2016228528A1 (en) * | 2015-03-12 | 2017-09-28 | Fornetix Llc | Systems and methods for organizing devices in a policy hierarchy |
CN106027503A (zh) * | 2016-05-09 | 2016-10-12 | 浪潮集团有限公司 | 一种基于tpm的云存储数据加密方法 |
CN106549963A (zh) * | 2016-11-05 | 2017-03-29 | 北京工业大学 | 基于hdfs的安全存储系统 |
CN108667605A (zh) * | 2018-04-25 | 2018-10-16 | 拉扎斯网络科技(上海)有限公司 | 一种数据加密、解密方法和装置 |
CN110460563A (zh) * | 2018-05-08 | 2019-11-15 | 北京京东尚科信息技术有限公司 | 数据加密、解密方法及装置、系统、可读介质和电子设备 |
CN108777677A (zh) * | 2018-05-18 | 2018-11-09 | 上海小蚁科技有限公司 | 云存储数据安全保护方法及装置、存储介质、摄像头、计算设备 |
CN109150502A (zh) * | 2018-09-19 | 2019-01-04 | 广州通达汽车电气股份有限公司 | 数据加密方法、装置、系统、计算机设备和存储介质 |
CN110046507A (zh) * | 2018-12-12 | 2019-07-23 | 阿里巴巴集团控股有限公司 | 形成可信计算集群的方法及装置 |
CN110032876A (zh) * | 2019-02-19 | 2019-07-19 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点和存储介质 |
CN110059497A (zh) * | 2019-02-19 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 区块链中实现隐私保护的方法、节点和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111079158A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110968743B (zh) | 针对隐私数据的数据存储、数据读取方法及装置 | |
CN110750803B (zh) | 数据提供和融合的方法及装置 | |
JP6547079B1 (ja) | 登録・認可方法、装置及びシステム | |
US10015159B2 (en) | Terminal authentication system, server device, and terminal authentication method | |
CN111064569B (zh) | 可信计算集群的集群密钥获取方法及装置 | |
US9525557B2 (en) | Certificate issuing system, client terminal, server device, certificate acquisition method, and certificate issuing method | |
CN111079158B (zh) | 数据存储和读取的方法及装置 | |
CN105915338B (zh) | 生成密钥的方法和系统 | |
US20130259234A1 (en) | Role-based distributed key management | |
US9917692B2 (en) | Key exchange system, key exchange method, key exchange device, control method thereof, and recording medium for storing control program | |
US20140281502A1 (en) | Method and apparatus for embedding secret information in digital certificates | |
CN106790261B (zh) | 分布式文件系统及用于其中节点间认证通信的方法 | |
EP3860036A1 (en) | Key management method, security chip, service server and information system | |
JP6548172B2 (ja) | 端末認証システム、サーバ装置、及び端末認証方法 | |
CN112887282B (zh) | 一种身份认证方法、装置、系统及电子设备 | |
CN113626802B (zh) | 一种设备密码的登录验证系统及方法 | |
CN113556230B (zh) | 数据安全传输方法、证书相关方法、服务端、系统及介质 | |
JP2018041224A (ja) | ソフトウェア更新システム | |
KR101639714B1 (ko) | 스마트 그리드 기기 인증 방법 | |
CN113259722B (zh) | 一种安全视频物联网密钥管理方法、装置和系统 | |
CN113703911B (zh) | 一种虚拟机迁移方法、装置、设备、存储介质 | |
US11570008B2 (en) | Pseudonym credential configuration method and apparatus | |
JP6501701B2 (ja) | システム、端末装置、制御方法、およびプログラム | |
JP2009290378A (ja) | 秘密鍵配布方法、秘密鍵配布システム | |
CN113791872B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40028974 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |