一种多粒度分布式信息流控制方法及系统与流程

文档序号:11138625阅读:554来源:国知局
一种多粒度分布式信息流控制方法及系统与制造工艺

本发明涉及访问控制,特别涉及一种多粒度分布式信息流控制方法及系统。



背景技术:

数据安全由于其在实际应用中的基础性地位,已经成为最亟待突破和解决的首要问题。

在研究和实践过程中,本发明的发明人发现:传统访问控制模型如自主访问控制模型,权限授予基本单位为用户,管控粒度较粗,但管理方便,实际应用较多;分布式信息流控制模型,可管控进程级的行为,管控粒度较细,但管理复杂,实际应用相对较少。



技术实现要素:

针对现有技术的不足,本发明提出一种多粒度分布式信息流控制方法及系统。

本发明提出一种多粒度分布式信息流控制方法,包括:

步骤1,设置多粒度管控类别列表,所述多粒度管控类别列表包括多个管控类别,通过相应的管控类别,对数据进行多粒度的访问控制,其中每个所述管控类别对应一种全局级别管控与一种全局进程级别管控;

步骤2,创建全局能力表与细粒度能力表,并设置信息流控制规则,通过所述全局能力表、所述细粒度能力表、所述信息流控制规则,对数据进行多粒度多强度访问控制,其中所述全局能力表用于粗粒度能力授予,其与所述多粒度管控类别列表相对应。

用于访问控制的主体为:客体标记、主体标记。

用p,q表示主体或者客体,Sp表示p的机密性标签集,Ip表示p的完整性标签集,Dp表示p的双权限标签集,Rp表示p的可删除标签集,Ap表示p的可添加标签集,所述信息流控制规则为:

1)如果p和q的安全标记满足以下关系

则从p到q的数据流动为安全;

2)如果不满足1)的关系,但是满足

则从p到q的数据流动为安全的,而且无需改变p,q的安全标记,直接进行通信;

3)如果不满足1)和2)的关系,但是满足

则p和q可以进行通信,但在通信之前,将安全标记改变,以满足且

粗粒度能力授权的授权粒度为全局授权粒度,并有多种的全局粒度级别,对应各自的全局能力表;细粒度能力授权的授权粒度关联到某一类进程,并有多种的细粒度级别,对应各自的细粒度能力表。

还包括全局能力授权方式:主体将创建的能力添加到全局能力表,实现对全局粒度级别的数据保护隔离和共享;

细粒度能力授权方式:主体将创建的能力添加到细粒度能力表,实现对细粒度级别的数据共享;

细粒度能力申请方式:主体向能力创建者申请所述能力,能力创建者判断是否授予能力,若授予能力,则将所述能力添加到相应列表。

本发明还提出一种多粒度分布式信息流控制系统,包括:

设置多粒度管控类别列表模块,用于设置多粒度管控类别列表,所述多粒度管控类别列表包括多个管控类别,通过相应的管控类别,对数据进行多粒度的访问控制,其中每个所述管控类别对应一种全局级别管控与一种全局进程级别管控;

访问控制模块,用于创建全局能力表与细粒度能力表,并设置信息流控制规则,通过所述全局能力表、所述细粒度能力表、所述信息流控制规则,对数据进行多粒度多强度访问控制,其中所述全局能力表用于粗粒度能力授予,其与所述多粒度管控类别列表相对应。

用于访问控制的主体为:客体标记、主体标记。

用p,q表示主体或者客体,Sp表示p的机密性标签集,Ip表示p的完整性标签集,Dp表示p的双权限标签集,Rp表示p的可删除标签集,Ap表示p的可添加标签集,所述信息流控制规则为:

1)如果p和q的安全标记满足以下关系

则从p到q的数据流动为安全;

2)如果不满足1)的关系,但是满足

则从p到q的数据流动为安全的,而且无需改变p,q的安全标记,直接进行通信;

3)如果不满足1)和2)的关系,但是满足

则p和q可以进行通信,但在通信之前,将安全标记改变,以满足且

粗粒度能力授权的授权粒度为全局授权粒度,并有多种的全局粒度级别,对应各自的全局能力表;细粒度能力授权的授权粒度关联到某一类进程,并有多种的细粒度级别,对应各自的细粒度能力表。

还包括全局能力授权方式:主体将创建的能力添加到全局能力表,实现对全局粒度级别的数据保护隔离和共享;

细粒度能力授权方式:主体将创建的能力添加到细粒度能力表,实现对细粒度级别的数据共享;

细粒度能力申请方式:主体向能力创建者申请所述能力,能力创建者判断是否授予能力,若授予能力,则将所述能力添加到相应列表。

由以上方案可知,本发明的优点在于:

第一、在分布式信息流模型基础上添加多粒度能力授权方案,方便全局粗粒度的数据隔离保护和细粒度的数据共享,具备了传统访问控制模型和分布式信息流控制模型的优点;第二、提供全面的能力授权方式和零机密主体能力授权机制,方便了能力授权,进而方便了数据的隔离保护和共享;第三、通过设计适用于云平台的多粒度管控类型列表,能扩展到云平台的数据保护。

附图说明

图1为一种多粒度能力授权方案图;

图2为全面的能力授权方式图;

图3为零机密进程能力授权机制图。

具体实施方式

本发明提出一种多粒度分布式信息流控制模型:

特征1)提供多粒度的能力授权,包括粗粒度能力授权和细粒度能力授权;

特征2)提供全面的能力授权方式;

特征3)使用零机密主体实施能力授权;

特征4)可同时实现传统访问控制的粗粒度管控和分布式信息流控制的细粒度管控的能力;

特征5)能扩展到云平台的数据保护。

多粒度分布式信息流控制模型拥有多粒度管控类别列表:ControlTypeList=[ControlType1,ControlType2,ControlType3,…,ControlT ypeN];一个多粒度管控类别列表包含多个管控类别,通过不同的管控类别,实现对数据的不同粒度的访问控制;每一种管控类别可对应一种全局级别管控和一种全局进程级别管控。如图1所示,为当ControlTypeList=[OSGroup,OSRole,OSUser]时的多粒度能力授权方案。。

在传统访问控制模型中,可包含的管控类别有:用户组(OSGroup),角色(OSRole),用户(OSUser)。则多粒度管控类别列表为OSControlTypeList=[OSGroup,OSRole,OSUser]。

该模型中用于访问控制的实体如下:

客体标记,包括安全标签、安全属性。客体的安全标签,包括机密性标签和完整性标签,表达了客体创建者对客体添加的安全属性,用于保护客体的机密性和完整性。主体在创建客体时,可创建标签,并向该客体添加标签。客体的安全属性,包括用于访问控制的客体属性,如客体所属主体(客体创建者);

客体标记可设计为:[TagSets(IntegrityTagSet,SecurityTagSet);SecurityAttribute]

主体标记,包括安全标签、安全能力、安全属性。主体的安全标签,包括机密性标签和完整性标签,表达了主体的安全属性,也表达了主体的操作权限。主体可通过自身能力添加标签和删除标签。主体的安全能力,每个标签对应可添加标签和可删除标签,分别实现向主体添加标签和删除标签,所以一共有四种能力。主体在创建客体时,可以创建标签,同时产生可添加标签能力和可删除标签能力。主体向客体添加标签,设置客体的安全属性和访问要求;也可以通过能力授权,将能力分享出去,实现对客体数据共享。主体的能力可来自自己创建标签时产生的能力,也可来自其它主体的能力授予。主体的安全属性,包括用于访问控制的客体属性,如主体的用户组,主体的角色,主体的用户等;

主体标记可设计为:[TagSets(IntegrityTagSet,SecurityTagSet);CapSets(AddIntegrityTagSet,AddSecurityTagSet,RemoveIntegrityTagSet,RemoveSecurityTagSet);SecurityAttribute]

全局能力表,用于实现粗粒度能力授予,与多粒度控制类别列表对应;

全局能力表可包含:GlobalCapList=[ControlType1,ControlType2,ControlType3,…,ControlTypeN],即OSGlobalCapList=[OSGroupList,OSRoleList,OSUserList]

细粒度能力表,用于实现细粒度的能力授予,与多粒度控制类别列表对应;

细粒度能力表可包含:

ProcessCapList=[ControlType1,ControlType2,ControlType3,…,Contr olTypeN],即

OSProcessCapList=[OSGroupProcessList,OSRoleProcessList,OSUserProces sList]

客体是指被访问的资源,如文件等。主体是指可访问资源的进程或线程,同一个可执行文件运行的2个进程,认为是不同的主体,如果其属性不同,则安全属性也不同。全局能力表用于实现粗粒度的信息流控制;细粒度能力表用于实现细粒度的信息流控制;

该模型的信息流控制规则如下:

用p,q表示主体或者客体,Sp表示p的机密性标签集,Ip表示p的完整性标签集,Dp表示p的双权限标签集,Rp表示p的可删除标签集,Ap表示p的可添加标签集。安全的信息流动规则如下:

S1,如果p和q的安全标记满足以下关系

那么从p到q的数据流动就是安全的。

S2,如果不满足上述关系(1),但是满足

那么从p到q的数据流动也是安全的,而且不需要改变p,q的安全标记,就可以直接进行通信。上述关系式说明p,q可以通过改变自身标记去完成安全通信,而且通信结束还可以将标记还原到通信前状态。

S3,如果不满足上述关系(1)和(2),但是满足

那么p和q也可以进行通信,但是在通信之前,需要通过自身能力将安全标记改变,以满足如下关系

这种情况下,并不能保证通信结束后p和q能将标记还原到通信前状态,所以要改变自身安全标记之后才能进行通信。

根据数据的类别,又将信息流控制划分为读写文件、进程间通信和网络通信等。

特征1)提供多粒度能力授权,通过粗粒度能力授权实现粗粒度的数据保护隔离及共享;通过细粒度能力授权方法实现细粒度的数据保护隔离及共享,如图1所示:

粗粒度能力授权的授权粒度是全局授权粒度,并有不同的全局粒度级别,对应不同的全局能力表。细粒度能力授权的授权粒度关联到某一类特定进程(如,一般一个应用启动的多个进程属于一类进程,每类进程中的所有进程拥有相同的能力集合,但是它们标签集合可以不同,从而可以完成不同的任务),并有不同的细粒度级别,对应不同的细粒度能力表。

特征2)全面的能力授权方式,包括分布式授权方式和集中式授权方式,如图2所示:

S1-1,分布式授权方式由能力创建者实施,前两种是分布式主动授权方式,第三种是分布式被动授权方式,包括:

全局能力授权方式:主体将创建的能力添加到全局能力表,实现对该全局粒度级别的数据保护隔离和共享。其它主体可从自身对应的全局能力表中获取到能力。

细粒度能力授权方式:主体将创建的能力添加到细粒度能力表,实现对该细粒度级别的数据共享。其它主体可从自身对应的细粒度能力表中获取到能力。

细粒度能力申请方式:其它主体向能力创建者申请该能力,能力创建者判断授予能力或不授予能力,此时授予直接将能力添加到OSUserProcessList。其它主体可从自身对应的细粒度能力表中获取到能力。

S1-2,集中式授权方式由管理员或管理进程实施,前两种是集中式主动授权方式,第三种是集中式被动授权方式,包括:

全局能力授权方式:管理员或管理进程将创建的能力添加到全局能力表,实现对该全局粒度级别的数据保护隔离和共享。其它主体可从自身对应的全局能力表中获取到能力。

细粒度能力授权方式:管理员或管理进程将创建的能力添加到细粒度能力表,实现对该细粒度级别的数据共享。其它主体可从自身对应的细粒度能力表中获取到能力。

细粒度能力申请方式:其它主体向管理员或管理进程申请该能力,管理员或管理进程判断授予能力或不授予能力,此时授予直接将能力添加到OSUserProcessList。其它主体可从自身对应的细粒度能力表中获取到能力。

特征3)使用零机密主体实施能力授权,以灵活的共享数据。此处主要指零机密主体实施分布式能力授权,集中式能力授权由管理员或管理进程实施。如图3所示:

零机密主体指一个主体只拥有其自己创建的标签。

如果一个主体拥有外来标签(非自己创建的标签),且该标签是一个机密性标签,那么该主体可能读取了该标签所保护的敏感数据。如果此时主体进行能力授权,会改变授权对象的安全属性,此时会产生隐通道,泄露机密数据。而如果此时该主体是零机密主体,即该主体没有外来获取到的机密性数据,则不会泄露机密数据。在集中式能力授权方式中,由管理员或管理进程实施能力授权,修改授权对象的安全属性,其它主体无法控制这种行为,所以不会产生隐通道泄露机密数据。所以在本发明模型中如果某个主体包含外来标签,则其不能执行能力授权等操作。每个主体在执行授权操作时,需要由对应的零机密主体实施能力授权。

一个应用程序同时执行多次,可有多个应用进程。如果进程在加载后是零机密进程,此时可以进行能力授权;在获取外来标签后,变成非零机密进程,不能再进行能力授权,如果此时需要进行能力授权则需要由其它零进程实施能力授权。零机密主体必须保证,该主体不能访问到非零机密主体的数据,例如内存数据等。

特征4)可同时实现传统访问控制的粗粒度管控和分布式信息流控制的细粒度管控的能力。

实现传统访问控制的粗粒度管控的能力:本发明的访问控制模型是在经典分布式信息流控制模型的基础上添加了不同粒度的能力授权,通过支持全局能力表支持粗粒度能力授权以实现粗粒度的数据保护和共享,同时支持集中式能力授权方式,所以可以实现传统访问控制的粗粒度管控。

实现分布式信息流控制的细粒度管控的能力:本发明的访问控制模型是在经典分布式信息流控制模型的基础上添加了不同粒度的能力授权,访问控制实施是进程粒度级别,且提供了进程粒度级别的能力授权方式,所以仍具有细粒度管控能力。

使用本发明模型,可同时根据粗粒度管控和细粒度管控的优缺点,设计符合实际应用场景的访问策略。

特征5)能扩展到云平台的数据保护。在不同的应用场景,可设计不同的多粒度管控列表。设计适应于云平台的多粒度管控列表,能将现有模型扩展到云平台的数据保护。

在云平台基础设施即服务中,可包含的管控类别有(以openstack为例):云域(CloudDomain),云项目(CloudProject),云实例(CloudInstance),云组(CloudGroup),云用户(CloudUser),云角色(CloudRole),用户(OSUser),用户组(OSGroup),角色(OSRole)。则多粒度管控类别列表为IaaSControlTypeList=[CloudDomain,CloudProject,CloudInstance,CloudGroup,CloudUser,CloudRole,OSUser,OSGroup,OSRole]。此处的云域等概念和openstack中有区别,此处是用于保护云平台数据的,而在openstack中用于保护云服务的API。

在云平台软件即服务中,可包含的管控类别有:云域(CloudDomain),云项目(CloudProject),云实例(CloudInstance),云组(CloudGroup),云用户(CloudUser),云角色(CloudRole)。则多粒度管控类别列表为SaaSControlTypeList=[CloudDomain,CloudProject,CloudInstance,CloudGroup,CloudUser,CloudRole]。此处的云域等概念是用于保护云应用的数据。

本发明还提出一种多粒度分布式信息流控制系统,包括:

设置多粒度管控类别列表模块,用于设置多粒度管控类别列表,所述多粒度管控类别列表包括多个管控类别,通过相应的管控类别,对数据进行多粒度的访问控制,其中每个所述管控类别对应一种全局级别管控与一种全局进程级别管控;

访问控制模块,用于创建全局能力表与细粒度能力表,并设置信息流控制规则,通过所述全局能力表、所述细粒度能力表、所述信息流控制规则,对数据进行多粒度多强度访问控制,其中所述全局能力表用于粗粒度能力授予,其与所述多粒度管控类别列表相对应。

用于访问控制的主体为:客体标记、主体标记。

用p,q表示主体或者客体,Sp表示p的机密性标签集,Ip表示p的完整性标签集,Dp表示p的双权限标签集,Rp表示p的可删除标签集,Ap表示p的可添加标签集,所述信息流控制规则为:

1)如果p和q的安全标记满足以下关系

则从p到q的数据流动为安全;

2)如果不满足1)的关系,但是满足

则从p到q的数据流动为安全的,而且无需改变p,q的安全标记,直接进行通信;

3)如果不满足1)和2)的关系,但是满足

则p和q可以进行通信,但在通信之前,将安全标记改变,以满足且

粗粒度能力授权的授权粒度为全局授权粒度,并有多种的全局粒度级别,对应各自的全局能力表;细粒度能力授权的授权粒度关联到某一类进程,并有多种的细粒度级别,对应各自的细粒度能力表。

还包括全局能力授权方式:主体将创建的能力添加到全局能力表,实现对全局粒度级别的数据保护隔离和共享;

细粒度能力授权方式:主体将创建的能力添加到细粒度能力表,实现对细粒度级别的数据共享;

细粒度能力申请方式:主体向能力创建者申请所述能力,能力创建者判断是否授予能力,若授予能力,则将所述能力添加到相应列表。

本发明通过如下技术方案实现。实例为基于Openstack云计算平台基础设施即服务的访问控制模型的具体设计。

本发明提出一种多粒度分布式信息流控制模型。

在云平台基础设施即服务中,可包含的管控类别有(以openstack为例):云域(CloudDomain),云项目(CloudProject),云实例(CloudInstance),云组(CloudGroup),云用户(CloudUser),云角色(CloudRole),用户(OSUser),用户组(OSGroup),角色(OSRole)。则多粒度管控类别列表为IaaSControlTypeList=[CloudDomain,CloudProject,CloudInstance,CloudGroup,CloudUser,CloudRole,OSUser,OSGroup,OSRole]。此处的云域等概念和openstack中有区别,此处是用于保护云平台数据的,而在openstack中用于保护云服务的API。CloudGroup,CloudRole和CloudUser提供云平台范围的访问控制,而OSGroup,CloudRole和OSUser提供具体虚拟机实例内的访问控制。允许多个CloudUser使用不同的OSUser登录一个虚拟机实例,同一个CloudUser在不同的虚拟机实例中可使用不同的OSUser。

该模型中用于访问控制的安全结构有:

客体标记可设计为:[TagSets(IntegrityTagSet,SecurityTagSet);SecurityAttribute]

主体标记可设计为:[TagSets(IntegrityTagSet,SecurityTagSet);CapSets(AddIntegrityTagSet,AddSecurityTagSet,RemoveIntegrityTagSet,RemoveSecurityTagSet);SecurityAttribute]

全局能力表可设计为:IaaSGlobalCapList=[CloudDomainList,CloudProjectList,CloudInstanceList,CloudGroupList,CloudUserList,CloudRoleList,OSUserList,OSGroupList,OSRoleList]

细粒度能力表可设计为:IaaSProcessCapList=[CloudDomainProcessList,CloudProjectProcessList,CloudInstanceProcessList,CloudGroupProcessList,CloudUserProcessList,CloudRoleProcessList,OSUserProcessList,OSGroupProcessList,OSRoleProcessList]

该模型的信息流控制规则如下:

用p,q表示主体或者客体,Sp表示p的机密性标签集,Ip表示p的完整性标签集,Dp表示p的双权限标签集,Rp表示p的可删除标签集,Ap表示p的可添加标签集。安全的信息流动规则如下:

如果p和q的安全标记满足以下关系

那么从p到q的数据流动就是安全的。

如果不满足上述关系(1),但是满足

那么从p到q的数据流动也是安全的,而且不需要改变p,q的安全标记,就可以直接进行通信。上述关系式说明p,q可以通过改变自身标记去完成安全通信,而且通信结束还可以将标记还原到通信前状态。

如果不满足上述关系(1)和(2),但是满足

那么p和q也可以进行通信,但是在通信之前,需要通过自身能力将安全标记改变,以满足如下关系

这种情况下,并不能保证通信结束后p和q能将标记还原到通信前状态,所以要改变自身安全标记之后才能进行通信。

根据数据的类别,又将信息流控制划分为读写文件、进程间通信和网络通信等。

粗粒度能力授权的不同全局粒度级别,对应不同的全局能力表,有:[CloudDomainList,CloudProjectList,CloudInstanceList,CloudGroupList,CloudUserList,CloudRoleList,OSUserList,OSGroupList,OSRoleList]

细粒度能力授权的不同的细粒度级别,对应不同的细粒度能力表,有:[CloudDomainProcessList,CloudProjectProcessList,CloudInstanceProcessList,CloudGroupProcessList,CloudUserProcessList,CloudRoleProcessList,OSUserProcessList,OSGroupProcessList,OSRoleProcessList]

可提供能力授权方式如下:

分布式全局能力授权方式:由零机密主体将创建的能力添加到全局能力表,实现对该全局粒度级别的数据保护隔离和共享。其它主体可从自身对应的全局能力表中获取到能力。

分布式细粒度能力授权方式:由零机密主体将创建的能力添加到细粒度能力表,实现对该细粒度级别的数据共享。其它主体可从自身对应的细粒度能力表中获取到能力。

分布式细粒度能力申请方式:由其它主体向能力创建者的零机密主体申请该能力,该零机密主体判断授予能力或不授予能力,此时授予直接将能力添加到CloudUserProcessList。其它主体可从自身对应的细粒度能力表中获取到能力。

集中式全局能力授权方式:由管理员将创建的能力添加到全局能力表,实现对该全局粒度级别的数据保护隔离和共享。其它主体可从自身对应的全局能力表中获取到能力。

集中式细粒度能力授权方式:由管理员将创建的能力添加到细粒度能力表,实现对该细粒度级别的数据共享。其它主体可从自身对应的细粒度能力表中获取到能力。

集中式细粒度能力申请方式:由其它主体向管理员申请该能力,管理员判断授予能力或不授予能力,此时授予直接将能力添加到CloudUserProcessList。其它主体可从自身对应的细粒度能力表中获取到能力。

结合零机密主体的机制,一种具体的能力授权方案如下:在进程启动时,进程是零机密进程,可以进行分布式主动能力授权;在获取到外来标签后,由零机密进程实施分布式被动能力授权;任何时候管理员都可以进行集中式能力授权。

使用本发明的访问控制模型,通过使用全局能力表授权能力,实现粗粒度的数据保护隔离,是粗粒度的信息流管控;通过使用细粒度能力表授权能力,实现细粒度的数据共享,结合进程级的信息流控制执行,是细粒度的信息流管控。

本模型中可通过粗粒度能力授权实现弱管控,通过细粒度能力授权实现强管控,方便根据需要制定访问控制策略。

该访问控制模型的实现需要以下模块。

数据存储模块:可采用数据库存储或文件存储等方式,存储客体安全标记、主体安全标记、审计日志及其它访问控制信息。

拦截系统调用模块:用于拦截系统读写等操作,为访问控制策略执行做准备。

策略管理模块:为权限授予和访问控制策略执行等提供服务,获取和更改主体和客体的安全标记。

策略执行模块:根据主客体安全标记,实施访问控制,决策信息流动。

审计模块:负责审计关键事件和记录日志的工作。

管理进程或管理员:接收能力申请和实施能力授予。

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