一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据访问方法、装置、电子设备及计算机存储介质与流程

2022-03-01 20:15:23 来源:中国专利 TAG:


1.本发明实施例涉及计算机技术领域,尤其涉及一种数据访问方法、装置、电子设备及计算机存储介质。


背景技术:

2.随着互联网技术的发展,各种应用和工具涉及到的数据以指数级增长,为方便对这些数据进行存储和管理,数据库系统应运而生。
3.数据库系统通常包括数据库和数据库管理系统,数据库可用来存储具体数据,数据库由数据库管理系统统一管理,数据的插入、修改和检索等均要通过数据库管理系统进行。随着数据库技术的发展,越来越多的数据联合处理成为了主要需求,数据联合处理打破了各个数据库间的数据独立性,由此对数据库系统的安全性提出了更高的要求。
4.目前,针对数据库系统安全的主流解决方案多基于密码学多方计算协议构造,应用密码学理论实现可证明安全的数据联合处理功能。然而,密码多方计算协议的应用涉及到多轮数据通信过程,计算过程也涉及到一定量的密码学操作。在实际应用中,特别是在大规模数据中应用时,基于密码学多方计算协议的安全数据访问解决方案将引入较大的网络带宽开销和计算开销。


技术实现要素:

5.有鉴于此,本发明实施例提供一种数据访问方案,以至少部分解决上述问题。
6.根据本发明实施例的第一方面,提供了一种数据访问方法,包括:根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象;若获得所述数据授权对象对所述待访问数据的访问授权,则执行所述数据访问请求所请求的操作,并返回操作结果。
7.根据本发明实施例的第二方面,提供了另一种数据访问方法,包括:接收对设置于可信执行环境tee中的数据库中的数据的数据访问请求;通过设置于所述tee中的数据库管理系统dbms,确定待访问数据对应的所有数据授权对象;若确定获得了所述所有数据授权对象对所述待访问数据的访问授权,则通过所述dbms执行所述数据访问请求所请求的操作,并返回操作结果。
8.根据本发明实施例的第三方面,提供了一种数据访问装置,包括:确定模块,用于根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象;访问模块,用于若获得所述数据授权对象对所述待访问数据的访问授权,则执行所述数据访问请求所请求的操作,并返回操作结果。
9.根据本发明实施例的第四方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如第一方面或第二方面所述的数据访问方法对应的操作。
10.根据本发明实施例的第五方面,提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面或第二方面所述的数据访问方法。
11.根据本发明实施例提供的数据访问方案,一方面,将数据设置于可信执行环境tee中,因tee自身具有的安全特性,即可在一定程度上提升数据的安全性;另一方面,在访问tee中的数据时,需要待访问数据的数据授权对象的访问授权才可进行访问,由此,对于非本方数据或者涉及多个数据授权对象的数据,可以通过数据授权对象对数据访问请求方的鉴定和授权,才使得各数据授权对象对应的数据才可被访问,更进一步提高了数据安全性。并且,在本发明实施例的数据访问过程中,无需反复进行与数据访问相关的安全通信和密码学多方计算,从而避免了由此产生的网络带宽开销和计算开销。
附图说明
12.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
13.图1a为根据本发明实施例一的一种数据访问方法的步骤流程图;
14.图1b为图1a所示实施例中的一种场景示例的示意图;
15.图2a为根据本发明实施例二的一种数据访问方法的步骤流程图;
16.图2b为图2a所示实施例中的一种tee环境的示意图;
17.图2c为图2a所示实施例中的另一种tee环境的示意图;
18.图3为根据本发明实施例三的一种数据访问装置的结构框图;
19.图4为根据本发明实施例四的一种数据访问装置的结构框图;
20.图5为根据本发明实施例五的一种电子设备的结构示意图。
具体实施方式
21.为了使本领域的人员更好地理解本发明实施例中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明实施例一部分实施例,而不是全部的实施例。基于本发明实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本发明实施例保护的范围。
22.下面结合本发明实施例附图进一步说明本发明实施例具体实现。
23.实施例一
24.参照图1a,示出了根据本发明实施例一的一种数据访问方法的步骤流程图。
25.本实施例的数据访问方法包括以下步骤:
26.步骤s102:根据对设置于tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象。
27.tee(trusted execution environment,可信执行环境)是通过一组硬件和软件的组合实现的安全隔离区域,以保证敏感数据及代码在该安全隔离区域内可被安全传输、存储、处理等,保证可信应用执行的机密性、完整性和数据访问权限端到端的安全,保证可信执行环境中的应用及服务免受一般软件攻击,且可以抵抗一系列明确的威胁。可信执行环
境可以通过多种技术来实现,且可实现不同的安全级别。tee相较于其外部环境,tee中的数据具有更高的安全性。本发明实施例中的数据访问操作,基于设置于tee中的数据进行。
28.一般来说,具体数据可采用数据库、或数据表、或文件等方式进行存储,一个数据库或一个数据表或一个文件可能有一个数据授权对象,也可能有多个数据授权对象,数据授权对象有对其对应的数据进行授权访问的权限,例如,允许某个用户a可对其数据进行访问,或者,不允许用户b对其数据进行访问等等。例如,数据库中存在两张数据表a和b,分别对应于不同的数据授权对象x和y;又例如,数据授权对象x和y共同对数据表a中的所有数据具有所有权,即数据表a的数据授权对象为x和y,对数据表a的操作需同时获得数据授权对象x和y的访问授权;又例如,数据授权对象x同时对数据表a和b具有所有权,不管是对数据表a的访问还是对数据表b的访问,均需获得数据授权对象x的访问授权;再例如,一张数据表c存储的数据中,第1-10000条属于数据授权对象x,第10001-20000条属于数据授权对象y,则访问第1-10000条记录时,需数据授权对象x的访问授权,而访问第10001-20000条记录时,需要数据授权对象y的访问授权,等等。
29.由此,在一种方式中,对tee中数据的数据访问请求可能涉及多个数据授权对象,也即,待访问数据对应有多个数据授权对象;在另一种方式中,可能数据访问请求方需要访问不属于自身的数据,如,用户x想要访问数据表a,但数据表a属于用户y,则此种情况下,也需要确定待访问数据对应的数据授权对象。
30.本步骤中,确定待访问数据对应的数据授权对象的具体实现可由本领域技术人员采用任意适当方式实现,如,tee中存储有其存储的数据与数据授权对象的对应关系信息,则可通过该对应关系信息确定待访问数据对应的数据授权对象;又例如,在确定了待访问数据后,可从该待访问数据的相关信息如属性信息等中查找出其对应的数据授权对象,等等。
31.此外,本发明实施例中,所述数据访问请求可以为任意适当的请求,包括但不限于:数据查询请求、数据插入请求、数据删除请求、数据修改请求、数据建立请求,等等。
32.步骤s104:若获得数据授权对象对待访问数据的访问授权,则执行数据访问请求所请求的操作,并返回操作结果。
33.本发明实施例中,若想对待访问数据进行访问,必须获得相应的数据授权对象的访问授权,以有效保证数据授权对象的数据安全性。
34.例如,用户x想要访问数据表a,但该数据表a的数据授权对象为用户y,则用户x需要获得用户y针对数据表a的访问授权后,才能对数据表a进行访问。
35.又例如,用户x发起一数据联合访问请求,该请求所需访问的数据涉及数据表a、b和c,其中,数据表a的数据授权对象为用户y,数据表b的数据授权对象为用户x自己,数据表c的数据授权对象为用户z,则,用户x需要获得用户y对数据表a的访问授权,和用户z对数据表c的访问授权后,才能进行该数据联合访问。
36.其中,访问授权的具体实现可由本领域技术人员采用适当方式实现,例如,接收到数据授权对象的授权指令或消息后,在与待访问数据对应的列表中记录授权信息或者进行授权标记,当待访问数据对应的所有数据授权对象都进行了记录或标记后,则确定所有数据授权对象均已授权,可对该待访问数据进行数据访问请求所请求的操作,进而返回相应的操作结果。
37.以下,以一个具体场景为例,对上述过程进行简单示意性说明,如图1b所示。
38.图1b所示的tee中同时设置有dbms和多张数据表1、2、3
……
、n,其中,数据表1的数据授权对象为用户x,数据表2的数据授权对象为用户y。假设,数据表1中存储有用户集合p的id和属性数据,数据表2中存储有用户集合p的id和历史购买行为数据。
39.若用户x通过其设备x发起针对用户集合p中的用户的属性数据和历史购买行为数据的数据联合查询请求,即该请求既涉及数据表1又涉及数据表2,因数据表1为用户x所具有的数据表,因此,dbms会默认已取得用户x对数据表1的访问授权;而数据表2为用户y所具有的数据表,因此,dbms会向用户y所在设备y发送请求用户y对用户x访问数据表2的访问授权请求,若用户y通过设备y返回了访问授权指令,则dbms认为用户x已获得对数据表1和数据表2的访问授权,则将执行该数据联合查询请求。然后,在获得该数据联合查询请求所请求的查询结果后,将该查询结果从tee中发送给用户x所在设备x。
40.可见,通过本实施例,一方面,将数据设置于可信执行环境tee中,因tee自身具有的安全特性,即可在一定程度上提升数据的安全性;另一方面,在访问tee中的数据时,需要待访问数据的数据授权对象的访问授权才可进行访问,由此,对于非本方数据或者涉及多个数据授权对象的数据,可以通过数据授权对象对数据访问请求方的鉴定和授权,才使得各数据授权对象对应的数据才可被访问,更进一步提高了数据安全性。并且,在本发明实施例的数据访问过程中,无需反复进行与数据访问相关的安全通信和密码学多方计算,从而避免了由此产生的网络带宽开销和计算开销。
41.本实施例的数据访问方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、pad等)和pc机等。
42.实施例二
43.参照图2a,示出了根据本发明实施例二的一种数据访问方法的步骤流程图。
44.本实施例的数据访问方法包括以下步骤:
45.步骤s202:为tee中的数据的数据授权对象分配会话密钥和数据密钥。
46.tee中可以根据本领域技术人员的需求,存储任意适当形式的数据,如以数据库或数据表或文件形式存储的数据。以数据表为例,可能一个或多个(两个及两个以上)数据表对应一个数据所有者,也可能一个数据表对应多个数据所有者,本发明实施例对此不作限制。基于此,可以为tee中存储的全部或部分数据的数据所有者分别分配会话密钥和数据密钥。其中,会话密钥用于tee内与tee外的交互过程的加密,如,对某用户向tee发送的请求的加密,或者,向某用户返回tee中的数据的加密,等等。数据密钥存储于tee内部,可用于tee中涉及的数据的加解密,如内部数据对象或组件管理的数据(该数据可以位于tee中,也可以位于tee外,还可以部分位于tee中,部分位于tee外)的加解密等等,该密钥可向其所属用户公开也可不向其所属用户公开。此外,该数据密钥还可用于针对tee涉及的数据的容灾备份,如,某tee发生异常或被销毁等时,其内部的数据对象或组件管理的数据的恢复等。
47.在一种可行方式中,可以在tee中设置dbms(数据库管理系统),以在通过tee实现数据存储安全的同时,还可通过dbms实现对数据库的有效管理,对整个数据库系统提供安全保障和支持。
48.步骤s204:根据远程证明确定对tee的安全验证通过后,在需要发送数据访问请求的发送方与所述tee之间建立可信安全通道。
49.其中,所述远程证明用于对tee进行安全验证,以证明tee中的数据或代码未被非法修改过。在具体实现时,本领域技术人员可采用适当方式对tee进行远程证明,如,基于实体标识的二进制证明或者基于属性的远程证明等。
50.在tee的安全验证通过之后,可以在需要发送数据访问请求的发送方与tee之间建立可信安全通道,以通过该通道实现该发送方与tee之间的安全通信。
51.由此,一方面有效保障了使用tee中数据的安全性,另一方面也可保障与tee通信的安全性。
52.步骤s206:通过数据访问请求的发送方与tee之间的可信安全通道,接收向所述tee发送的数据访问请求。
53.其中,所述数据访问请求使用为所述数据访问请求的发送方分配的会话密钥加密后生成。
54.如前所述,在用户需要对tee中数据进行访问时,该用户需要向tee发送数据访问请求,则可首先使用为该用户即数据访问请求的发送方分配的会话密钥对该数据访问请求进行加密,进而,通过该发送方与tee之间的可信安全通道,传输该数据访问请求。进而,tee所在设备通过该可信安全通道接收该加密后的数据访问请求。由此,可有效保障发送方与tee之间通信的安全性,也提升了tee数据交互的整体安全性。
55.步骤s208:根据对设置于tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象。
56.在一种可能方式中,数据访问请求的发送方需要访问的数据即待访问数据不是自身所有的数据,如用户a需要访问用户b的数据,此种情况下,待访问数据对应的数据授权对象不同于发送方,因此需要确定待访问数据的数据授权对象。
57.在另一种可能方式中,数据访问请求的发送方需要访问的数据属于多个数据授权对象,例如,在数据联合查询情况下,该查询可能涉及多个数据表,每个数据表具有不同的数据授权对象,其中,该发送方可能是该多个数据表对应的多个数据授权对象中的一方,也可能是与该多个数据授权对象均无关的另一方。此种情况下,待访问数据对应有多个数据授权对象。基于此,本步骤可以实现为:根据对设置于tee中的数据的数据访问请求,确定待访问数据分属于多个数据表;确定所述多个数据表对应的多个数据授权对象。通过这种方式,实现了以数据表为粒度的数据授权对象的确定。但本领域技术人员应当明了的是,当以其它形式如文件形式存储数据时,该种方式同样可实现为文件为粒度的数据授权对象的确定。或者,还可以以数据库为粒度进行数据授权对象的确定。
58.在再一种可能方式中,数据访问请求的发送方需要访问的数据虽然属于同一数据表,但该数据表分为多个部分,分属于不同的数据授权对象。与多个数据表类似,此种情况下,虽然待访问数据位于同一数据表,但也对应有多个数据授权对象。基于此,本步骤可以实现为:根据对设置于tee中的数据的数据访问请求,确定待访问数据分属于同一数据表的多个数据部分;确定所述多个数据部分对应的多个数据授权对象。通过该种方式,可以实现以数据为粒度的数据授权对象的确定,确保了对同一数据表或文件的访问的安全性。
59.此外,在前述基于tee部署dbms的情况下,数据访问请求的发送方所需要访问的数据可以为通过dbms管理的数据。此种情况下,可通过tee中的dbms实现对dbms管理的数据的有效访问和安全管理。
60.步骤s210:若获得数据授权对象对待访问数据的访问授权,则执行数据访问请求所请求的操作,并返回操作结果。
61.在一种可行方式中,tee中的数据以明文存储和管理,则此种情况下,在获得待访问数据的数据授权对象的访问授权后,即可执行数据访问请求所请求的操作,即,对tee中的待访问数据通过明文方式执行数据访问请求所请求的操作。该种方式下,数据安全由tee保证,使得数据访问具有较高的数据访问的速度和效率。
62.在另一种可行方式中,tee中的数据为经过加密后的数据,则此种情况下,若获得数据授权对象对待访问数据的访问授权,则获取数据授权对象对应的数据密钥;根据数据密钥对加密存储的待访问数据进行解密,并在解密后执行数据访问请求所请求的操作。此种方式下,数据得到了双重安全性保证,也即,在tee提供的安全环境的基础上,再经过数据加密,进一步提高了数据的安全性。因此,在进行数据访问时,需要先对待访问数据解密,再执行数据访问请求所请求的操作。本发明实施例中,对tee中数据的加密和解密均由该部分数据对应的数据授权对象的数据密钥实现,在加密时,可根据数据授权对象的数据密钥对数据进行加密,解密时则再利用该数据授权对象的数据密钥进行解密,在保障数据安全性的同时,简化了数据密钥及数据加解密的实现。
63.需要说明的是,上述两种方式以待访问数据全部位于tee内部为例,但在实际应用中,有可能待访问的数据部分位于tee内部,部分位于tee外部;或者,待访问的数据全部位于tee外部。则此种情况下,在执行数据访问请求所请求的操作之前,还可以判断待访问数据是否全部存储于tee中;若是,则执行数据访问请求所请求的操作;若否,则在将待访问数据中,存储于tee之外的数据部分加载入tee中后,执行数据访问请求所请求的操作,其中,存储于tee之外的数据部分为根据所述数据授权对象对应的数据密钥加密后的数据。将数据以数据授权对象的数据密钥加密后的形式存储于tee外部,在需要时再调入tee内部的方式,能够在保证数据安全性的基础上,大大拓展本发明实施例的数据访问方案的适用场景和数据适用范围,且提高了tee利用效率。
64.例如,如图2b中所示,db文件以加密形式(如根据该db文件对应的一个或多个数据授权对象的数据密钥对其进行加密)存储于某tee外部的设备中,当tee接收到数据访问请求,确定需要该db文件中的数据时,将该db文件加载入tee内部,并根据该db文件对应的一个或多个数据授权对象的数据密钥对其进行解密以便于操作。图2b中的其它部分可参照图2c中的描述,在此暂不详述。需要说明的是,判断待访问数据是否全部存储于tee中的操作可以在获得所述数据授权对象对待访问数据的访问授权之后进行,以尽可能减少数据交互,节约系统功耗;但也可以在获得所述数据授权对象对所述待访问数据的访问授权之前进行,以提高对数据访问请求的处理效率。
65.可选地,当数据授权对象包括多个时,所述根据数据密钥对加密存储的待访问数据进行解密,包括:对多个数据授权对象对应的多个数据密钥进行异或操作,生成数据解密密钥;使用数据解密密钥对加密存储的待访问数据进行解密。通过异或操作生成数据解密密钥,相较于其它根据多个数据密钥生成数据解密密钥的方式,实现更为简单,密钥也相对比较简练。但不限于此,其它密钥生成算法和密钥生成方式也同样适用。
66.此外,本步骤中,在返回操作结果时,可基于前述建立的可信安全通道和为所述发送方分配的会话密钥,在使用所述会话密钥对所述操作结果进行加密后,通过所述可信安
全通道向所述数据访问请求的发送方返回加密后的操作结果。从而,以安全方式与数据访问请求的发送方进行操作结果的数据传递。
67.通过上述过程,实现了数据访问请求的发送方与tee之间的安全数据访问。在一种可选方式中,基于上述过程,还可执行下述可选步骤。
68.步骤s212:根据请求,更新tee中的数据的数据授权对象。
69.在一种可行方式中,可根据对tee中的部分数据的数据更新请求,更新tee中的所述部分数据的数据授权对象。这种方式中,可对tee中,因数据变动而导致的数据授权对象的变动进行及时更新。例如,若在tee中增加了数据表,而该数据表不属于tee中原有数据的数据授权对象,则相应地需增加该数据表对应的数据授权对象。又例如,若在tee中删除了数据表,且该数据表的数据授权对象在tee中也不存在其它数据,则可删除该数据授权对象,等等。
70.在另一种可行方式中,可根据对tee中的部分数据的数据授权对象的更新请求,更新tee中的部分数据的数据授权对象。这种方式中,可应tee中的原数据授权对象的请求,将某些数据的所有者变更为新的数据授权对象,或者,为某部分数据增加新的数据授权对象。例如,数据表a的原数据授权对象为用户x,若用户x发起将数据表a的所有者变更为用户y的请求,则可根据该请求,变更数据表a的数据授权对象。再例如,数据表a的原数据授权对象为用户x,若用户x发起为数据表a增加新的数据授权对象如用户y,则根据该请求,可将数据表a的数据授权对象变更为用户x和y。
71.在tee中的数据以加密形式存储的情形下,数据授权对象的变动也将引发数据的重新加密。
72.以下,首先对tee中数据的加密过程进行说明。
73.例如,对于tee中已存储的数据,可以为tee中存储的多部分数据(tee中的一部分或全部数据)确定对应的多个数据授权对象,并为确定的多个数据授权对象分配数据密钥;使用与各部分数据对应的数据授权对象的数据密钥,分别对各部分数据进行加密。
74.通常情况下,tee中的数据可能对应有多个数据授权对象,例如,在tee中设置有dbms的情况下,dbms管理多张数据表,所述多张数据表可以对应多个数据授权对象,如前所述,每个数据授权对象都分配有相应的数据密钥,通过该数据密钥对相对应的数据进行加解密,以提升数据的安全性。
75.在此基础上,根据对tee中的部分数据的数据更新请求,更新tee中的部分数据的数据授权对象可以包括:接收到对tee中的部分数据的数据更新请求;根据数据更新请求更新所述部分数据,若确定更新后的所述部分数据的数据授权对象变更,则为新的数据授权对象分配数据密钥,或者,销毁原数据授权对象的数据密钥;使用更新后的所述部分数据的数据授权对象的数据密钥,对进行了更新后的所述部分数据进行数据加密。由此,实现了基于数据变动的数据授权对象的及时更新和数据安全的及时更新。
76.在此基础上,根据对tee中的部分数据的数据授权对象的更新请求,更新tee中的部分数据的数据授权对象可以包括:接收到对tee中的部分数据对应的已存在的数据授权对象中的至少一方的更新请求;根据所述更新请求,对所述部分数据对应的数据授权对象进行更新,并为更新后的数据授权对象分配数据密钥;使用更新后的所述部分数据的数据授权对象的数据密钥,对所述部分数据进行数据加密。由此,实现了基于用户请求的数据授
权对象的及时更新和数据安全的及时更新。
77.在一种可行方式中,上述使用与各部分数据对应的数据授权对象的数据密钥,分别对各部分数据进行加密可以实现为:分别对与各部分数据对应的数据授权对象的数据密钥进行异或操作,生成各部分数据对应的数据加密密钥;使用所述数据加密密钥,对各部分数据进行加密。相较于其它数据加密密钥生成方式,通过异或操作的方式实现简单,简化了数据加密密钥的生成和实现成本。
78.除此之外,在某些情况下,可能需要变更数据所在的tee环境,例如,原tee环境出现异常或被销毁,或者根据数据授权对象的需求调整数据所在tee,均可造成数据所在tee的变更。此种情况下,可以获取从原tee中导出的加密数据,并为所述加密数据创建新的tee;获取所述加密数据对应的数据授权对象的数据密钥;使用所述数据密钥对所述加密数据进行解密处理,并将解密处理后的数据存储入所述新的tee。其中,使用所述数据密钥对所述加密数据进行解密处理时,若导出的加密数据对应一个数据授权对象,则可直接根据该数据授权对象的数据密钥对所述加密数据进行解密处理;若导出的加密数据对应有多个数据授权对象,则可参照前述生成数据加密密钥的方式,对导出的加密数据对应的多个数据授权对象的数据密钥进行异或操作,生成数据解密密钥,使用该数据解密密钥对导出的所述加密数据进行解密处理。通过这种方式,即使原tee被销毁,或者原tee中的数据需要变更到新的tee中,该部分数据仍以加密形式存储,非该部分数据的所有者仍然无法访问该部分数据,从而保证了即使出现tee异常或数据tee环境的变更,也能有效保证数据的安全性。
79.以下,以一个具体实例的形式,对上述过程进行示例性说明。
80.图2c示出了一种tee环境的示意图,如图2c中所示,该tee中部署有dbms,此外,db文件也可部署于与dbms相同的tee中,即dbms和db文件位于同一tee中,dbms负责对db文件及其中的数据进行管理。在具体实现时,可以在拥有tee的服务端创建tee,并将dbms部署至tee中。
81.如图2c中所示,在需要与tee中存储的数据交互时,用户pi可以先根据需要进行配置数据源的操作,以使后续可顺利使用tee中的数据;在配置完数据源后,用户pi可以通过客户端即图2c中的pi客户端与tee数据服务集群主机中的tee(后文简称tee)进行远程证明,类似地,其它用户如用户pj也可在配置数据源后,通过pj客户端与tee进行远程证明。为便于描述,本示例中设定配置数据源的用户,如pi和pj,均为tee中数据的所有者,即本示例中的数据授权对象。但需要说明的是,数据授权对象不仅可以实现为数据所有者,也可实现为其它形式,如可进行授权的相关实体等。
82.基于此,多个数据授权对象(如pi和pj)通过远程证明对tee进行安全验证,并在安全验证通过后,与tee建立可信安全通道。本示例中,以在建立可信安全通道时,建立会话密钥和数据密钥分量ki(即数据密钥)为示例,但本领域技术人员应当明了的是,在实际应用中,可在使用会话密钥和数据密钥分量ki之前的任意适当时刻,建立会话密钥和数据密钥分量ki。
83.任一数据授权对象如pi可建立数据查询项目(由一系列数据查询语句如sql语句组成的数据查询),其中,数据查询项目可以以项目整体或者分部分上传至tee中。例如,在远程证明后,使用会话密钥对待上传的数据(如部分或全部数据查询项目的数据)进行
加密,形成密文数据,并通过pi客户端与tee之间的可信安全通道上传所述密文数据。该密文数据上传至tee后,由tee(tee负责密钥分配,并可保存会话密钥以通过该会话密钥进行后续解密(对称加密情况);当然,也可以保存与会话密钥对应的解密密钥,以进行后续解密(非对称加密情况))进行解密,并对上传的数据查询项目进行项目管理。
84.tee还可以为该数据查询项目创建数据库加密密钥k
db
,并用pi的数据密钥分量ki密封k
db
,即令k=ki,并执行密封操作sealk(k
db
)。其中,具体加密算法的实现可由本领域技术人员根据实际需求采用任意适当的加密算法实现。
85.此外,任一数据授权对象如pi可将其他数据授权对象如pj添加至数据查询项目中,tee应用两个数据授权对象的数据密钥分量ki,kj重新密封k
db
,即令并执行密封操作sealk(k
db
)。其中,表示异或操作。
86.任一数据授权对象如pi可以继续添加其他数据授权对象,假定数据查询项目中共添加了n个数据授权对象,各个数据授权对象pm的密钥分量为km(其中,1《=m《=n),则有密封为sealk(k
db
)。
87.一方面,数据查询项目中的任一数据授权对象如pi可以应用sql数据定义语言(data definition language,ddl),通过可信安全通道在tee的dbms中创建数据库、创建数据表、上传原始数据。
88.另一方面,数据查询项目中的任一数据授权对象如pi可通过可信安全通道向tee提交用sql数据操作语言(data manipulation language,dml)描述的sql查询语句qi。数据查询项目中的所有数据授权对象均需要对sql查询语句qi进行访问授权。
89.例如,数据查询项目中的任一数据授权对象如pi提交了qi的查询请求(如图2c中所示的select count(*)from ti,tj where ti.id=tj.id),如果所有数据授权对象均对qi所要访问的数据(即待访问数据)进行了访问授权,则tee执行qi查询,并将查询结果返回给pi,否则tee拒绝查询。
90.此外,拥有tee的服务端可以销毁其tee,但数据库中的数据仍以加密形式存储在服务端。当其他拥有tee的服务端创建tee后,数据查询项目中的所有数据授权对象可应用各自的数据密钥分量和加密算法sealk(k
db
)共同恢复出数据库加密密钥k
db
。例如,在对称加密情形下,可通过获得一个密钥,再使用该密钥和加密算法sealk(k
db
)解密出数据库加密密钥k
db
。由此,在新创建的tee中,该多个数据授权对象可恢复该数据库中的数据,并对其进行数据访问。
91.由上可见,当将本发明实施例的方案应用于数据库场景,即tee中设置有数据库系统(包括dbms及相关数据文件如数据表等)时,当tee所在设备接收到对设置于tee中的数据库中的数据的数据访问请求后,可以通过设置于所述tee中的dbms,确定待访问数据对应的所有数据授权对象;若确定获得了待访问数据对应的所有数据授权对象对待访问数据的访问授权,则通过dbms执行所述数据访问请求所请求的操作,并返回操作结果。也即,前述实施例中的数据访问过程均可适用于tee中设置有数据库系统的场景,相应的访问操作可参照前述实施例中相关部分的描述,在此不再赘述。
92.通过本实施例,第一方面,上述基于tee的多个数据授权对象的安全数据查询系统
可分为客户端和服务端,服务端拥有tee即可,客户端不需要tee的支持,最大限度地降低客户端的部署难度和安全要求;第二方面,多个数据授权对象通过客户端向服务端的tee发起远程证明,通过后直接与tee建立可信安全通道,并通过此可信安全通道向tee传入数据、发起访问授权进行审批、提交查询请求、获取查询结果。所有请求均通过可信安全信道直接提交给tee,最大限度地缩小了攻击面;第三方面,当某个数据访问请求的发送方期望执行数据查询时,将数据查询请求提交给服务端的tee,在明确收到数据表所属数据授权对象的访问授权后,tee在可信环境中执行数据查询,并通过可信安全通道将查询结果返回给数据访问请求的发送方,通过tee实现了多个数据授权对象对数据的授权访问功能;第四方面,若数据在tee中采用明文方式存储,则在未经过数据授权对象明确授权的条件下,数据、中间计算结果仅在tee中才处于明文状态,处于tee外部的数据均需经过tee的加密处理。这样,攻击者即使可以完全控制服务端,也无法在非授权条件下获取数据查询过程中的任何额外数据,实现了数据可用不可见。从而,不仅提高了数据安全性,也避免了产生额外的网络带宽开销和计算开销。
93.本实施例的数据访问方法可以由任意适当的具有数据处理能力的电子设备执行,包括但不限于:服务器、移动终端(如手机、pad等)和pc机等。
94.实施例三
95.参照图3,示出了根据本发明实施例三的一种数据访问装置的结构框图。
96.本实施例的数据访问装置包括:确定模块302,用于根据对设置于tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象;访问模块304,用于若获得所述数据授权对象对所述待访问数据的访问授权,则执行所述数据访问请求所请求的操作,并返回操作结果。
97.本实施例的数据访问装置用于实现前述多个方法实施例中相应的数据访问方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的数据访问装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
98.实施例四
99.参照图4,示出了根据本发明实施例四的一种数据访问装置的结构框图。
100.本实施例的数据访问装置包括:确定模块402,用于根据对设置于tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象;访问模块404,用于若获得所述数据授权对象对所述待访问数据的访问授权,则执行所述数据访问请求所请求的操作,并返回操作结果。
101.可选地,访问模块404,用于若获得所述数据授权对象对所述待访问数据的访问授权,则对所述tee中的所述待访问数据通过明文方式执行所述数据访问请求所请求的操作;或者,若获得所述数据授权对象对所述待访问数据的访问授权,获取所述数据授权对象对应的数据密钥;根据所述数据密钥对加密存储的待访问数据进行解密,并在解密后执行所述数据访问请求所请求的操作,并返回操作结果。
102.可选地,访问模块404,还用于在执行所述数据访问请求所请求的操作之前,判断所述待访问数据是否全部存储于所述tee中;若是,则执行所述数据访问请求所请求的操作;或者,若否,则在将所述待访问数据中,存储于所述tee之外的数据部分加载入所述tee中后,执行所述数据访问请求所请求的操作,其中,所述存储于所述tee之外的数据部分为
根据所述数据授权对象对应的数据密钥加密后的数据。
103.可选地,所述数据授权对象包括多个;访问模块404在根据所述数据密钥对加密存储的待访问数据进行解密时:对多个所述数据授权对象对应的多个数据密钥进行异或操作,生成数据解密密钥;使用所述数据解密密钥对加密存储的待访问数据进行解密。
104.可选地,确定模块402,用于根据对设置于tee中的数据的数据访问请求,确定待访问数据分属于多个数据表;确定所述多个数据表对应的多个数据授权对象。
105.可选地,确定模块402,用于根据对设置于tee中的数据的数据访问请求,确定待访问数据分属于同一数据表的多个数据部分;确定所述多个数据部分对应的多个数据授权对象。
106.可选地,本实施例的数据访问装置还包括:会话模块406,用于在所述确定模块402根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象之前,通过所述数据访问请求的发送方与所述tee之间的可信安全通道,接收向所述tee发送的所述数据访问请求,其中,所述数据访问请求使用为所述发送方分配的会话密钥加密后生成。
107.可选地,本实施例的数据访问装置还包括:建立模块408,用于在所述会话模块406通过所述数据访问请求的发送方与所述tee之间的可信安全通道,接收向所述tee发送加密后的所述数据访问请之前,根据远程证明确定对所述tee的安全验证通过后,在所述发送方与所述tee之间建立所述可信安全通道。
108.可选地,所述访问模块404在返回操作结果时:使用所述会话密钥对所述操作结果进行加密,并通过所述可信安全通道向所述发送方返回加密后的所述操作结果。
109.可选地,本实施例的数据访问装置还包括:分配模块410,用于在所述确定模块402根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象之前,为所述tee中存储的多部分数据确定对应的多个数据授权对象,并为确定的所述多个数据授权对象分配数据密钥;使用与各部分数据对应的数据授权对象的数据密钥,分别对各部分数据进行加密。
110.可选地,本实施例的数据访问装置还包括:第一更新模块412,用于根据对所述tee中的部分数据的数据更新请求,更新所述tee中的所述部分数据的数据授权对象;或者,第二更新模块414,用于根据对所述tee中的部分数据的数据授权对象的更新请求,更新所述tee中的部分数据的数据授权对象。
111.可选地,第一更新模块412,用于接收到对所述tee中的部分数据的数据更新请求;根据所述数据更新请求更新所述部分数据,若确定更新后的所述部分数据的数据授权对象变更,则为新的数据授权对象分配数据密钥,或者,销毁原数据授权对象的数据密钥;使用更新后的所述部分数据的数据授权对象的数据密钥,对进行了更新后的所述部分数据进行数据加密。
112.可选地,第二更新模块414,用于接收到所述部分数据对应的已存在的数据授权对象中的至少一方的更新请求;根据所述更新请求,对所述部分数据对应的数据授权对象进行更新,并为更新后的数据授权对象分配数据密钥;使用更新后的所述部分数据的数据授权对象的数据密钥,对所述部分数据进行数据加密。
113.可选地,分配模块410在使用与各部分数据对应的数据授权对象的数据密钥,分别
对各部分数据进行加密时:分别对与各部分数据对应的数据授权对象的数据密钥进行异或操作,生成各部分数据对应的数据加密密钥;使用所述数据加密密钥,对各部分数据进行加密。
114.可选地,本实施例的数据访问装置还包括:恢复模块416,用于获取从原tee中导出的加密数据,并为所述加密数据创建新的tee;获取所述加密数据对应的数据授权对象的数据密钥;使用所述数据密钥对所述加密数据进行解密处理,并将解密处理后的数据存储入所述新的tee。
115.可选地,所述tee中设置于数据库管理系统dbms,所述待访问数据为通过所述dbms管理的数据。
116.而当将本实施例的数据访问装置应用于tee中设置于数据库系统的场景中时,确定模块402,用于接收对设置于tee中的数据库中的数据的数据访问请求;并通过设置于所述tee中的dbms,确定待访问数据对应的所有数据授权对象;访问模块404,用于若确定获得了所述所有数据授权对象对所述待访问数据的访问授权,则通过所述dbms执行所述数据访问请求所请求的操作,并返回操作结果。
117.本实施例的数据访问装置用于实现前述多个方法实施例中相应的数据访问方法,并具有相应的方法实施例的有益效果,在此不再赘述。此外,本实施例的数据访问装置中的各个模块的功能实现均可参照前述方法实施例中的相应部分的描述,在此亦不再赘述。
118.实施例五
119.参照图5,示出了根据本发明实施例五的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
120.如图5所示,该电子设备可以包括:处理器(processor)502、通信接口(communications interface)504、存储器(memory)506、以及通信总线508。
121.其中:
122.处理器502、通信接口504、以及存储器506通过通信总线508完成相互间的通信。
123.通信接口504,用于与其它电子设备或服务端进行通信。
124.处理器502,用于执行程序510,具体可以执行上述数据访问方法实施例中的相关步骤。
125.具体地,程序510可以包括程序代码,该程序代码包括计算机操作指令。
126.处理器502可能是中央处理器cpu,或者是特定集成电路asic(application specific integrated circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。智能设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个cpu;也可以是不同类型的处理器,如一个或多个cpu以及一个或多个asic。
127.存储器506,用于存放程序510。存储器506可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
128.程序510具体可以用于使得处理器502执行以下操作:根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象;若获得所述数据授权对象对所述待访问数据的访问授权,则执行所述数据访问请求所请求的操作,并返回操作结果。
129.在一种可选的实施方式中,程序510还用于使得处理器502在执行所述数据访问请
求所请求的操作时:对所述tee中的所述待访问数据通过明文方式执行所述数据访问请求所请求的操作;或者,获取所述数据授权对象对应的数据密钥;根据所述数据密钥对加密存储的待访问数据进行解密,并在解密后执行所述数据访问请求所请求的操作。
130.在一种可选的实施方式中,程序510还用于使得处理器502在所述执行所述数据访问请求所请求的操作之前,判断所述待访问数据是否全部存储于所述tee中;若是,则执行所述数据访问请求所请求的操作;或者,若否,则在将所述待访问数据中,存储于所述tee之外的数据部分加载入所述tee中后,执行所述数据访问请求所请求的操作,其中,所述存储于所述tee之外的数据部分为根据所述数据授权对象对应的数据密钥加密后的数据。
131.在一种可选的实施方式中,所述数据授权对象包括多个;程序510还用于使得处理器502在根据所述数据密钥对加密存储的待访问数据进行解密时:对多个所述数据授权对象对应的多个数据密钥进行异或操作,生成数据解密密钥;使用所述数据解密密钥对加密存储的待访问数据进行解密。
132.在一种可选的实施方式中,程序510还用于使得处理器502在根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象时:根据对设置于tee中的数据的数据访问请求,确定待访问数据分属于多个数据表;确定所述多个数据表对应的多个数据授权对象。
133.在一种可选的实施方式中,程序510还用于使得处理器502在所述根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象时:根据对设置于tee中的数据的数据访问请求,确定待访问数据分属于同一数据表的多个数据部分;确定所述多个数据部分对应的多个数据授权对象。
134.在一种可选的实施方式中,程序510还用于使得处理器502在根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象之前,使用为数据访问请求的发送方分配的会话密钥加密所述数据访问请求;通过所述发送方与所述tee之间的可信安全通道,向所述tee发送加密后的所述数据访问请求。
135.在一种可选的实施方式中,程序510还用于使得处理器502在通过所述发送方与所述tee之间的可信安全通道,向所述tee发送加密后的所述数据访问请之前,根据远程证明确定对所述tee的安全验证通过后,在所述发送方与所述tee之间建立所述可信安全通道。
136.在一种可选的实施方式中,程序510还用于使得处理器502在返回操作结果时:使用所述会话密钥对所述操作结果进行加密,并通过所述可信安全通道向所述发送方返回加密后的所述操作结果。
137.在一种可选的实施方式中,程序510还用于使得处理器502在根据对设置于可信执行环境tee中的数据的数据访问请求,确定待访问数据对应的数据授权对象之前,为所述tee中存储的多部分数据确定对应的多个数据授权对象,并为确定的所述多个数据授权对象分配数据密钥;使用与各部分数据对应的数据授权对象的数据密钥,分别对各部分数据进行加密。
138.在一种可选的实施方式中,程序510还用于使得处理器502根据对所述tee中的部分数据的数据更新请求,更新所述tee中的所述部分数据的数据授权对象;或者,根据对所述tee中的部分数据的数据授权对象的更新请求,更新所述tee中的部分数据的数据授权对象。
139.在一种可选的实施方式中,程序510还用于使得处理器502在根据对所述tee中的部分数据的数据更新请求,更新所述tee中的部分数据的数据授权对象时:接收到对所述tee中的部分数据的数据更新请求;根据所述数据更新请求更新所述部分数据,若确定更新后的所述部分数据的数据授权对象变更,则为新的数据授权对象分配数据密钥,或者,销毁原数据授权对象的数据密钥;使用更新后的所述部分数据的数据授权对象的数据密钥,对进行了更新后的所述部分数据进行数据加密。
140.在一种可选的实施方式中,程序510还用于使得处理器502在根据对所述tee中的部分数据的数据授权对象的更新请求,更新所述tee中的部分数据的数据授权对象时:接收到所述部分数据对应的已存在的数据授权对象中的至少一方的更新请求;根据所述更新请求,对所述部分数据对应的数据授权对象进行更新,并为更新后的数据授权对象分配数据密钥;使用更新后的所述部分数据的数据授权对象的数据密钥,对所述部分数据进行数据加密。
141.在一种可选的实施方式中,程序510还用于使得处理器502在使用与各部分数据对应的数据授权对象的数据密钥,分别对各部分数据进行加密时:分别对与各部分数据对应的数据授权对象的数据密钥进行异或操作,生成各部分数据对应的数据加密密钥;使用所述数据加密密钥,对各部分数据进行加密。
142.在一种可选的实施方式中,程序510还用于使得处理器502获取从原tee中导出的加密数据,并为所述加密数据创建新的tee;获取所述加密数据对应的数据授权对象的数据密钥;使用所述数据密钥对所述加密数据进行解密处理,并将解密处理后的数据存储入所述新的tee。
143.在一种可选的实施方式中,所述tee中设置于数据库管理系统dbms,所述待访问数据为通过所述dbms管理的数据。
144.程序510中各步骤的具体实现可以参见上述数据访问方法实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
145.通过本实施例的电子设备,一方面,将数据设置于可信执行环境tee中,因tee自身具有的安全特性,即可在一定程度上提升数据的安全性;另一方面,在访问tee中的数据时,需要待访问数据的数据授权对象的访问授权才可进行访问,由此,对于非本方数据或者涉及多个数据授权对象的数据,可以通过数据授权对象对数据访问请求方的鉴定和授权,才使得各数据授权对象对应的数据才可被访问,更进一步提高了数据安全性。并且,在本发明实施例的数据访问过程中,无需反复进行与数据访问相关的安全通信和密码学多方计算,从而避免了由此产生的网络带宽开销和计算开销。
146.需要指出,根据实施的需要,可将本发明实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本发明实施例的目的。
147.上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如cd rom、ram、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器可读介质中并将被存储在本地记录介质
中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如asic或fpga)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,ram、rom、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的数据访问方法。此外,当通用计算机访问用于实现在此示出的数据访问方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的数据访问方法的专用计算机。
148.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
149.以上实施方式仅用于说明本发明实施例,而并非对本发明实施例的限制,有关技术领域的普通技术人员,在不脱离本发明实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明实施例的范畴,本发明实施例的专利保护范围应由权利要求限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献