掌桥专利:专业的专利平台
掌桥专利
首页

静态数据屏蔽

文献发布时间:2023-06-19 11:27:38


静态数据屏蔽

背景技术

静态数据屏蔽是一种隐私特征,其使得用户能够匿名化其数据库。匿名化发生在列级别。数据被擦除并且替换为伪造数据。静态数据屏蔽是一种单向操作。一旦屏蔽数据库,就无法再将数据库恢复到其在屏蔽之前的状态。用户负责选择他们希望匿名化的列以及这些列的配置。

发明内容

本文中描述的实现公开了一种用于静态数据屏蔽的系统。静态数据屏蔽系统可以执行一个或多个操作,包括对数据库中的表进行解除绑定,评估对表的屏蔽操作以确定对候选表的特定列的至少一个屏蔽操作是无法使用查询来完成的复杂屏蔽操作,向候选表添加具有唯一值的临时键列,生成包括临时键列和空屏蔽列的临时表,在客户端处生成针对特定列的屏蔽值,并且将针对特定列的屏蔽值填充在临时表的空屏蔽列中。

提供本“发明内容”以便以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

本文中还描述和叙述了其他实现。

附图说明

图1示出了本文中公开的静态数据屏蔽系统的示例实现。

图2示出了本文中公开的静态数据屏蔽系统的示例数据流程图。

图3示出了本文中公开的静态数据屏蔽系统的示例操作。

图4示出了本文中公开的静态数据屏蔽系统的附加示例操作。

图5示出了可以用于实现所描述的技术的示例计算系统。

具体实施方式

静态数据屏蔽的核心在于屏蔽函数的概念。屏蔽函数是一种用于生成数据的算法。其可以被建模为一个函数,例如,将一列(一组N列)作为输入并且返回一列(一组N列)作为输出的数学运算或一系列数学运算。屏蔽函数负责实现前面提到的三个想法。如果组合不善,则它们可能会剥夺数据库的结构或者留下漏洞,这些漏洞可能被用于屏蔽记录的标识。

本文中公开的静态数据屏蔽系统允许用户使用一个或多个这样的屏蔽函数来屏蔽数据库中的一个或多个列中的数据,同时仍保留各个字段之间的关系以及保持数据库的约束。具体地,静态数据屏蔽系统的实现允许屏蔽所选择的列中的数据使得数据库中的数据的统计性质仍然得以保留。

图1示出了允许用户请求数据库150的一个或多个字段中的屏蔽数据的静态数据屏蔽系统100的实现。例如,数据库150可以是患者数据库,该患者数据库具有存储关于患者姓名的信息以及其他个人身份信息(PII)和各种非PII的表。数据库150可以存储在云服务器、本地服务器、通过互联网可访问的基于网络的服务器等上。

本文中公开的技术为计算机和计算技术提供了技术优势。具体地,静态数据屏蔽系统100通过允许将复杂屏蔽配置以有效方式应用于数据列来提高数据库系统的效率和功能。例如,确定某些屏蔽配置在服务器侧实现,而其他屏蔽配置在客户端侧实现,减少了网络业务,从而有效利用计算网络,从而改善数据库和连接这样的数据库的网络的技术操作。

客户端102可以被配置为允许用户使用数据屏蔽用户界面(UI)120来请求各种屏蔽操作。例如,用户可以请求屏蔽数据库150的一个或多个PII。替代地,用户也可以使用命令行指令来请求屏蔽操作。在一种实现中,客户端102可以访问数据库150中的数据的配置和形状。客户端102可以包括与数据屏蔽UI 120进行通信以允许用户为数据库150的各个列生成屏蔽配置的屏蔽配置生成器104。模式建模模块106可以对数据库150的模式进行建模和存储,而模式验证器108分析屏蔽配置以确保按照该模式的任何约束都不是无效的。

客户端102将对屏蔽操作的请求传送给数据屏蔽引擎110。数据屏蔽引擎110可以在服务器侧实现,其在服务器侧可以访问数据库150并且与客户端102一起工作以影响由客户端102请求的屏蔽操作。

在接收到针对屏蔽操作的请求时,数据屏蔽引擎110创建数据库150的克隆数据库152并且存储克隆数据库152。这允许客户端保留其从数据库152中访问数据的操作的连续性。如果数据库150是本地数据库,则可以使用备份和恢复命令的组合来生成克隆数据库152。如果数据库150是基于云的,则可以创建新数据库作为数据库150的副本。一旦创建克隆数据库152,就可以对克隆数据库152执行由数据屏蔽引擎110进行的一个或多个屏蔽操作。结果,客户端能够在正常业务过程中继续使用数据库150。

随后,数据屏蔽引擎110复制数据库150的模式154,并且将其传送给客户端102,模式154可以被存储在客户端102中。模式154可以包括关于数据库150的表、表的列、表之间的关系、对表的各列的约束等的文件系统信息。模式154可以用于验证来自客户端102的一个或多个屏蔽操作请求。例如,如果模式将名称为SSN的列(SSN列160)标识为主键,该列通常包括对于每个记录或行是唯一的数据,则如果屏蔽操作请求用相同的值填充SSN列160,则这样的请求将导致SSN列160中的数据不满足值唯一的这一约束。在这种情况下,模式验证器108可以拒绝该特定屏蔽操作请求。

一旦保存模式154,数据屏蔽引擎110就丢弃对克隆数据库152的所有约束。例如,数据屏蔽引擎110删除克隆数据库152的约束。因此,如果SSN列160被约束为具有唯一值,则在丢弃约束之后,SSN列160中的值可以是不唯一的。这允许以一种或多种中间状态操纵数据以影响对克隆数据库152的屏蔽操作。

随后,数据屏蔽引擎110基于由客户端102请求的屏蔽操作逐表查看数据库。例如,客户端102可能已经请求将SSN列160的所有值设置为NULL值。来自客户端102的替代屏蔽操作请求可以是将SSN列160数据的值改变为随机数。替代地,客户端102可能已经请求置乱其中存储有患者姓名的pName列162的所有值。

数据屏蔽引擎110确定由客户端102针对各个列而请求的屏蔽操作的类型。具体地,数据屏蔽引擎110通过简单查询来确定可以在服务器侧执行哪些屏蔽操作以及哪些屏蔽操作更复杂并且因此需要在客户端侧对数据进行附加处理。

例如,数据屏蔽引擎110可以确定列A 164需要的屏蔽操作仅需要将列A 164的每个值改变为NULL。在这种情况下,数据屏蔽引擎110可以发出对列A 164的所有值进行这种改变的命令。在一种实现中,进行这种改变的命令可以是可以用于查询、插入、更新或修改关系数据库的表中的数据的结构化查询语言(SQL)命令。

在一种实现中,基于屏蔽操作的类型来确定与需要在客户端侧进行处理的复杂屏蔽操作相比可以简单地使用SQL命令来实现哪些屏蔽操作。例如,在一种实现中,可以将客户端102可用的各种类型的屏蔽操作中的每个分类为简单屏蔽操作或复杂屏蔽操作。

另一方面,数据屏蔽引擎110可以确定对列B 166的屏蔽操作是需要在客户端侧进行附加处理的复杂操作。例如,对列B 166的屏蔽操作可以是要求将列B 166的预屏蔽值替换为随机生成值的随机屏蔽操作。

对于具有复杂屏蔽操作的列,数据屏蔽引擎110生成临时列168。临时列填充有唯一值。例如,在一种实现中,临时列中的唯一值可以是可以具有16字节值的全局唯一标识符(GUID)值。

随后,基于来自客户端102的指令,数据屏蔽引擎110确定是否需要列B 166的原始值。如果是这样,则将列B 166的值拉取到客户端侧。一旦将列B 166的数据传送到客户端侧,就对列B 166的每个值执行期望的屏蔽操作。在一种实现中,由于在客户端侧接收列B166的每个值Bi 166

由列temp

图2示出了本文中公开的静态数据屏蔽系统的示例数据流程图200。具体地,数据流程图200示出了客户端202、源数据库204和屏蔽数据库206之间的信息流。客户端202可以是计算设备,诸如下面在图5中公开的计算设备,该计算设备可以用于将应用程序编程接口(API)托管到数据屏蔽系统。在一种实现中,用户可以经由GUI来访问数据屏蔽API,该GUI允许用户选择要对源数据库204的一个或多个列执行的各种屏蔽操作。因此,API经由这样的GUI向用户公开了列和对其屏蔽的一个或多个约束的列表。

在一种实现中,在212处,客户端202可以发出用于备份数据库204的transact-SQL(TSQL)命令。作为响应,在214处,源数据库204被备份到服务器驱动器208。随后,操作216在客户端处检索源数据库的文件系统信息。操作218发送用于将备份的数据库恢复为新数据库的恢复命令。备份命令212和恢复命令218一起用于生成源数据库204的克隆。响应于恢复命令218,在220处,创建屏蔽数据库220,并且在操作222,将来自服务器222的备份数据恢复到屏蔽数据库220。

操作224向屏蔽数据库发送获取屏蔽数据库的模式的命令。在一种实现中,该命令可以是数据层应用(DAC)命令,并且在操作226处,该模式作为DAC包(dacpac)被返回给客户端202。一旦接收到该模式,则在操作228处,客户端可以向屏蔽数据库206发出丢弃所有键、约束和索引的命令。

随后,在没有所有键、约束和索引的情况下对屏蔽数据库206执行一组屏蔽操作210。对于可以由简单SQL命令执行的所有屏蔽操作,操作230向屏蔽数据库206发送TSQL更新命令。例如,如果屏蔽数据库206中的列中的所有值仅由NULL值代替,则操作230可以发起TSQL更新命令以完成这种具有SQL能力的屏蔽操作。

对于需要复杂屏蔽操作的列,诸如可能无法通过SQL命令来完成的屏蔽操作,操作232发送TSQL选择命令以从该列中检索数据。在一种实现中,来自给定列的数据可以是满的,但是,被选择具有从其中检索的数据的一组列可以从没有到全部变化。作为响应,操作234将这样的数据传送到客户端202。在操作236处,处理检索到的数据以在客户端202处完成复杂屏蔽操作。一旦通过复杂屏蔽操作更新了列的值,则在操作238处,将给定列的屏蔽数据插入到具有唯一标识值(诸如GUID)的临时表中,该唯一标识值也被添加到屏蔽数据库206的表中。随后,在操作240处,执行TSQL命令以将屏蔽值从临时表缝合或组合到屏蔽数据库206的原始表。一旦所有屏蔽操作210完成,操作242就重新创建屏蔽数据库206的所有键、约束和索引。例如,操作242可以使用dacpac来重新创建屏蔽数据库206的所有键、约束和索引。

图3示出了本文中公开的静态数据屏蔽系统的操作300。操作302从用户接收针对数据库的n个屏蔽操作。例如,用户可以使用GUI指定n个屏蔽操作。在一种实现中,由用户使用的应用可以验证屏蔽操作,以确保它们不违反要屏蔽的数据库的任何约束。操作304克隆数据库以生成屏蔽数据库。例如,克隆操作可以使用备份/恢复命令的组合来执行。操作306保存屏蔽数据库的模式。一旦屏蔽数据库模式被保存,操作308就丢弃对屏蔽数据库的约束。

现在,屏蔽数据库已经准备好执行各种屏蔽操作。操作310评估屏蔽配置以确定其是否是可以使用SQL命令来完成的具有SQL能力的屏蔽操作。如果确定屏蔽操作可以用作SQL命令来完成,则操作312发起SQL命令以完成这种屏蔽。这种具有SQL能力的屏蔽操作的示例包括单值屏蔽、加扰屏蔽、NULL屏蔽等。另一方面,复杂的并且因此无法通过SQL命令来完成的屏蔽操作的示例包括袋屏蔽操作、加密屏蔽操作、随机屏蔽操作、直方图屏蔽操作等。

另一方面,如果操作310确定对列的屏蔽操作很复杂,因为它无法通过SQL命令来完成,则操作314将数据从列中提取到客户端侧以进行进一步处理。这种客户端侧处理操作314在下面的图4中更详细地公开。操作312和322增加索引值,并且操作316和318确定n个屏蔽操作中是否有任何附加操作要完成。一旦所有屏蔽操作完成,操作330就恢复屏蔽数据库的键、约束和索引。

图4示出了本文中公开的静态数据屏蔽系统的用于在列上进行复杂屏蔽的操作400。操作402向表添加临时键列,该临时键列包括需要复杂屏蔽的列。临时键列可以包括诸如GUID值等唯一键值,并且被称为GUID列。例如,对于具有用于SSN、pName和pAddress的列的候选表,如果要使用复杂屏蔽来屏蔽SSN列,则添加具有唯一键值的新GUID列,使得候选表现在具有四列,即SSN、pName、pAddress和GUID。GUID列包括每行唯一的值。

操作404创建具有临时键列和空列的副本的临时表以存储屏蔽值。临时键可以是GUID。因此,临时表具有两列,即临时键和maskedSSN。操作406向客户端传输要屏蔽的列(在该示例中为列SSN)的值。操作408对列SSN的值执行复杂屏蔽操作。在操作410处,向屏蔽数据库传送回列SSN的屏蔽值。在操作412处,将屏蔽值添加到临时表的空列,即maskedSSN列。随后,操作414执行SQL操作以使用来自临时表和候选表中的每个的GUID作为键来将屏蔽值从临时表的maskedSSN列添加到候选表的SSN列中。操作416删除临时表和候选表中的GUID列。

图5示出了可以用于实现本文中公开的多模态视频识别系统的示例系统500。用于实现所描述的技术的图5的示例硬件和操作环境包括计算设备,诸如计算机20形式的通用计算设备、移动电话、个人数据助理(PDA)、平板电脑、智能手表、游戏遥控器或其他类型的计算设备。在图5的实现中,例如,计算机20包括处理单元21、系统存储器22和系统总线23,该系统总线23将包括系统存储器在内的各种系统组件可操作地耦合到处理单元21。可以存在仅一个处理单元21,也可以存在一个以上的处理单元21,因此,计算机20的处理器包括单个中央处理单元(CPU)或多个处理单元(通常称为并行处理环境)。计算机20可以是常规计算机、分布式计算机或任何其他类型的计算机;实现不限于此。

系统总线23可以是几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、交换结构、点对点连接、以及使用各种总线架构中的任一种的本地总线。系统存储器也可以简称为存储器,并且包括只读存储器(ROM)24和随机存取存储器(RAM)25。ROM 24中存储有基本输入/输出系统(BIOS)26,该BIOS 26包含有助于诸如在启动期间在计算机20内的元件之间传输信息的基本例程。计算机20还包括用于从未示出的硬盘读取和向其中写入的硬盘驱动器27、用于从可移动磁盘29读取或向其中写入的磁盘驱动器28、以及用于从可移动磁盘31(诸如CD ROM、DVD或其他光学介质)读取或向其中写入的光盘驱动器30。

硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接到系统总线23。驱动器及其相关联的有形计算机可读介质为计算机20提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。本领域技术人员应当理解,可以在示例操作环境中使用任何类型的有形计算机可读介质。

多个程序模块可以存储在硬盘驱动器27、磁盘28、光盘30、ROM 24或RAM 25上,包括操作系统35、一个或多个应用程序36、其他程序模块37和程序数据38。用户可以通过诸如键盘40和指示设备42等输入设备在个人计算机20上生成提醒。其他输入设备(未示出)可以包括麦克风(例如,用于语音输入)、相机(例如,用于自然用户界面(NUI))、操纵杆、游戏手柄、碟形卫星天线、扫描仪等。这些和其他输入设备通常通过耦合到系统总线23的串行端口接口46连接到处理单元21,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)(未示出)等其他接口连接。显示器47或其他类型的显示设备也经由诸如视频适配器48等接口连接到系统总线23。除了显示器,计算机通常还包括其他外围输出设备(未示出),诸如扬声器和打印机。

计算机20可以使用与一个或多个远程计算机(诸如远程计算机49)的逻辑连接在联网环境中操作。这些逻辑连接是通过耦合到计算机20或作为计算机20的一部分的通信设备来实现的;这些实现不限于特定类型的通信设备。远程计算机49可以是另一计算机、服务器、路由器、网络PC、客户端、对等设备或其他公共网络节点,并且通常包括以上关于计算机20所述的很多或全部元件。图10中描绘的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的联网环境在办公网络、企业范围的计算机网络、内联网和互联网(它们是所有类型的网络)中是常见的。

当在LAN联网环境中使用时,计算机20通过网络接口或适配器53(其是一种类型的通信设备)连接到本地网络51。当在WAN联网环境中使用时,计算机20通常包括调制解调器54、网络适配器、一种类型的通信设备、或用于通过广域网52建立通信的任何其他类型的通信设备。调制解调器54(其可以是内部的或外部的)可以经由串行端口接口46连接到系统总线23。在联网环境中,关于个人计算机20而描述的程序引擎或其部分可以存储在远程存储器存储设备中。应当理解,所示的网络连接是示例,并且可以使用用于在计算机之间建立通信链路的通信设备的其他手段。

在示例实现中,用于提供可证明的和可破坏的设备身份的软件或固件指令可以存储在存储器22和/或存储设备29或31中,并且由处理单元21处理。本文中公开的一个或多个ML、NLP或DLP模型可以存储在作为持久数据存储库的存储器22和/或存储设备29或31中。例如,静态数据屏蔽系统502可以在计算机20上实现为应用程序36(或者,静态数据屏蔽系统502可以在服务器上或在云环境中实现)。静态数据屏蔽系统502可以利用处理单元21、存储器22、系统总线23和个人计算机20的其他组件中的一种或多种。

与有形计算机可读存储介质相反,无形计算机可读通信信号可以体现计算机可读指令、数据结构、程序模块、或者驻留在诸如载波或其他信号传输机制等调制数据信号中的其他数据。术语“调制数据信号”是指具有以将信息编码在信号中的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,无形通信信号包括诸如有线网络或直接有线连接等有线介质、以及诸如声学、RF、红外和其他无线介质等无线介质。

本文中公开的实现提供了一种用于静态数据屏蔽的系统。静态数据屏蔽系统可以执行一个或多个操作,包括对数据库中的表进行解除绑定,评估对表的屏蔽操作以确定对候选表的特定列的至少一个屏蔽操作是无法使用查询来完成的复杂屏蔽操作,向候选表添加具有唯一值的临时键列,生成包括临时键列和空屏蔽列的临时表,在客户端处生成针对特定列的屏蔽值,并且将针对特定列的屏蔽值填充在临时表的空屏蔽列中。在替代实现中,计算机过程还包括执行查询操作以将屏蔽值从临时表恢复到候选表的特定列。

又替代地,计算机过程还包括从候选表中删除临时表和临时键列。替代地,计算机过程还包括恢复数据库的键、约束和索引。又替代地,计算机过程包括确定对候选表的另一列的屏蔽操作是能够使用查询来完成的简单屏蔽操作,该另一列与特定列不同,并且响应于该确定,执行查询操作以完成简单屏蔽操作。

在一种实现中,计算机过程还包括:克隆在对数据库中的表解除绑定之前使用的数据库。替代地,计算机过程还包括:保存在对数据库中的表解除绑定之前使用的数据库的模式。在一种实现中,复杂屏蔽操作是袋屏蔽操作、加密屏蔽操作、随机屏蔽操作、直方图屏蔽操作中的至少一种。

一种提供静态数据屏蔽的方法包括:评估对数据库的表的屏蔽操作以确定对候选表的特定列的至少一个屏蔽操作是无法使用查询来完成的复杂屏蔽操作,向候选表添加具有唯一值的临时键列,生成包括临时键列和空屏蔽列的临时表,在客户端处生成针对特定列的屏蔽值,并且将针对特定列的屏蔽值填充在临时表的空屏蔽列中。替代地,该方法还包括:在评估屏蔽操作之前,对表进行解除绑定。

替代实现还包括执行查询操作以将屏蔽值从临时表恢复到候选表的特定列。又替代地,该方法还包括恢复数据库的键、约束和索引。替代地,该方法还包括确定对候选表的另一列的屏蔽操作是能够使用查询来完成的简单屏蔽操作,该另一列与特定列不同,并且响应于该确定,执行查询操作以完成简单屏蔽操作。

在另一种实现中,该方法还包括:使用备份操作和恢复操作克隆在对数据库中的表进行解除绑定之前使用的数据库。又替代地,复杂屏蔽操作是袋屏蔽操作、加密屏蔽操作、随机屏蔽操作、直方图屏蔽操作中的至少一种。

本文中公开的一种系统在计算环境中操作,并且包括存储器、一个或多个处理器单元和存储在存储器中并且由一个或多个处理器单元可执行的数据屏蔽系统,静态数据屏蔽系统对存储器上的计算机可执行指令进行编码以在一个或多个处理器单元上执行计算机过程,计算机过程包括:对数据库中的表进行解除绑定,评估对表的屏蔽操作以确定对候选表的特定列的至少一个屏蔽操作是无法使用查询来完成的复杂屏蔽操作,向候选表添加具有唯一值的临时键列,生成包括临时键列和空屏蔽列的临时表,在客户端处生成针对特定列的屏蔽值,并且将针对特定列的屏蔽值填充在临时表的空屏蔽列中。

在替代实现中,计算机过程还包括执行查询操作以将屏蔽值从临时表恢复到候选表的特定列。替代地,计算机过程还包括从候选表中删除临时表和临时键列。又替代地,计算机过程还包括恢复数据库的键、约束和索引。在一种实现中,复杂屏蔽操作是袋屏蔽操作、加密屏蔽操作、随机屏蔽操作、直方图屏蔽操作中的至少一种。

本文中描述的实现被实现为一个或多个计算机系统中的逻辑步骤。逻辑操作可以被实现为(1)在一个或多个计算机系统中执行的一系列处理器实现的步骤,以及(2)一个或多个计算机系统中的互连的机器或电路模块。实现是选择问题,取决于所使用的计算机系统的性能要求。因此,构成本文中描述的实现的逻辑操作被不同地称为操作、步骤、对象或模块。此外,应当理解,逻辑操作可以以任何顺序执行,除非另外明确声明,或者权利要求语言固有地需要特定顺序。

上面的说明书、示例和数据提供了对本发明的示例性实施例的结构和使用的完整描述。由于本发明的很多实现可以在不脱离本发明的精神和范围的情况下进行,因此本发明存在于下文所附的权利要求书中。此外,在不脱离所记载的权利要求的情况下,可以在另一实现中组合不同实施例的结构特征。

相关技术
  • 静态数据屏蔽
  • 一种静态数据同步用信号传输用传输线缆
技术分类

06120112933368