首页> 中国专利> 一种基于安全标签的海量图数据细粒度访问控制方法

一种基于安全标签的海量图数据细粒度访问控制方法

摘要

本发明提供了一种基于安全标签的海量图数据细粒度访问控制方法,属于海量数据处理领域。本发明方法包括:在图数据的点/边/属性存储结构和用户信息中,增加安全标签,用于确定访问所需的安全要求,安全标签无需预先定义,在数据生成或者安全设计完成后设置;在进行图数据查询时,将用户安全标签和点/边/属性数据的安全标签进行比较,以判断用户是否有权限访问该数据。本发明的安全标签支持逻辑表达式表示,采用点、边、属性三级粒度安全标签,实现了不同粒度的安全访问控制;本发明还采用位运算加速安全标签逻辑计算和点/边/属性数据的过滤计算。本发明方法在不牺牲图数据访问性能的同时,大幅度提升了海量图数据访问的安全性。

著录项

  • 公开/公告号CN112699410A

    专利类型发明专利

  • 公开/公告日2021-04-23

    原文格式PDF

  • 申请/专利权人 北京赛思信安技术股份有限公司;

    申请/专利号CN202011643576.1

  • 申请日2020-12-31

  • 分类号G06F21/62(20130101);G06F16/583(20190101);G06F16/538(20190101);G06F16/51(20190101);

  • 代理机构11121 北京永创新实专利事务所;

  • 代理人祗志洁

  • 地址 100125 北京市朝阳区霞光里8号承冀诚大厦二层

  • 入库时间 2023-06-19 10:43:23

说明书

技术领域

本发明属于海量数据处理技术领域,涉及一种基于安全标签,对海量键值型存储图数据进行细粒度访问控制的技术方案。

背景技术

信息通信技术的发展开启了万物互联的时代,借助大数据中的图数据处理技术,社交、电商、交通、金融、物联网等行业大量关联关系数据的潜在价值得以挖掘。图数据相对传统关系型数据尤其适合大规模的关联关系分析,具有以下特点:第一,图数据采用更接近现实世界的实体关系建模,直观易懂,而关系型数据更为复杂且抽象层次更高;第二,图数据查询采用更贴合自然语言的方式表达查询需求,而关系型数据使用SQL语言,其对于多层关系的查询复杂且效率低下;第三,图数据可以高效方便的存储上亿级别的数据,而关系型数据必须进行复杂的分库分表设计,否则根本无法胜任。但图数据处理在提升海量关联关系数据分析效果的同时,大数据固有的速度,容量和多样性特征也加剧了安全和隐私问题。

发明内容

本发明的目的是提供一种基于安全标签的海量键值型存储图数据细粒度访问控制方法,用于实现在海量图数据检索时,可以保证图数据的查询效率而又不牺牲隐私和保密性。

本发明提出的一种基于安全标签的海量图数据细粒度访问控制方法,用于键值型存储的图数据,包括如下步骤:

步骤一,存储键值型图数据时,根据数据的访问要求,在图数据的点/边/属性的键值对上增加一个安全标签,若不需要做访问控制,则不增加安全标签;点或边或属性的安全标签中记载能访问点或边或属性数据的用户访问权限;所述的安全标签表示为用户访问权限和逻辑运算符组成的表达式。安全标签无需预先定义,可以在数据被插入时动态创建。

步骤二,为每个用户或客户端设置一组安全标签。

步骤三,当用户访问图数据时,对结果集中包含的每个带有安全标签的点或边或属性数据,将数据与用户对应的安全标签进行比较,若用户对应的安全标签满足数据的安全标签要求时,表示允许用户访问数据,否则,表示用户无权访问数据,将数据从结果集中删除。

所述的步骤三,使用二进制位图对结果集中点或边或属性数据进行过滤,包括:

(1)首先,将结果集中每个带有安全标签的点或边数据按照数据存储结构对应展开一个二进制位图,二进制位顺序对应为点或边数据、点或边的各属性,二进制位取值为1或0,1代表该位对应的数据允许用户访问,0代表该位对应的数据不允许用户访问;二进制位的取值按照下面步骤(3)确定;

(2)复制点或边数据,按照二进制位图依次遍历复制的点或边数据,若对应的二进制位为1保留数据,为0则将对应位置的数据删除;

(3)将访问权限转换为二进制位图表示;二进制位图中,将安全标签中包含的访问权限对应的二进制位设置为1,剩余二进制位设置为0;

用户的安全标签对应为一个二进制位图,对应具备的访问权限的位设置为1,其余位为0;

点或边或属性数据的安全标签对应有一个二进制位图,对应逻辑表达式包含的访问权限的位设置为1,其余位设置为0;

将用户与点或边或属性数据的安全标签进行比较时,将用户的二进制位图与边或属性数据的安全标签的二进制位图进行逻辑判断,当户的二进制位图满足属性数据的安全标签的要求时,设置点或边或属性数据对应的二进制位为1,否则,设置点或边或属性数据对应的二进制位为0。

本发明提供的访问控制方法,在不牺牲图数据访问性能的同时,大幅度提升了海量图数据访问的安全性,具体的优点和积极效果还在于:

(1)本发明方法中采用点/边属性键值对上单独设置的安全标签与用户安全标签的逻辑运算实现访问控制,粒度可以更细;

(2)采用本发明方法可以将不同密级的数据可以存储在一起,在服务器端完成点/边属性数据的过滤,简化安全性设计,应用程序可以轻松实现多级安全;

(3)采用本发明方法,对用户安全数据的访问管理相对容易,只需要为用户添加/删除安全标签就可以获得相关的数据。

附图说明

图1为本发明方法实现的键值型图数据的存储结构示意图;

图2为本发明方法中对图数据进行访问控制处理的流程示意图;

图3为本发明方法中进行访问控制的示意图;

图4为本发明方法中进行安全标签逻辑计算的流程图;

图5为本发明方法中对点/边/属性数据进行过滤计算的流程图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图和实施例,对本发明的技术方案进一步详细说明。

本发明提出一种基于安全标签的海量图数据细粒度访问控制方法,是对键值型存储的图数据进行特殊设计以及访问控制的优化。键值型存储的图数据中,点和边都是图数据的一部分,按点组织图数据时,如图1所示,点作为键KEY,点的属性和点关联的边作为值VALUE,对于边,边作为键,边的属性作为值。本发明在点或边的键值对上设置安全标签,用于点或边的访问控制,在点属性和边属性上设置安全标签,实现属性数据的访问控制。下面通过五个方面来说明本发明方法的实现。

本发明的第一方面,采用安全标签实现访问控制。本发明方法设置安全标签用于定义敏感数据和限制用户的访问权限。分别为用户、图数据的点、边和属性设置安全标签。用户的安全标签是指用户的访问权限集合。一个用户可以具备多种角色,具有多种访问权限。点/边/属性的安全标签是指能访问点/边/属性数据的用户访问权限集合。在确定用户是否能够访问图数据的点或边的属性时,本发明方法会首先获取用户和点/边的属性的安全标签,采用逻辑运算规则计算两者的安全标签,如果允许访问,则结果集返回该数据,否则从结果集过滤该数据。

根据数据的访问安全要求,所设置的安全标签表示为对用户访问权限用逻辑运算符组合的逻辑表达式,表达式中可用的逻辑运算符包括如下:

(1.1)(sec-label):要求必须具有权限sec。例如,权限sec为管理权限admin。

(1.2)&:仅当两项权限都满足时为True,True代表允许访问,False代表不允许访问。例如,admin&audit,要求必须具有管理权限admin和审计权限audit。

(1.3)|:只要其中一项权限满足时为True。例如admin|system,要求具有管理权限或者系统权限system。

(1.4)^:只要表达式中任意一项权限满足但不是两项权限都满足时为True。例如admin^audit,要求具有管理权限或者审计权限,但不能同时具有两者权限。

(1.5)!:非当前项权限时为True,否则为False。例如!audit,要求不具有审计权限。

为了支持更复杂的权限组合,安全标签支持上述逻辑运算符及其组合起来的表达式,可以使用“()”修改逻辑运算符的优先级。

安全标签在计算时,满足结合律、交换律等运算律以及代入规则、对偶规则等逻辑代数基本规则。运算律与逻辑代数基本规则与本发明无关,在此不做详述。

本发明的第二方面,图数据安全标签的写入、修改和删除。安全标签随着图的点/边/属性数据一同写入键值存储,没有安全标签则代表该点/边的属性数据不做访问控制,这在系统初始化数据导入时非常有用,对应图数据的安全标签可以在安全性设计完成后再设置。安全标签的修改可以采用键值型存储图数据库的修改函数执行,但安全标签的修改需要安全管理员才能设置。安全标签的删除包括两种情况,一种是数据的删除,此时可以随着图数据库的删除一起操作;另外一种是点/边的属性数据不再进行权限控制,此时安全标签的删除也需要安全管理员执行操作。

如图1所示,本发明方法在底层键值型图数据库的存储结构中,在存储的点-属性的键值对上设置点的安全标签,在边-属性的键值对上设置边的安全标签,安全标签作为一个值被存入。本发明还支持对点属性-值和边属性-值的键值对上设置安全标签。通过添加安全标签实现对图数据多级的安全访问控制的基础。

本发明的第三方面,根据安全标签进行点/边/属性数据访问控制的处理。点/边/属性数据的访问控制是直接进行点/边/属性数据的安全标签与用户安全标签的逻辑运算,逻辑运算结果为True则代表数据可以访问,否则数据不可以访问。根据用户安全标签与点/边/属性安全标签的逻辑运算结果,当用户安全标签蕴含点/边/属性安全标签时,代表该用户可以访问对应的点/边/属性数据,从而实现对图数据的点、边、属性三级不同粒度的访问控制。

如图2所示,当应用访问带有安全标签的点/边数据时,首先通过图数据库查询得到结果集,如果结果集中不存在带有安全标签的数据,则直接返回查询到的结果集。如果存在带有安全标签的数据,进入结果集安全标签判定流程,如下:

步骤1,首先将用户的安全标签与结果集中点或边的安全标签进行逻辑计算,若结果为True则进入步骤2的点/边属性安全标签运算流程,若结果为False代表该用户无权限访问点或边数据,从结果集中删除将该点或边数据,然后执行步骤3;

点/边数据在点/边以及关联的多个属性数据上都有安全标签。如果点/边没有安全标签,则代表该点/边数据不做访问控制可以直接访问,否则将点/边的安全标签与用户安全标签进行逻辑计算,当结果为True继续检查关联的属性数据安全标签,结果为False,则代表点/边数据不可访问。

步骤2,继续对点/边的属性的安全标签与用户的安全标签进行逻辑计算,若结果为False则代表该用户无权限访问该属性数据,从结果集中过滤掉该属性数据;若结果为True则代表用户可以访问该属性数据;依次继续检查下点/边的一个属性数据,直到点/边所有属性数据检查完毕,然后执行步骤3。

如果属性的安全标签不存在,则该属性不做权限控制可以直接访问。

步骤3,判断是否对结果集中的所有带安全标签的点或边数据进行了检查,若是,输出结果集,否则,对结果集下一个点/边数据转步骤1执行。

本发明的第四方面,访问控制处理效率的优化。本发明将用户对图数据库点/边/属性数据访问的安全控制转化为用户安全标签和点/边/属性安全标签的逻辑计算,同时使用位运算加速安全标签逻辑计算和点/边/属性数据的过滤计算,在不牺牲图数据访问性能的同时,支持不同密级的数据存储在一起,在服务器端完成点/边属性数据的过滤,简化安全性设计,实现海量图数据点、边、属性三级粒度的访问控制。

在安全标签数量较大导致逻辑表达式复杂时,本发明将安全标签用二进制位图来表示,再进一步进行安全标签逻辑计算。如图3所示,图中上方的位图为用户的安全标签,下方的位图为点/边/属性数据的安全标签。将数据所有涉及到的访问权限用一个二进制位图表示,将安全标签中存在的访问权限对应在位图中的二进制位设置为1,其余二进制位设置为0。用户的安全标签对应一个二进制位图。点/边/属性数据的安全标签,根据逻辑表达式中包含的权限,对应一个二进制位图。

如图4所示,本发明采用位运算加速安全标签逻辑计算的一个流程如下,包括:

步骤2.1,将用户的安全标签表达式展开为位图。位图展开的方式为安全标签表达式对应的访问权限有安全要求,则将对应的位置为1,要求非该访问权限,则将对应的位置为0。

步骤2.2,按照步骤2.1将点/边/属性的安全标签表达式展开为位图,不在用户安全标签表达式中的访问权限在位图后面依次增加。

本流程中,当用户的安全标签表达式中只具有一个访问权限,则对应的位图中就具有一个位。在将点/边/属性的安全标签表达式展开为位图时,位图中位所代表的访问权限与用户安全标签对应位图各位置对应的访问权限一致,但不要求两者的访问权限的数量必须一致,通过计算可以简化管理的复杂度。

也可以分别对用户和点/边/属性的安全标签二进制位图中每一位所代表的访问权限进行预先设置,用户安全标签的二进制位图的长度不要求与点/边/属性安全标签的二进制位图的长度一致,但要求在进行逻辑判断时,相对应的位所代表的访问权限一致。

步骤2.3,对步骤2.1生成的位图和步骤2.2生成的位图进行位蕴含操作,当步骤2.1生成的位图蕴含步骤2.2生成的位图时,则认为用户具有点/边/属性数据的访问权限,否则不可访问。此流程计算的结果还要用于点/边/属性数据的过滤计算。本发明中对生成的位图进行位蕴含操作,是指:设用户安全标签的位图表示为A,点/边/属性安全标签的位图表示为B,将A和B依据逻辑表达式进行位的逻辑判断,若位图A的位满足位图B中对相应位的逻辑运算要求,则表示A蕴含B,此时用户可以访问该点/边/属性数据,否则,A不蕴含B,用户无权限访问该点/边/属性数据。

本发明还在点/边/属性数据的过滤计算上,同样采用位运算加速计算过程。如图5所示,在服务器端查询得到结果集后,从结果集获取点/边数据,然后进行点/边数据是否需要访问控制判定,若为否则直接向客户端返回结果集,若需要,则采用位运算加速数据过滤,流程如下:

步骤3.1,将点/边数据,包括点/边的属性数据,按照数据的存储结构展开为位图。点/边数据的位图中位顺序对应为访问点/边数据和点/边包含的各属性数据的顺序。点/边数据的位图中的位为点/边的安全标签逻辑计算结果或点/边的属性安全标签的逻辑计算结果,属性按照字符顺序排序,对应的位置允许访问则置为1,不允许访问则置为0。

步骤3.2,复制点/边数据,对照点/边数据的位图,依次遍历复制的点/边/属性数据,位图中对应位为1,则保留对应位置的数据,为0则将对应位置的数据删除,在依次检查位图所有位置后,完成对该点/边数据的过滤。此处复制点/边数据,主要是考虑到内存中的点/边数据可以缓存下来,减少磁盘和内存的数据交换。

步骤3.3,判断是否遍历完结果集中所有需要访问控制的点/边数据,若是,则返回最终的结果集给用户或客户端,否则,继续对下一个点/边数据执行步骤3.1和3.2。

应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号