本文所描述的实施例总体上涉及数据库的数据隐私控制。更具体地,本文所描述的实施例涉及通过飞地(enclave)中的数据库管理系统(dbms)对数据隐私保护数据库进行细粒度数据隐私控制。
背景技术:
1、与面向软件的加密数据库(s-edb)系统相比,常规的启用硬件的加密数据库(h-edb)系统支持更多的操作(例如,使用结构化查询语言(sql)的数据库操作等),但仍然远远少于通用数据库系统(例如,sql数据库系统等)。常规的h-edb系统通常具有部分硬件加密(p-he)架构,该架构使用远程证明(ra)机制共享客户端侧私钥并在飞地(enclave)内注册经认证的dbms操作员代码。一旦来自一端(例如,用户端等)的密文(例如,通过dbms等)被传送到飞地,飞地首先将密文解密成明文,对明文执行计算或操作,然后对计算出的明文进行加密(如有需要),之后回复给dbms。
2、通常,p-he数据库的设计是基于飞地的约束的,例如可信执行环境(tee)内存限制或制约的约束。因此,将整个dbms认证到飞地中以实现全硬件加密(f-he)数据库系统以供运行时执行可能是不切实际的,并且飞地与dbms之间的p-he数据库中的输入/输出(i/o)成本可能会严重影响系统性能。
技术实现思路
1、最近出现的增加的tee内存可以实现f-he架构的创建。本文所公开的实施例中的特征可以提供并以其他方式实施“飞地内”(即,f-he)数据库系统(例如,关系数据库系统等),以通过将整个dbms(或整个数据库系统)驻留到tee(例如,tee内存等)中来支持数据隐私保护和可验证功能,从而可以改革当前的p-he模型。
2、应理解的是,在f-he数据库架构中,该机制可以通过防止所有内存、(多个)处理器(比如中央处理单元(cpu))和i/o的数据泄漏来提供安全性和/或保护隐私。如此,可以防止dbms内部使用的没有明确检索接口的数据结构和数据存储(例如,系统和物理日志)被对手查看。例如,数据库系统的重做日志(其是物理日志)将对数据库进行的所有更改存储在日志文件中。因此,涉及重做日志的操作可以包括将重做日志加载到内存中并且参与处理器(比如,cpu等)计算,作为日志文件由盘i/o写入和读取,以及通过网络i/o在副本之间传输。在f-he范例中,与重做日志有关的操作都不会泄漏数据,因为飞地内存和cpu受到保护以确保安全性和隐私;进一步地,数据在写入到盘之前可能已经被飞地或tee加密,并且网络传输可以例如受到远程证明-传输层安全(ra-tls)协议的保护。
3、还应理解的是,在f-he数据库架构中,对于具有一些明确检索接口的数据结构和数据存储(例如,逻辑日志等),需要采取额外的安全性和/或隐私保护措施。本文所公开的实施例中的特征可以提供逻辑日志编码和启用掩码的可见性控制,以在f-he中实现高效的隐私保护数据库逻辑日志,从而可以改革常规p-he数据库中的客户端侧密码术(例如,使用ra机制等)。也就是说,本文所公开的实施例中的特征可以在不需要客户端侧密码术和与客户端侧密码术相关的对应进程的情况下实现安全和/或隐私保护。
4、在一个示例实施例中,提供了一种用于数据隐私保护数据库的在飞地中的数据库管理系统(dbms)。该系统包括系统目录表、逻辑日志和dbms引擎,该dbms引擎被配置为基于用于检索该逻辑日志以检测至少一个预定标识符的请求来解析该逻辑日志。该引擎还被配置为:对于在该逻辑日志中检测到的每个预定标识符,关于该数据隐私保护数据库中与该系统目录表中的记录相对应的字段,确定对该请求的访问控制;并且当该访问控制指示第一访问控制状态时,检索与该字段相对应的秘密数据,或者当该访问控制指示第二访问控制状态时,屏蔽与该字段相对应的秘密数据。该引擎进一步被配置为基于该请求来分发具有被检索或屏蔽的秘密数据的该逻辑日志。
5、在另一示例实施例中,提供了一种用于数据隐私保护数据库的数据隐私控制的方法。该方法包括:由飞地中的数据库管理系统(dbms)基于用于检索逻辑日志以检测至少一个预定标识符的请求来解析该逻辑日志。该方法还包括:对于在该逻辑日志中检测到的每个预定标识符,关于该数据隐私保护数据库中与系统目录表中的记录相对应的字段,确定对该请求的访问控制;以及当该访问控制指示第一访问控制状态时,检索与该字段相对应的秘密数据,或者当该访问控制指示第二访问控制状态时,屏蔽与该字段相对应的秘密数据。该方法进一步包括基于该请求来分发具有被检索或屏蔽的秘密数据的该逻辑日志。
6、在又另一示例实施例中,提供了一种其上存储有计算机可执行指令的非暂态计算机可读介质。这些指令在执行时使一个或多个处理器执行包括以下各项的操作:由飞地中的数据库管理系统(dbms)基于用于检索逻辑日志以检测至少一个预定标识符的请求来解析该逻辑日志;对于在该逻辑日志中检测到的每个预定标识符:关于数据隐私保护数据库中与系统目录表中的记录相对应的字段,确定对该请求的访问控制,当该访问控制指示第一访问控制状态时,检索与该字段相对应的秘密数据,或者当该访问控制指示第二访问控制状态时,屏蔽与该字段相对应的秘密数据;以及基于该请求来分发具有被检索或屏蔽的秘密数据的该逻辑日志。
1.一种用于数据隐私保护数据库的在飞地中的数据库管理系统(dbms),所述系统包括:
2.如权利要求1所述的系统,其中,对于所述逻辑日志中的每个预定标识符,所述逻辑日志包括所述字段的标识、所述秘密数据的长度和所述秘密数据。
3.如权利要求2所述的系统,其中,对于所述逻辑日志中的每个预定标识符,所述引擎进一步被配置为在所述逻辑日志被分发之前从所述逻辑日志中移除所述预定标识符、所述字段的所述标识和所述秘密数据的所述长度。
4.如权利要求2所述的系统,其中,所述系统目录表中的所述记录包括所述字段的标识和一个或多个用户标识。
5.如权利要求4所述的系统,其中,所述引擎进一步用于:
6.如权利要求5所述的系统,其中,所述引擎进一步用于:
7.如权利要求1所述的系统,其中,所述第一访问控制状态指示所述字段对所述请求的用户是可见的,并且所述第二访问控制状态指示所述字段对所述用户是不可见的。
8.如权利要求1所述的系统,其中,所述系统整个处于所述飞地中以供运行时执行。
9.一种用于数据隐私保护数据库的数据隐私控制的方法,所述方法包括:
10.如权利要求9所述的方法,其中,对于所述逻辑日志中的每个预定标识符,所述逻辑日志包括所述字段的标识、所述秘密数据的长度和所述秘密数据。
11.如权利要求10所述的方法,进一步包括:
12.如权利要求10所述的方法,其中,所述系统目录表中的所述记录包括所述字段的标识和一个或多个用户标识。
13.如权利要求12所述的方法,进一步包括:
14.如权利要求13所述的方法,进一步包括:
15.如权利要求9所述的方法,其中,所述第一访问控制状态指示所述字段对所述请求的用户是可见的,并且所述第二访问控制状态指示所述字段对所述用户是不可见的。
16.一种非暂态计算机可读介质,其上存储有计算机可执行指令,这些计算机可执行指令在执行时使一个或多个处理器执行包括以下各项的操作:
17.如权利要求16所述的计算机可读介质,其中,对于所述逻辑日志中的每个预定标识符,所述逻辑日志包括所述字段的标识、所述秘密数据的长度和所述秘密数据。
18.如权利要求17所述的计算机可读介质,这些操作进一步包括:
19.如权利要求17所述的计算机可读介质,其中,所述系统目录表中的所述记录包括所述字段的标识和一个或多个用户标识。
20.如权利要求19所述的计算机可读介质,这些操作进一步包括: