基于哈希的可信执行环境下的加密数据库连接查询优化方法技术

技术编号:37401825 阅读:14 留言:0更新日期:2023-04-30 09:29
本发明专利技术公开了一种基于哈希的可信执行环境下的加密数据库连接查询优化方法,包括:数据提供者为数据表中每行中的待加密数据选择安全级别,根据安全级别确定该行的待加密数据的哈希值;从密钥管理器获取预设密钥,并确定该行的待加密数据的密文,将密文、安全级别和哈希值存储至数据表后将数据表存储至数据库,将密钥与该行和数据表映射关系保存至密钥管理器;服务器代理根据查询请求从数据库中查询安全级别后确定待查询数据的哈希值;根据该哈希值对相应数据表进行查询,得到查询结果;可信执行环境组件基于查询结果中的密文获取密钥,根据获取的密钥、密文和待查询数据得到目标信息;服务器代理将查询结果中与目标信息对应的数据发送至客户端。应的数据发送至客户端。应的数据发送至客户端。

【技术实现步骤摘要】
基于哈希的可信执行环境下的加密数据库连接查询优化方法


[0001]本专利技术属于数据安全
,具体涉及一种基于哈希的可信执行环境下的加密数据库连接查询优化方法。

技术介绍

[0002]随着云计算领域的发展,越来越多的中小型企业选择使用云数据库来降低设备和运维成本,然而,由于开放的部署环境和复杂的网络拓扑结构,相比传统数据库,云数据库面临着更严重、更复杂的攻击场景。对于数据存储和传输过程中的安全保护,已经有了诸多受到业界认可的国内外安全标准和算法,比如AES、国密及TLS等。这些技术的使用可以极大降低数据在静态存储及传输时的风险。
[0003]但是对于数据运行时的保护,却仍存在很大的局限性。目前,相关技术中存在基于密码学的技术方案和基于可信执行环境的技术方案。对于基于纯密码学技术实现的加密数据库,如CryptDB,根据加密算法的强度,其存在的问题也不同;例如,采用确定性加密算法时,明文数据和密文数据一一对应,存在数据访问模式泄露和数据频率信息泄露的风险;而随机性加密算法不支持在密文上进行任何计算,无法提供密文数据检索的功能;属性保护算法和全同态加密算法可以支持在密文上进行一定的计算,但同样存在支持的运算符有限和计算开销过大的问题。对于基于可信执行环境实现的加密数据库,其两种不同实现方式分别存在不同的缺点;例如,基于安全数据库系统的方式,如EnclaveDB,需要将整个数据库内核的可信部分移植到可信执行环境,工程量巨大,且可信计算基很大,容易面临更多的攻击,同时Enclave内存空间受限,导致在大数据场景下无法使用;而基于Enclave安全计算的方式,如AzureDB,没有内存空间大小的限制,Enclave中的可信函数代码量也比较小,但是需要在执行SQL查询时多次同Enclave进行交互,存在巨大的上下文切换以及数据扇入扇出enclave的开销。
[0004]显然,上述方案均存在性能差的问题,并且,对于较为复杂的查询,可信执行环境存在数据拷贝的开销,而纯加密算法存在数据加解密的开销;也就是说,相关技术中的加密数据库查询方案,面临着只能在安全性和查询性能中二选一的问题。

技术实现思路

[0005]为了解决相关技术中存在的上述问题,本专利技术提供了一种基于哈希的可信执行环境下的加密数据库连接查询优化方法。本专利技术要解决的技术问题通过以下技术方案实现:
[0006]本专利技术提供一种基于哈希的可信执行环境下的加密数据库连接查询优化方法,包括:
[0007]数据提供者为数据表中每个行中的待加密数据,从多个预设安全级别中选出安全级别,根据所述安全级别和所述数据表的条目信息,确定该行的待加密数据的哈希值;所述多个预设安全级别的安全性逐级增加,根据所述多个预设安全级别确定出的多个哈希值的哈希空间逐级减小;
[0008]数据提供者从密钥管理器中获取预设密钥,并对该行的待加密数据加密,得到密文,将所述密文、所述安全级别和所述哈希值存储至该行中,得到加密的数据表,将所述数据表的信息、所述加密的数据表、该行的名称、所述密文、所述安全级别和所述哈希值存储至数据库,将所述密钥与该行和所述数据表映射关系保存至所述密钥管理器;
[0009]客户端向服务器代理发送包含待查询的数据表名称、待查询的行名称和待查询数据的查询请求;
[0010]服务器代理根据所述查询请求从所述数据库中查询出安全级别和条目信息,根据查询出的安全级别和条目信息确定所述待查询数据的哈希值;
[0011]所述服务器代理根据所述待查询数据的哈希值和所述待查询的数据表进行查询,并将得到的查询结果中的查询密文和所述查询密文的属性信息,发送至可信执行环境组件;
[0012]所述可信执行环境组件基于所述属性信息从所述密钥管理器获取密钥,根据获取的密钥、所述查询密文和所述待查询的数据,得到目标信息并发送至服务器代理;
[0013]所述服务器代理将所述查询结果中与所述目标信息对应的数据发送至所述客户端。
[0014]本专利技术具有如下有益技术效果:
[0015]通过本专利技术提供的查询优化方法,能够在数据库运行时通过调整数据哈希值的哈希空间(长度)来动态控制系统在安全性与性能上的侧重程度,以适应不同敏感级别的密文数据对安全性和检索性能的要求,并且,基于哈希算法为密文数据附加对应的哈希值,通过哈希值对密文数据进行初步检索,从而实现了利用哈希冲突隐藏数据访问模式的效果,随后通过可信执行环境执行精确检索,过滤掉服务器代理得到的查询结果中的假阳性查询结果,既能使数据在解密处理时的运行是安全的,还能同时兼顾安全性和查询性能。
[0016]以下将结合附图及实施例对本专利技术做进一步详细说明。
附图说明
[0017]图1为本专利技术实施例提供的一种基于哈希的可信执行环境下的加密数据库连接查询优化方法的一个可选的流程图;
[0018]图2为本专利技术实施例提供的示例性的基于哈希的可信执行环境下的加密数据库连接查询系统的一个框架示意图;
[0019]图3为本专利技术实施例提供的示例性的基于哈希的可信执行环境下的加密数据库连接查询系统的另一个框架示意图。
具体实施方式
[0020]下面结合具体实施例对本专利技术做进一步详细的描述,但本专利技术的实施方式不限于此。
[0021]在本专利技术的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本专利技术的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0022]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本专利技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域的技术人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
[0023]尽管在此结合各实施例对本专利技术进行了描述,然而,在实施所要求保护的本专利技术过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
[0024]图1是本专利技术实施例提供的基于哈希的可信执行环境下的加密数据库连接查询优化方法的一个可选的流程图。
[0025]在一些实施例中,本专利技术提供的基于哈希的可信执行环境下的加密数据库连接查询优化方法可以应用于如图2所示的基于哈希的可信执行环境下的加密数据本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于哈希的可信执行环境下的加密数据库连接查询优化方法,其特征在于,包括:数据提供者为数据表中每个行中的待加密数据,从多个预设安全级别中选出安全级别,根据所述安全级别和所述数据表的条目信息,确定该行的待加密数据的哈希值;所述多个预设安全级别的安全性逐级增加,根据所述多个预设安全级别确定出的多个哈希值的哈希空间逐级减小;数据提供者从密钥管理器中获取预设密钥,并对该行的待加密数据加密,得到密文,将所述密文、所述安全级别和所述哈希值存储至该行中,得到加密的数据表,将所述数据表的信息、所述加密的数据表、该行的名称、所述密文、所述安全级别和所述哈希值存储至数据库,将所述密钥与该行和所述数据表映射关系保存至所述密钥管理器;客户端向服务器代理发送包含待查询的数据表名称、待查询的行名称和待查询数据的查询请求;服务器代理根据所述查询请求从所述数据库中查询出安全级别和条目信息,根据查询出的安全级别和条目信息确定所述待查询数据的哈希值;所述服务器代理根据所述待查询数据的哈希值和所述待查询的数据表进行查询,并将得到的查询结果中的查询密文和所述查询密文的属性信息,发送至可信执行环境组件;所述可信执行环境组件基于所述属性信息从所述密钥管理器获取密钥,根据获取的密钥、所述查询密文和所述待查询的数据,得到目标信息并发送至服务器代理;所述服务器代理将所述查询结果中与所述目标信息对应的数据发送至所述客户端。2.根据权利要求1所述的一种基于哈希的可信执行环境下的加密数据库连接查询优化方法,其特征在于,所述数据表的条目信息为所述数据表包含的行数;每个安全级别对应一种计算方式,不同安全级别对应的计算方式不同;所述根据所述安全级别和所述数据表的条目信息,确定该行的待加密数据的哈希值,包括:对该行的待加密数据进行哈希运算,得到初始哈希值;根据所述安全级别,确定出计算方式;采用确定出的计算方式,对所述初始哈希值和所述行数进行计算,得到该行的待加密数据的哈希值。3.根据权利要求1所述的基于哈希的可信执行环境下的加密数据库连接查询优化方法,其特征在于,所述服务器代理根据所述待查询数据的哈希值和所述待查询的数据表中的哈希值进行查询,并将得到的查询结果中的查询密文和所述查询密文的属性信息,发送至可信执行环境组件,包括:所述服务器代理根据所述待查询数据的哈希值和所述待查询的数据表中的哈希值,从所述待查询的数据表中确定出至少一组数据;根据每一组数据对应得到一组中间数据,将得到的中间数据作为查询结果;每一组中间数据包括至少一个密文;将每一组中间数据包括的密文作为查询密文,将每一组中间数据的属性信息作为所包括的密文的属性信息;将所述查询密文和所述查询密文的属性信息,发送至可信执行环境组件。4.根据权利要求3所述的基于哈希的可信执行环境下的加密数据库连接查询优化方
法,其特征在于,所述数据表至少包括:第一数据表和第二数据表;所述服务器代理根据所述待查询数据的哈希值和所述待查询的数据表中的哈希值,从所述待查询的数据表中确定出至少一组数据,包括:服务器代理从所述第一数据表和所述第二数据表中,筛选与所述待查询数据的哈希值相同的哈希值所在的行,根据筛选出的行的数据,得到所述至少一组数据。5.根据权利要求4所述的基于哈希的可信执行环境下的加密数据库连接查询优化方法,其特征在于,所述每次从所述第一数据表和所述第二数据表中,筛选与所述待查询数据的哈希值相同的哈希值所在的行,根据筛选出的行的数据,得到所述至少一组数据,包括:按照不同行之间的哈希值的大小,对所述第一数据表中的行数据进行降序排序,得到更新的第一数据表;按照不同行之间的哈希值的大小,对所述第二数据表中的行数据进行降序排序,得到更新的第二数据表;比较所述更新的第一数据表的第i行与所述更新的第二数据表的第i行的哈希值;i为大于0且小于或等于N的整数,N为所述更新的第一数据表和所述更新的第二数据表的行数;当所述更新的第一数据表的第i行与所述更新的第二数据表的第i行的哈希值相同时,将所述更新的第一数据表的第i行,以及所述更新的第二数据表的第i行,将所述更新的第一数据表的第i行的数据,以及所述更新的第二数据表的第...

【专利技术属性】
技术研发人员:常曌刘琦程珂沈玉龙马鑫迪张涛
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1