一种数据访问控制方法和装置与流程

文档序号:11775160阅读:309来源:国知局
一种数据访问控制方法和装置与流程

本发明实施例涉及但不限于计算机技术和系统安全领域,尤指一种数据访问控制方法和装置。



背景技术:

随着计算机技术的发展,电子信息的应用逐步取代纸质文件的使用,已成为用户的主要信息来源和存储方式。基于安全角度考虑,要保证信息资产的安全,业界主要集中关注信息安全的三元组为信息的保密性、完整性和可用性。

在安全操作系统(operatingsystem,简称为:os)的多级安全模型中,针对信息的保密性,由davidbell和leonardlapadula在1973年提出一种安全性访问控制模型,即bell-lapadula(简称为:blp)模型,该blp模型是一种基于状态机的模型,是定义多级安全的基础,目前已被视为基本安全公理;针对信息的完整性,由毕巴(k.j.biba)在1977年提出一种完整性访问控制模型,即biba模型,该biba模型一个强制访问模型。目前的安全os中通过上述blp模型和biba模型来实现对信息的保护,其中,blp模型是为保证信息的保密性而设计的,其实现原则为允许上写和允许下读,且禁止上读和禁止下写,从而保证数据的保密性;biba模型是为保护信息的完整性而设计,其实现原则为允许上读和允许下写,且禁止下读和禁止上写,从而来保证数据的完整性。显然地,基于blp模型和biba模型各自的设计原理而言,若在安全os中同时使用blp模型和biba模型,则会出现在安全级别和保密级别双高或双低的情况下,从而严重限制了主体的访问能力。因此,目前的安全os中只能选择性使用blp模型或biba模型,即无法兼顾信息的保密性和完整性。

综上所述,现有技术中的数据访问控制方式,由于只能选择性的使用blp 模型或biba模型,从而造成了信息访问无法兼顾保密性和完整性的问题。



技术实现要素:

为了解决上述技术问题,本发明实施例提供了一种数据访问控制方法和装置,以解决现有技术中的数据访问控制方式,由于只能选择性的使用blp模型或biba模型,从而造成了信息访问无法兼顾保密性和完整性的问题。

第一方面,本发明实施例提供一种数据访问控制方法,包括:

根据安全操作系统os中的当前访问操作,调整主体或客体的安全上下文中完整性标签的完整级别,所述主体和所述客体的安全上下文中预先配置有用于指示安全级别的保密性标签;

根据所述主体和所述客体的安全级别,以及调整后的所述主体和所述客体的完整级别,执行所述当前访问操作。

在第一方面的第一种可能的实现方式中,所述调整主体或客体的安全上下文中完整性标签的完整级别,包括:

在完整级别较高的主体对完整级别较低的客体执行读操作时,将所述主体的完整级别降低为所述客体的完整级别;或者,

在完整级别较低的主体对完整级别较高的客体执行写操作时,将所述客体的完整级别降低为所述主体的完整级别。

在第一方面的第二种可能的实现方式中,所述调整主体或客体的安全上下文中完整性标签的完整级别,包括:

通过修改命令所指示的完整级别,将所述主体或所述客体的安全上下文中的完整性标签调整为相应的完整级别。

根据第一方面、第一方面的第一种到第二种可能的实现方式中任意一种,在第三种可能的实现方式中,所述调整主体或客体的安全上下文中完整性标签的完整级别之前,还包括:

分别在所述主体和所述客体的安全上下文中配置所述完整性标签。

根据第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述在所述主体的安全上下文中添加所述完整性标签,包括:

在所述安全os中进行用户登陆的过程中对所述主体的安全上下文进行初始化配置;

通过读取预置的主体完整性级别配置文件,在所述主体的安全上下文中添加所述完整性标签。

根据第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述主体完整性级别配置文件中包括第一级别调整参数,所述第一级别调整参数为1时,指示开启“下读”操作权限,所述第一级别调整参数为0时,指示关闭“下读”操作权限。

根据第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述第一级别调整参数的初始值为1。

根据第一方面的第三种可能的实现方式,在第七种可能的实现方式中,所述在所述客体的安全上下文中配置所述完整性标签,包括:

在所述安全os启动的过程中对所述客体的安全上下文进行初始化配置;

通过读取预置的客体完整性级别配置文件,在所述客体的安全上下文中配置所述完整性标签。

根据第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述客体完整性级别配置文件中包括第二级别调整参数,所述第二级别调整参数为1时,指示开启“上写”操作权限,所述第二级别调整参数为0时,指示关闭“上写”操作权限。

根据第一方面的第八种可能的实现方式,在第九种可能的实现方式中,所述第二级别调整参数的初始值为0。

第二方面,本发明实施例提供一种数据访问控制装置,所述数据访问控制装置包括:相连接的调整模块和访问模块;

所述调整模块,配置为能够根据安全操作系统os中的当前访问操作,调整主体或客体的安全上下文中完整性标签的完整级别,所述主体和所述客体的安全上下文中预先配置有用于指示安全级别的保密性标签;

所述访问模块,配置为能够根据所述主体和所述客体的安全级别,以及 所述调整模块调整后的所述主体和所述客体的完整级别,执行所述当前访问操作。

在第二方面的第一种可能的实现方式中,所述调整模块配置为能够调整主体或客体的安全上下文中完整性标签的完整级别,包括:

配置为能够在完整级别较高的主体对完整级别较低的客体执行读操作时,将所述主体的完整级别降低为所述客体的完整级别;或者,

配置为能够在完整级别较低的主体对完整级别较高的客体执行写操作时,将所述客体的完整级别降低为所述主体的完整级别。

在第二方面的第二种可能的实现方式中,所述调整模块配置为能够调整主体或客体的安全上下文中完整性标签的完整级别,包括:

配置为能够通过修改命令所指示的完整级别,将所述主体或所述客体的安全上下文中的完整性标签调整为相应的完整级别。

根据第二方面、第二方面的第一种到第二种可能的实现方式中任意一种,在第三种可能的实现方式中,所述数据访问控制装置还包括:分别与所述调整模块和所述访问模块相连接的配置模块,配置为能够在所述调整模块调整主体或客体的安全上下文中完整性标签的完整级别之前,分别在所述主体和所述客体的安全上下文中配置所述完整性标签。

根据第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述配置模块包括:相连接的初始化单元和配置单元;

所述初始化单元,配置为能够在所述安全os中进行用户登陆的过程中对所述主体的安全上下文进行初始化配置;

所述配置单元,配置为能够通过读取预置的主体完整性级别配置文件,在所述初始化单元初始化后的主体的安全上下文中添加所述完整性标签。

根据第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述主体完整性级别配置文件中包括第一级别调整参数,所述第一级别调整参数为1时,指示开启“下读”操作权限,所述第一级别调整参数为0时,指示关闭“下读”操作权限。

根据第二方面的第五种可能的实现方式,在第六种可能的实现方式中, 所述第一级别调整参数的初始值为1。

根据第二方面的第三种可能的实现方式,在第七种可能的实现方式中,所述配置模块包括:相连接的初始化单元和配置单元;

所述初始化单元,配置为能够在所述安全os启动的过程中对所述客体的安全上下文进行初始化配置;

所述配置单元,配置为能够通过读取预置的客体完整性级别配置文件,在所述初始化单元初始化后的客体的安全上下文中配置所述完整性标签。

根据第二方面的第七种可能的实现方式,在第八种可能的实现方式中,所述客体完整性级别配置文件中包括第二级别调整参数,所述第二级别调整参数为1时,指示开启“上写”操作权限,所述第二级别调整参数为0时,指示关闭“上写”操作权限。

根据第二方面的第八种可能的实现方式,在第九种可能的实现方式中,所述第二级别调整参数的初始值为0。

本发明实施例提供的数据访问控制方法和装置,根据安全os中的当前访问操作,通过调整主体或客体的安全上下文中完整性标签的完整级别,该安全上下文中预先配置有指示安全级别的保密性标签,通过上述调整,根据主体和客体的安全级别,以及调整后的完整级别,执行当前访问操作;本发明实施例中通过在blp模型的基础上实现biba模型,将完整性标签和保密性标签设置在同一安全上下文中,并且可以根据当前访问操作动态调整完整级别,以实现blp模型与biba模型共存的应用方式,解决了现有技术中的数据访问控制方式,由于只能选择性的使用blp模型或biba模型,从而造成了信息访问无法兼顾保密性和完整性的问题。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为现有技术中blp模型中一种数据访问控制原理的示意图;

图2为现有技术中blp模型中另一种数据访问控制原理的示意图;

图3为现有技术中biba模型中一种数据访问控制原理的示意图;

图4为现有技术中biba模型中另一种数据访问控制原理的示意图;

图5为本发明实施例提供的一种数据访问控制方法的流程图;

图6为本发明实施例提供的另一种数据访问控制方法的流程图;

图7为图6所示实施例提供的数据访问控制方法中一种模型应用示意图;

图8为本发明实施例提供的又一种数据访问控制方法的流程图;

图9为图8所示实施例提供的一种数据访问控制方法中一种应用场景示意图;

图10为图8所示实施例提供的一种数据访问控制方法中另一种应用场景示意图;

图11为本发明实施例提供的一种数据访问控制装置的结构示意图;

图12为本发明实施例提供的另一种数据访问控制装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

blp模型是实现信息保密性的控制策略,该保密性控制策略仅对主体和客体间的读写进行限制。保密性控制策略的规则如下:

1)、低保密性的主体禁止读取高保密性的客体,即禁止上读,如图1所示,为现有技术中blp模型中一种数据访问控制原理的示意图。

2)、高保密性的主体禁止写入低保密性的客体,即禁止下写,如图2所示,为现有技术中blp模型中另一种数据访问控制原理的示意图。

上述规则指示不允许低安全级别的用户读高敏感度的信息,也不允许高敏感度的信息写入低敏感度区域,即禁止信息从高级别流向低级别。保密性 控制策略通过这种梯度式的安全标签实现信息的单向流通,实现了信息只能按照安全等级从下往上流动,或者根据策略的规定在同安全级别间流动。

biba模型是实现信息完整性的控制策略,该完整性控制策略同样仅对主体和客体间的读写进行限制。完整性控制策略的规则如下:

1)、高完整性的主体禁止读取低完整性的客体,即禁止下读,如图3所示,为现有技术中biba模型中一种数据访问控制原理的示意图。

2)、低完整性的主体禁止写入高完整性的客体,即禁止上写,如图4所示,为现有技术中biba模型中另一种数据访问控制原理的示意图。

在实际应用中,完整性控制策略主要是为了避免应用程序修改某些重要的系统程序或系统数据库。iba模型规定信息只能从高完整等级向低完整等级流动,也就是要防止低完整等级的信息“污染”高完整等级的信息。

通过上述blp模型和biba模型的原理介绍,显然地,在一个安全os中无法实现blp模型和biba模型共存的要求,由于blp模型和biba模型的访问存在矛盾,因此,在一个安全os中只能选择使用blp模型或biba模型,即必须选择性牺牲信息的保密性或完整性。如何同时满足安全os对信息保密性和完整性的要求,成为业界目前共同期待亟需解决的问题。

下面通过具体的实施例对本发明的技术方案进行详细说明,本发明以下各实施例中的安全os例如可以是windows系统、linux系统或其它安全os,执行本发明各实施例的终端设备例如具有上述安全os系统的计算机。本发明提供以下几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图5为本发明实施例提供的一种数据访问控制方法的流程图。本实施例提供的数据访问控制方法适用于执行数据读写访问的情况中,该方法可以由数据访问控制装置执行,该数据访问控制装置通过硬件和软件结合的方式来实现,该装置可以集成在终端设备的处理器中,供处理器调用使用。如图5所示,本实施例的方法可以包括:

s110,根据安全os中的当前访问操作,调整主体或客体的安全上下文中完整性标签的完整级别,该主体和客体的安全上下文中预先配置有用于指 示安全级别的保密性标签。

本发明实施例提供的数据访问控制方法,为在安全os中执行数据访问时进行保密性控制和完整性控制的方式。为了确保数据保密性,本发明各实施例中的访问控制基于安全性访问控制模型,例如基于blp模型,安全os将计算机信息系统中的实体分为主体和客体两部分,其中,主体和客体的定义为:

主体:凡是实施操作的称为主体,例如用户和进程。

客体:凡是被操作的对象则称为客体,例如文件、数据库等。

安全os还为每个主体和客体都配置了一个安全上下文(securitycontext),该安全上下文是对主体或客体的安全描述,类似于文件系统的rwx权限,存放于文件的索引节点(eye-node,简称为:inode)内。该安全上下文的格式可以为:

用户:角色:类型:安全级别。其中,用“:”号进行分隔。

该安全上下文的格式还可以表示为:

user_u:object_r:tmp_t:敏感属性+分类属性;

上述格式中,user_u为用户(user),object_r为角色(role),tmp_t为类型(type),其中,安全级别(securitylevel,简称为:sl)=敏感属性+分类属性,可以采用保密性标签指示sl,例如通过属性字段“s”表示保密性标签。

在本实施例中,基于上述安全os中的blp模型和支撑该blp模型的安全上下文,用户可以通过命令“ls-z文件名”查看某个文件的安全上下文,如查看文件linux系统中/etc/shadow文件的安全上下文,可以输入如下命令:

#ls-z/etc/shadow;得到的安全上下文信息为:

-r--------.rootrootsystem_u:object_r:shadow_t:s0-s15/etc/shadow;其中,“system_u:object_r:shadow_t:s0-s15”即为文件shadow的安全上下文格式,其中,“s0-s15”为文件shadow的保密性标签,表示sl的级别为0到15。

本实施例的安全os中,可以将完整性标签分为两大类:有完整性标签和无完整性标签。完整性标签定义如下:

i0<i1<i2<i3<...<i[n],其中0<=n<=15。

上述表达式中,i0表示主体或客体无完整性标签;[i1,i15]表示主体或客体有完整性标签。完整性标签通过在主体和客体的安全上下文中的新增字段“i”来实现。例如,新增完整性标签的客体安全上下文如下:

如:user_u:object_r:user_home_t:s0:i1

#ll-ztest

-rw-r--r--.rootrootuser_u:object_r:user_home_t:s0:i1test

其中i[n]是新增完整性标签,在当前安全上下文的末尾添加。

再例如,针对用户的安全上下文如下:

#id-z

user_u:user_r:user_t:s0:i8

可以看出,增加有完整性标签的安全上下文的格式可以表示为:

user_u:object_r:tmp_t:敏感属性+分类属性:完整级别;

上述格式中,user_u为用户(user),object_r为角色(role),tmp_t为类型(type),其中,安全级别(securitylevel,简称为:sl)=敏感属性+分类属性,保密性标签例如通过属性字段“s”来表示,完整性标签例如通过属性字段“i”来表示。另外,完整性标签i[n]和保密性标签s[n]分别代表主体、客体的完整级别和安全级别维度的标识,完整性标签与保密性标签不同,主体和客体的完整级别只是单级不能设置范围。

本发明实施例为了便于主体和客体的完整性标签描述简单且易于理解,同时又能兼顾数据保密性的设计,在上述blp模型中主体和客体的安全上下文格式的基础上,本实施例中主体和客体的安全上下文中还具有指示完整级别的完整性标签,例如,在上述安全上下文的末尾增加属性字段“i”来表示数据的完整性标签,从而有效实现对数据完整性的保护。本实施例通过在blp模型中主体和客体的安全上下文中增加可以表示数据完整性的标签,从而在 blp模型的基础上实现biba模型,并且可以按照当前访问操作的需求对主体或客体的完整性标签所指示的完整级别进行调整,从而在blp模型的基础上实现了非严格策略的biba模型,即“低水印biba模型”。

s120,根据主体和客体的安全级别,以及调整后的主体和客体的完整级别,执行所述当前访问操作。

在本实施例中,已经根据当前访问操作,例如一个进程的安全级别和完整级别对“读”操作和“写”操作的限制出现冲突,调整了主体或客体的完整级别。例如,进程a的标签为(s3:i2)需要向完整级别为i1的客体执行“读”操作,由于biba模型的限制,无法执行“下读”操作,此时,通过本实施例提供的访问控制方法,可以将进程a的完整性标签的完整级别由i2降低为i1,此时,进程a的标签为(s3:i1),即可执行对客体(i1)的下读操作。

相比之下,现有技术中的blp模型和biba模型是两个独立的模型,并且blp模型严格遵守“禁止上读、禁止下写”的原则,biba模型严格遵守“禁止下读、禁止上写”的原则,结合下表1中完整性和保密性共存的访问许可矩阵。

表1

显然地,在完整性和保密性共存的访问许可矩阵中的每行和每列中,blp模型和biba模型的共存都严格遵循blp模型和biba模型的原则,只要出现跨行或者跨列的访问情形,就无法实现blp模型和biba模型共存。并且在完整性和保密性级别双高或双低的情况下,严重限制了主体的访问能力,即共存模型中存在信息孤岛的问题。

本实施例提供的访问控制模型,通过重新设计blp模型和biba模型工作的方式,实现模型共存的方式并非两个独立的模型,而是在blp模型的基础上设计biba模型,并且biab模型中的完整性标签可以根据当前访问操作,进行调整,以实现一种“低水印biba模型”,从而可以兼顾数据访问的保密性和完整性。

本实施例提供的数据访问控制方法,根据安全os中的当前访问操作,通过调整主体或客体的安全上下文中完整性标签的完整级别,该安全上下文中预先配置有指示安全级别的保密性标签,通过上述调整,根据主体和客体的安全级别,以及调整后的完整级别,执行当前访问操作;本实施例中通过在blp模型的基础上实现biba模型,将完整性标签和保密性标签设置在同一安全上下文中,并且可以根据当前访问操作动态调整完整级别,以实现blp模型与biba模型共存的应用方式,解决了现有技术中的数据访问控制方式,由于只能选择性的使用blp模型或biba模型,从而造成了信息访问无法兼顾保密性和完整性的问题。

可选地,图6为本发明实施例提供的另一种数据访问控制方法的流程图,在上述图5所示实施例的基础上,本实施例中调整主体或客体的具体方式,即上述实施例中的s110可以包括:

s111,在完整级别较高的主体对完整级别较低的客体执行读操作时,将主体的完整级别降低为客体的完整级别。或者可以包括:

s112,在完整级别较低的主体对完整级别较高的客体执行写操作时,将客体的完整级别降低为主体的完整级别。

在本实施例中,如图7所示,为图6所示实施例提供的数据访问控制方法中一种模型应用示意图。本实施例提供的访问控制方法中,对于共存的blp模型和biba模型,约定主体和客体的完整级别的调整是永久生效的。图7中的进程a的保密性标签和完整性标签为(s3:i2),即中间方框,安全级别为“s3,机密”,完整级别为“i2,中完整度”,现有技术中blp模型和biba模型共存的情况中,限制了主体对不同安全级别和完整级别的客体的读写操作,图中的“r”和“w”为现有技术的共存模型可以执行的读写操作,采用本实施例提供的方法实现的“低水印biba模型”,可以实现图7 中“r(2)”和“w(3)”的访问许可。

举例来说,若进程a(s3:i2)需要执行的当前操作为r(2),由于该进程a完整级别高于客体i1的完整级别,因此将该进程a的完整级别调整为i1,即进程a执行r(2)操作后,该进程a的级别调整为(s3:i1)。

再举例来说,若进程a(s3:i2)需要执行的当前操作为w(3),由于w(3)操作中客体的完整级别高于进程a的完整级别,因此将该客体的完整级别由i3调整为i2,即进程a执行w(3)操作后,被写入文件的完整级别调整为i2。

进一步地,本实施例中对主体或客体的完整级别的调整方式,即上述实施例中的s110还可以为:s113,通过修改命令所指示的完整级别,将主体或客体的安全上下文中的完整性标签调整为相应的完整级别。

在本实施例中,用户或设计人员可以当前访问需求,或者主体或客体对完整级别范围要求,可以自行调整主体或客体的完整级别,可以通过设置命令,即“chcon命令”来设置完整级别的参数“i”。

例如,如设置/root以及目录下所有的文件和子目录的完整性标签为i2。

#chcon-ii2-r/root

通过上述命令,/root目录下面的文件的完整性级别就会全部被修改为i2,其格式形如:

user_u:user_r:user_t:s0:i2

需要说明的是,本实施例中的s111、s112和s113为选择执行的,通常根据当前进程执行访问的类型,以及主体和客体的完整性级别选择其中一种方式进行调整;另外,用户或设计人员可以根据需求在任意时刻执行s113。

在本发明各实施例中,主体和客体安全上下文中的完整性标签是预先配置的,如图8为本发明实施例提供的又一种数据访问控制方法的流程图,在上述图5所示实施例的基础上,本实施例在s110之前还包括:s100,分别在主体和客体的安全上下文中配置完整性标签。

本实施例在具体实现中,客体的安全上下文中配置完整性标签的方式可以包括:

s101,在安全os启动的过程中对客体的安全上下文进行初始化配置。

s102,通过读取预置的客体完整性级别配置文件,在客体的安全上下文中配置所述完整性标签。

本实施例中客体完整性级别配置文件例如为:/etc/selinux/file_lomac

配置文件的结构如下:

<file/directorypath><integritylevel>

/etc/*12

/root/test.txt2

此时可以在系统中通过命令“ls-z”查看客体的完整性级别,例如:

#ls-z/root/test.txt

得到的查看结果为:user_u:user_r:user_t:s0:i2。

需要说明的是:上述user_u、user_r、user_t、s0可能会因为具体情况而变化,这里只是为了说明文件/root/test.txt的完整性级别为i2,至于前面的“用户:角色:类型:安全级别”是为了更好的说明文件后面的完整性级别i2。

其格式为:

用户:角色:类型:安全级别:完整级别,即完整性级别是继安全级别后的一种扩展。同理可以利用命令“ls-d”查看/etc/目录的完整性级别,例如:

#ls-d-z/etc/

得到的查看结果为:user_u:user_r:user_t:s0:i12。该表达式中的“用户:角色:类型:安全级别”与上述描述相同,故不再赘述。

如图9所示,为图8所示实施例提供的一种数据访问控制方法中一种应用场景示意图,图9为在客体的安全上下文中配置完整性标签的应用场景,在客体的安全上下文中配置完整性标签,通常在系统启动阶段由0号进程完成完整性标签的初始配置,具体包括:

s210,多操作系统启动程序(grandunifiedbootloader,简称为:grub)和小内核启动。

s220,切换根文件系统。

s230,启动0号进程(systemd)。

s240,调用rhel-autorelabel脚本。

s250,初始化客体的完全上下文。

s260,读取客体完整性配置文件。该完整性配置文件在上述实施例中已经具体说明,故在此不再赘述。

s270,系统服务启动阶段。

另外,图8所示实施例在具体实现中,主体的安全上下文中配置完整性标签的方式可以包括:

s103,在安全os中进行用户登陆的过程中对主体的安全上下文进行初始化配置。

s104,通过读取预置的主体完整性级别配置文件,在主体的安全上下文中添加完整性标签。

本实施例中主体完整性级别配置文件例如为:/etc/selinux/user_lomac

配置文件的结构如下:

<username><integritylevel>

test10

#test用户设置的完整标签级别为10,此时可以在系统中通过命令“id-z”查看用户的完整性级别,例如:

#id-z

得到的查看结果为:user_u:user_r:user_t:s0:i10。

如图10所示,为图8所示实施例提供的一种数据访问控制方法中另一种应用场景示意图,图10为在主体的安全上下文中配置完整性标签的应用场景,在主体的安全上下文中配置完整性标签,通常通过内核态组件和用户态组件的协同操作完成完整性标签的初始配置,具体包括:

s310,用户登陆并进行身份认证。

s320,密码检验。

s311,会话初始化。

s321,初始化主体的完全上下文。

s322,读取主体完整性配置文件。该完整性配置文件在上述实施例中已经具体说明,故在此不再赘述。

s312,后续初始化设置。

s313,成功登陆。

需要说明的是,图9所示应用场景中的s310、s311和s312~s313,为在用户态组件上执行的操作,该用户态组件例如是具有图形用户界面(graphicaluserinterface,简称为:gui)的终端;s320和s321~s322为在内核态组件上执行的操作,该内核态组件例如是可插拔认证(pluggableauthenticationmodules,简称为:pam)模块。

还需要说明的,图8所示实施例中对主体和客体配置完整性标签,通常为在系统启动阶段先配置客体的完整性标签,在系统启动后,通过用户登陆来配置主体的完整性标签;即图8所示实施例中的s101~s102在s103~s104之前执行。

本发明各实施例在具体实现中,可以通过“低水印biba模型”的外部接口设计调整完整级别,该外部接口可以是在配置主体和客体完整性配置文件中设计的。具体地,本实施例中主体完整性级别配置文件中可以包括第一级别调整参数,例如参数“lomac”,该第一级别调整参数为1时,指示开启“下读”操作权限,即允许将主体的完整级别由高调低,该第一级别调整参数为0时,指示关闭“下读”操作权限,即禁止将主体的完整级别由高调低;另外,第一级别调整参数的初始值为1,即默认开启基于主体“下读”操作权限。本实施例通过在策略的biba模型基础上,允许“下读”操作,当主体读较低完整级别的客体时,主体的完整级别降低为客体的完整级别。

另一方面,本实施例中客体完整性级别配置文件中包括第二级别调整参数,例如参数“/proc/sys/selinux/”,该第二级别调整参数为1时,指示开启“上写”操作权限,即允许将客体的完整级别由高调低,该第二级别调整参数为0时,指示关闭“上写”操作权限,即禁止将客体的完整级别由高调低; 另外,第二级别调整参数的初始值为0,即默认关闭基于客体“上写”操作权限。本实施例通过在严格策略的biba模型基础上,允许“上写”操作。当主体写高完整级别的客体时,客体的完整级别降低为主体的完整级别。

进一步地,本实施例的配置文件中还可以设置有参数“low-watermark”,该参数为1时,指示当前内核开启本发明实施例提供的完整性控制策略,即开启“低水印biba模型”,该参数为0是,指示为biba模型为严格策略的biba模型。

需要说明的是,本发明各实施例为了解决blp模型和biba模型共存中存在的信息孤岛问题,具有如下约定:

1、有完整标标签的主体和客体之间的访问控制方式:采用“低水印biba模型”动态调整主体或客体完整性标签级别;即本发明各实施例提供的对严格biba模型的一种改进方法,所谓“低水印”就是指在动态调整的时候取低完整级别。

2、特殊完整性标签的主体访问

1)、无完整性标签的主体,其完整级别等同于i0,仅允许对有完整性标签的客体执行“读操作”。

在本发明实施例提供的方法中,假设没有完整性标签的主体是一个非法,那么如果通过降低客体的完整级别,从而实现给没有完整性标签的主体赋予“上写”权限,很可能就会破会数据的完整性,因此,该条原则就是为了与严格biba模型的禁止上写操作保持一致。

2)、有完整性标签主体和无完整性标签客体的访问,该情况下无完整性控制策略,仅受selinuxdte策略限制,selinuxdte是指selinux的域类型增强;其中,dte为:domainandtypeenforcementforlinux,即为linux域类型增强;selnux为:securityenhancements(se)forlinux,即为linux安全增强,selinux和dte都是系统中的一种访问控制技术。

3)无完整性标签的主体和客体间的访问,该情况下无完整性控制策略,同样仅受selinuxdte策略限制。

进一步地,说明本发明各实施例提供的访问控制方法中完整级别的调整 原则,包括如下原则:

1、主客体完整级别自动调整遵循当前内核生效的“低水印biba模型”;

2、主客体完整级别自动调整遵循完整级别递减原则:即高完整级别向低完整级别调整;

3、除用户登录读取配置文件中的完整级别外,子进程继承其父进程的完整级别;

4、进程创建的文件等客体,客体继承进程的完整级别;

5、当主客体的完整级别完成初始配置后:体完整级别禁止显示调整;并且客体完整级别不能通过用户态命令显示调整(selinux设置为permissive情况除外)。

本发明实施例通过“低水印biba模型”的设计以及上述访问原则,可以有效的解决现有技术中blp模型和biba模型共存的情况下存在的信息孤岛问题,以及双高或双低的主体访问受限的问题。

图11为本发明实施例提供的一种数据访问控制装置的结构示意图。本实施例提供的数据访问控制装置适用于执行数据读写访问的情况中,该数据访问控制装置通过硬件和软件结合的方式来实现,该装置可以集成在终端设备的处理器中,供处理器调用使用。如图11所示,本实施例的数据访问控制装置具体包括:相连接的调整模块11和访问模块12。

其中,调整模块11,配置为能够根据安全操作系统os中的当前访问操作,调整主体或客体的安全上下文中完整性标签的完整级别,该主体和客体的安全上下文中预先配置有用于指示安全级别的保密性标签。

本发明实施例提供的数据访问控制装置,为在安全os中执行数据访问时进行保密性控制和完整性控制的方式。为了确保数据保密性,本发明各实施例中的访问控制基于安全性访问控制模型,同样例如基于blp模型,安全os将计算机信息系统中的实体分为主体和客体两部分,其中,主体和可以的定义,以及blp模型为主体和客体配置的安全上下文的具体格式,以及对该安全上下文所执行的各项操作,在上述实施例中已经说明,故在此不再赘述。

需要说明的是,本实施例中主体和客体的安全上下文中配置的完整性标签的方式和格式,以及配置的完整性标签后安全上下文的格式和可以执行的各项操作,在上述实施例中已经说明,故在此不再赘述。

本发明实施例为了便于主体和客体的完整性标签描述简单且易于理解,同时又能兼顾数据保密性的设计,在上述blp模型中主体和客体的安全上下文格式的基础上,本实施例中主体和客体的安全上下文中还具有指示完整级别的完整性标签,例如,在上述安全上下文的末尾增加属性字段“i”来表示数据的完整性标签,从而有效实现对数据完整性的保护。本实施例通过在blp模型中主体和客体的安全上下文中增加可以表示数据完整性的标签,从而在blp模型的基础上实现biba模型,并且可以按照当前访问操作的需求对主体或客体的完整性标签所指示的完整级别进行调整,从而在blp模型的基础上实现了非严格策略的biba模型,即“低水印biba模型”。

访问模块12,配置为能够根据主体和客体的安全级别,以及调整模块11调整后的主体和客体的完整级别,执行当前访问操作。

在本实施例中,已经根据当前访问操作,例如一个进程的安全级别和完整级别对“读”操作和“写”操作的限制出现冲突,调整了主体或客体的完整级别,调整后的主体或客体的完整级别可以执行当前访问操作。

本实施例提供的访问控制模型,通过重新设计blp模型和biba模型工作的方式,实现模型共存的方式并非两个独立的模型,而是在blp模型的基础上设计biba模型,并且biab模型中的完整性标签可以根据当前访问操作,进行调整,以实现一种“低水印biba模型”,从而可以兼顾数据访问的保密性和完整性。

本发明实施例提供的数据访问控制装置用于执行本发明图5所示实施例提供的数据访问控制方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

可选地,本发明上述实施例中调整模块11调整主体或客体的安全上下文中完整性标签的完整级别的具体方式,可以为:配置为能够在完整级别较高的主体对完整级别较低的客体执行读操作时,将主体的完整级别降低为客体的完整级别;或者,配置为能够在完整级别较低的主体对完整级别较高的客 体执行写操作时,将客体的完整级别降低为主体的完整级别。

进一步地,调整模块11调整主体或客体的安全上下文中完整性标签的完整级别的具体方式,还可以为:配置为能够通过修改命令所指示的完整级别,将主体或客体的安全上下文中的完整性标签调整为相应的完整级别。

需要说明的是,本实施例中调整模块11的上述具体调整方式为选择执行的,通常根据当前进程执行访问的类型,以及主体和客体的完整性级别选择其中一种方式进行调整;另外,用户或设计人员可以根据需求在任意时刻通过修改命令调整主体或客体的完整级别。

本发明实施例提供的数据访问控制装置用于执行本发明图6所示实施例提供的数据访问控制方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

在本发明各实施例中,主体和客体安全上下文中的完整性标签是预先配置的,如图12所示,为本发明实施例提供的另一种数据访问控制装置的结构示意图,在上述图11所示实施例的基础上,本实施例中提供数据访问控制装置还包括:分别与调整模块11和访问模块12相连接的配置模块13,配置为能够在调整模块11调整主体或客体的安全上下文中完整性标签的完整级别之前,分别在主体和客体的安全上下文中配置完整性标签。

在具体实现中,本实施例中的配置模块13包括:相连接的初始化单元14和配置单元15;用于在主体的安全上下文中配置所述完整性标签,其中,初始化单元14,配置为能够在安全os中进行用户登陆的过程中对主体的安全上下文进行初始化配置;配置单元15,配置为能够通过读取预置的主体完整性级别配置文件,在初始化单元14初始化后的主体的安全上下文中添加完整性标签。本实施例中的主体完整性级别配置文件中包括第一级别调整参数,第一级别调整参数为1时,指示开启“下读”操作权限,第一级别调整参数为0时,指示关闭“下读”操作权限,并且第一级别调整参数的初始值为1。

另外,本实施例中的初始化单元14和配置单元15还用于在客体的安全上下文中配置完整性标签,其中,初始化单元14,配置为能够在安全os启动的过程中对客体的安全上下文进行初始化配置;配置单元15,配置为能够通过读取预置的客体完整性级别配置文件,在初始化单元14初始化后的客体 的安全上下文中配置完整性标签。本实施例中的客体完整性级别配置文件中包括第二级别调整参数,第二级别调整参数为1时,指示开启“上写”操作权限,第二级别调整参数为0时,指示关闭“上写”操作权限;并且该第二级别调整参数的初始值为0。

需要说明的是,本实施例中配置模块13在客体和主体的安全上下文中配置完整性标签的具体方式如上述图9和图10,通常为在系统启动阶段先配置客体的完整性标签,在系统启动后,通过用户登陆来配置主体的完整性标签。

还需要说明的是,本实施例提供的数据访问控制装置,为了解决blp模型和biba模型共存中存在的信息孤岛问题,约定的主体和客体的访问方式,以及完整级别的调整原则在上述实施例中已经说明,故在此不再赘述。

本发明实施例提供的数据访问控制装置用于执行本发明图7所示实施例提供的数据访问控制方法,具备相应的功能模块,其实现原理和技术效果类似,此处不再赘述。

在具体实现中,本发明图11到图12所示各实施例中的调整模块11、访问模块12和配置模块13可以通过终端设备的处理器来实现,其中的各单元和子单元同样可以通过终端设备的处理器来实现,该处理器例如可以是一个中央处理器(centralprocessingunit,简称为:cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为:asic),或者是完成实施本发明实施例的一个或多个集成电路。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可以通过程序来指令相关硬件(例如处理器)完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,例如通过集成电路来实现其相应功能,也可以采用软件功能模块的形式实现,例如通过处理器执行存储于存储器中的程序/指令来实现其相应功能。本发明实施例不限制于任何特定形式的硬件和软件的结合。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人 员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1