用于实行信息流策略的引用监控机系统和方法转让专利

申请号 : CN200680047114.5

文献号 : CN101331495B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : D·J·阿罗约G·R·布莱克利三世D·詹姆塞克S·穆皮迪R·B·威廉斯K·D·西蒙

申请人 : 国际商业机器公司

摘要 :

在引用监控机系统中,数据处理系统的元素与引用监控机中的安全数据结构相关联。从第一元素接收信息流请求以对从该第一元素到第二元素的信息流进行授权。检索与第一元素关联的第一安全数据结构和与第二元素关联的第二安全数据结构。然后,对第一安全数据结构和第二安全数据结构执行至少一个集合论操作,从而确定从第一元素到第二元素的信息流是否将被授权。安全数据结构可以是标签集合,该标签集合具有一个或多个标识将要应用于涉及相关联元素的信息流的安全策略的标签。

权利要求 :

1.一种用于对数据处理系统的元素之间的信息流进行授权的方法,所述方法包括:将所述数据处理系统的元素与引用监控机中的安全数据结构关联起来;

从第一元素接收信息流请求以对从所述第一元素到第二元素的信息流进行授权;

检索与所述第一元素相关联的第一安全数据结构;

检索与所述第二元素相关联的第二安全数据结构;以及

对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作,从而确定从所述第一元素到所述第二元素的信息流是否将被授权。

2.根据权利要求1所述的方法,其中所述第一安全数据结构和所述第二安全数据结构是标签集合,并且其中每个标签集合包括提供所述标签集合中的一个或多个标签的标签列表元素。

3.根据权利要求2所述的方法,其中所述标签列表中的所述标签包括策略类型和值,其中所述策略类型标识将要应用于所述标签集合的安全策略,并且所述值标识将要在对由所述策略类型标识的安全策略进行评估时使用的值。

4.根据权利要求2所述的方法,其中每个标签集合进一步包括指示所述标签集合的版本的版本元素,以及指示所述标签集合包括的标签数量的计数元素。

5.根据权利要求1所述的方法,其中所述第一安全数据结构和第二安全数据结构是标签集合,并且其中每个所述标签集合包括标识信息对象敏感度级别的标签,所述信息对象可以被接收并保持在相应的元素中,而不论将要对所述信息对象执行的特定动作如何。

6.根据权利要求1所述的方法,其中对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作包括使用集合合并、集合交叉或集合补操作来执行至少一个集合论操作。

7.根据权利要求3所述的方法,其中对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作、从而确定从所述第一元素到所述第二元素的所述信息流是否将被授权包括:解析所述第一安全数据结构和第二安全数据结构以识别在所述第一和第二安全数据结构中标识的一个或多个安全策略;以及基于在所述第一和第二安全数据结构中标识的所述安全策略向安全策略框架的一个或多个安全策略模块提供所述第一安全数据结构和第二安全数据结构,其中所述一个或多个安全策略模块基于与用于特定安全策略的所述安全数据结构的所述策略类型元素相关联的值对所述第一安全数据结构和所述第二安全数据结构执行所述至少一个集合论操作。

8.根据权利要求1所述的方法,其中对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作包括:确定与目标元素相关联的标签集合是否是与作为所述信息流主体的信息对象的源元素相关联的标签集合的子集。

9.根据权利要求1所述的方法,其中对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作以确定从所述第一元素到所述第二元素的所述信息流是否将被授权进一步包括:确定作为所述信息流主体的信息对象的安全数据结构;以及

对所述第二安全数据结构和基于所述信息对象的所述安全数据结构和所述第一安全数据结构而生成的有效安全数据结构执行集合论操作。

10.根据权利要求9所述的方法,其中确定信息对象的安全数据结构包括:确定是否已经建立了用于所述信息对象的安全数据结构;以及

如果所述信息对象没有建立的安全数据结构,则将所述信息对象的源元素的安全数据结构与所述信息对象关联起来。

11.根据权利要求9所述的方法,其中所述信息对象的所述安全数据结构标识所述信息对象的敏感度,所述第一安全数据结构标识所述第一元素的授权级别,所述第二安全数据结构标识所述第二元素的授权级别,并且对所述安全数据结构执行至少一个集合论操作以确定所述信息流是否将要被授权仅根据所述信息对象的敏感度和所述第一和第二元素的所述授权级别来确定所述信息流是否将要被授权,而不论作为所述信息流的一部分而要执行的特定动作如何。

12.根据权利要求1所述的方法,其中将相同的至少一个集合论操作应用于所述第一安全数据结构和所述第二安全数据结构,而不论所述信息流是从所述第一元素到所述第二元素还是从所述第二元素到所述第一元素。

13.一种用于对数据处理系统的元素之间的信息流进行授权的装置,包括:通信管理器,其具有侦听器,用于侦听来自于所述数据处理系统的元素的信息流请求;

信息流居间器,其耦合至所述通信管理器,所述信息流居间器用于确定将对信息流进行授权还是拒绝;

安全数据结构存储设备,其耦合至所述信息流居间器,所述安全数据结构存储设备用于存储用于所述数据处理系统的元素的安全信息;以及安全策略框架,其耦合至所述信息流居间器,其中

所述信息流居间器将所述数据处理系统的元素与所述安全数据结构存储设备中的安全数据结构关联起来;

所述通信管理器接收来自于第一元素的信息流请求以对从所述第一元素到第二元素的信息流进行授权;

所述信息流居间器检索与所述第一元素相关联的第一安全数据结构;

所述信息流居间器检索与所述第二元素相关联的第二安全数据结构;以及所述安全策略框架对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作以确定从所述第一元素到所述第二元素的所述信息流是否将被授权。

14.根据权利要求13所述的装置,其中所述第一安全数据结构和所述第二安全数据结构是标签集合,并且其中每个标签集合包括提供所述标签集合的一个或多个标签的标签列表。

15.根据权利要求14所述的装置,其中所述标签列表中的所述标签包括策略类型和值,其中所述策略类型标识将要应用于所述标签集合的安全策略,并且所述值标识将要在对由所述策略类型标识的安全策略进行评估时使用的值。

16.根据权利要求14所述的装置,其中每个标签集合进一步包括指示所述标签集合的版本的版本元素以及指示在所述标签集合包括的标签数量的计数元素。

17.根据权利要求13所述的装置,其中所述第一安全数据结构和第二安全数据结构包括标识信息对象敏感度级别的标签,所述信息对象可以被接收并保持在相应的设备中,而不论将要对所述信息对象执行的特定动作如何。

18.根据权利要求13所述的装置,其中所述安全策略框架通过使用集合合并、集合交叉或集合补操作执行至少一个集合论操作来对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作。

19.根据权利要求18所述的装置,其中所述安全策略框架对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作以通过如下操作来确定从所述第一元素到所述第二元素的所述信息流是否将被授权:解析所述第一安全数据结构和第二安全数据结构以识别在所述第一和第二安全数据结构中标识的一个或多个安全策略;以及基于在所述第一和第二安全数据结构中标识的所述安全策略向所述安全策略框架的所述一个或多个安全策略模块提供所述第一安全数据结构和第二安全数据结构,其中所述一个或多个安全策略模块基于与用于所述安全策略的所述安全数据结构的所述策略类型元素相关联的值对所述第一安全数据结构和所述第二安全数据结构执行所述至少一个集合论操作。

20.根据权利要求13所述的装置,其中所述安全策略框架通过以下操作来对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作:确定与目标元素相关联的安全数据结构是否是与作为所述信息流主体的信息对象的源元素相关联的安全数据结构的子集。

21.根据权利要求13所述的装置,其中所述信息流居间器确定作为所述信息流主体的信息对象的安全数据结构,并且所述安全策略框架对所述第二安全数据结构和作为所述第一安全数据结构和所述信息对象的所述安全数据结构的合并而生成的有效安全数据结构执行集合论操作。

22.根据权利要求21所述的装置,其中所述信息流居间器通过如下操作确定信息对象的安全数据结构:确定是否已经建立了用于所述信息对象的安全数据结构;以及

如果所述信息对象没有建立的安全数据结构,则将所述信息对象的源元素的安全数据结构与所述信息对象关联起来。

23.根据权利要求21所述的装置,其中所述信息对象的所述安全数据结构标识所述信息对象的敏感度,所述第一安全数据结构标识第一设备的授权级别,所述第二安全数据结构标识第二设备的授权级别,并且所述安全策略框架对所述安全数据结构执行至少一个集合论操作以确定所述信息流是否将要被授权仅根据所述信息对象的所述敏感度和所述第一和第二元素的所述授权级别来确定所述信息是否将要被授权,而不论作为所述信息流的一部分而将要执行的特定动作如何。

24.一种用于对设备之间的信息流进行授权的数据处理系统,包括:

第一计算设备,其位于所述数据处理系统的第一隔离中,其中所述第一计算设备具有用于将信息传递到目标元素的源元素;

第二计算设备,其位于所述数据处理系统的第二隔离中,其中所述第二计算设备具有所述目标元素;

引用监控机,其耦合至所述第一计算设备和所述第二计算设备,其监视所述第一隔离和所述第二隔离之间的信息流,其中所述引用监控机:将所述第一隔离和所述第二隔离与安全数据结构关联起来,

从所述源元素接收信息流请求以对从所述源元素到所述目标元素的信息流进行授权,检索与所述第一隔离相关联的第一安全数据结构,检索与所述第二隔离相关联的第二安全数据结构,以及

对所述第一安全数据结构和所述第二安全数据结构执行至少一个集合论操作,从而确定从所述源元素到所述目标元素的信息流是否将被授权。

25.根据权利要求24所述的数据处理系统,其中所述引用监控机包括:通信管理器,其具有侦听器,所述侦听器用于侦听来自于所述数据处理系统的元素的信息流请求;

信息流居间器,其耦合至所述通信管理器,所述信息流居间器用于确定将对信息流进行授权还是拒绝;

安全数据结构存储设备,其耦合至所述信息流居间器,所述安全数据结构存储设备用于存储用于所述数据处理系统的元素的安全信息;以及安全策略框架,其耦合至所述信息流居间器,所述安全策略框架用于将一个或多个安全策略应用于所述数据处理系统的元素的安全信息。

说明书 :

用于实行信息流策略的引用监控机系统和方法

技术领域

[0001] 本发明一般地涉及改进的数据处理系统和方法。更具体地,本发明涉及用于实行信息流策略的引用监控机系统和方法。

背景技术

[0002] 引用监控机是一种对源进行授权以对目标执行特定动作的授权和实行机制。很多引用监控机使用访问控制列表(ACL)来执行此类授权。针对每个源,这些ACL标识源可以访问的目标以及该源被授权拥有的特定类型的访问,即该源可以对目标执行何种动作。
[0003] 大多数现代引用监控机和安全系统通过将“主体(subject)”安全属性以及“目标”安全属性与安全策略规则集合相比较来做出授权决定。经常将不同的数据类型分配给主体和目标安全属性。在www.opengroup.org/onlinepubs/009609199/chap3.htm#tagfcjh_2处描述的ISO 10181-3 Access Control Framework中提供了示出这些不同数据类型的一个示例。在该示例架构中,提供了四个不同的角色或数据类型,即发起者(源)、目标、访问控制实行功能以及访问控制决定功能。主体安全属性和目标安全属性之间的这种差异将不必要的复杂性添加到安全策略评估过程中,在该过程中,主体和目标安全属性的每个可能组合必须配备安全策略规则,从而在运行时间期间得到正确的评估。
[0004] 此外,目标安全属性数据类型通常基于可以在目标资源上执行的操作集合。因此,目标安全属性类型在管理目标资源的应用结构和安全策略评估子系统的结构之间造成了不必要的联系。这继而在安全策略评估子系统中造成了不必要的复杂性,因为安全策略现在必须考虑由应用进行的数据操纵的语义以及安全策略评估的语义。
[0005] 而且,区分主体安全属性和目标安全属性的数据类型在安全策略中造成了不对称,其将安全评估子系统限制于控制从主体(源)到目标(即,将接收信息的对象)的传输,但是不允许它控制从目标到源的传输。换言之,必须针对每对主体和目标之间的每个传输类型建立独立的策略,从而导致安全策略评估子系统更高的复杂性。
[0006] 例如,假设存在两个对象A和B。为了覆盖对象A和B之间的所有可能的传输,在控制信息的传输时必须建立和评估四个策略:(1)A可以(或不可以)向B写入,(2)A可以(或不可以)从B读取,(3)B可以(或不可以)从A读取,以及(4)B可以(或不可以)向A写入。
[0007] 已经针对控制数据处理系统的元素间的信息传输设计了很多不同的机制。例如,在授予Rodney Burnett的、名称为“Method forAttachment and Recognition of External Authorization Policy on FileSystem Resources”的美国专利No.6,766,314中,在文件系统中生成了包含对象的辅助属性的外部安全数据库。在文件访问尝试期间,将文件的标识符与安全数据库中保护文件的集合进行匹配。如果文件不在数据库中,那么不存在对该文件的保护,并且允许请求方访问该文件。如果在数据库中存在匹配,则保护该文件并且基于在外部安全属性中定义的安全规则集合来做出关于是否将允许请求方访问该文件的确定。
[0008] 根据美国专利No.6,766,314的机制,资源管理器包括用于检索安全策略的组件,用于介入对保护文件的访问的组件,以及收集诸如访问用户和尝试动作之类的访问条件的组件。基于该安全策略、被访问的文件以及访问条件,提交有关于对文件访问的授权的决定。
[0009] 因此,在美国专利No.6,766,314的机制中,将对文件访问的授权与用户身份和正在尝试的动作绑定。从而,将正在执行的动作与执行该动作的实体和正在被访问的文件绑定。如上所述,这在管理文件的应用结构和安全策略评估子系统的结构之间造成了不必要的联系。
[0010] 在美国专利No.5,765,153中描述了类似机制。在美国专利No.5,765,153中,提供一种引用监控机,其基于主体身份、对象名称和由保护对象的接口定义的动作来实行策略。而且,通过使授权决定基于实体的身份以及在一个已识别实体上由另一已识别实体正在执行的动作类型,生成了不必要的联系,该联系使得安全策略评估子系统的实现复杂化。

发明内容

[0011] 按照上述内容,有益的是,就数据处理系统元素之间的信息传输来提供一种用于简化安全结构的实现的机制。特别地,有益的是具有一种系统和方法,用于通过将安全策略应用于公共安全属性类型来控制信息流,从而信息传输中包括的动作不会使安全策略的应用复杂化。说明性实施方式提供此类系统和方法。
[0012] 在一个说明性实施方式中,提供一种用于对数据处理系统的元素之间的信息流进行授权的方法。该方法可以包括:将数据处理系统的元素与引用监控机中的安全数据结构关联起来;以及,从第一元素接收信息流请求以对从第一元素到第二元素的信息流进行授权。该方法进一步包括:检索与第一元素相关联的第一安全数据结构,检索与第二元素相关联的第二安全数据结构,以及,对第一安全数据结构和第二安全数据结构执行至少一个集合论(set theory)操作,从而确定从第一元素到第二元素的信息流是否将被授权。例如,第一和第二元素可以是一个或多个应用、一个或多个处理设备、一个或多个数据处理系统、一个或多个数据处理设备资源等等。
[0013] 第一安全数据结构和第二安全数据结构可以是标签集合(labelset)。每个标签集合可以包括提供一个或多个标签集合中的标签的标签列表元素。标签列表中的标签可以包括策略类型和值。策略类型可以标识将要应用于标签集合的安全策略并且值可以标识将要在评估由策略类型所标识的安全策略中使用的值。每个标签集合可以进一步包括指示标签集合版本的版本元素以及指示标签集合中包括的标签数量的计数元素。
[0014] 而且,每个标签集合可以包括标识信息对象敏感度级别的标签,可以在相应元素中接收并且保持该信息对象而不论对该信息对象将执行的特定动作如何。对第一安全数据结构和第二安全数据结构执行至少一个集合论操作可以包括使用集合并(union)、集合交叉(intersection)或集合补(complement)操作来执行至少一个集合论操作。
[0015] 而且,对第一标签集合和第二标签集合执行至少一个集合论操作以确定从第一元素到第二元素的信息流是否将被授权可以包括:解析第一标签集合和第二标签集合以识别在第一和第二标签集合中标识的一个或多个安全策略,以及,基于在第一和第二标签集合中标识的安全策略向安全策略框架的一个或多个安全策略模块提供第一标签集合和第二标签集合。一个或多个安全策略模块可以基于与用于特定安全策略的标签集合的策略类型元素相关联的值来对第一标签集合和第二标签集合执行至少一个集合论操作。
[0016] 对第一安全数据结构和第二安全数据结构执行至少一个集合论操作可以包括:确定与目标元素相关联的标签集合是否是与信息对象的源元素相关联的标签集合的子集,其中信息对象是该信息流的主体。
[0017] 而且,对第一安全数据结构和第二安全数据结构执行至少一个集合论操作以确定从第一元素到第二元素的信息流是否将被授权,可以进一步包括:确定作为信息流主体的信息对象的安全数据结构,以及,对第二安全数据结构和基于信息对象的安全数据结构和第一安全数据结构而生成的有效安全数据结构执行集合论操作。确定信息对象的标签集合可以包括:确定是否已经建立了用于信息对象的安全数据结构,并且如果该信息对象没有已建立的安全数据结构,则将该信息对象的源元素的安全数据结构与该信息对象关联起来。
[0018] 信息对象的安全数据结构可以标识该信息对象的敏感度。第一安全数据结构可以标识第一元素的授权级别。第二安全数据结构可以标识第二元素的授权级别。对安全数据结构执行至少一个集合论操作以确定信息流是否将要被授权可以仅根据信息对象的敏感度以及第一和第二元素的授权级别来确定信息是否将要被授权,而不管作为信息流的一部分而执行的特定动作。
[0019] 相同的至少一个集合论操作可以应用于第一安全数据结构和第二安全数据结构,而不论信息流是从第一元素到第二元素还是从第二元素到第一元素。
[0020] 在另一说明性实施方式中,提供一种计算机程序产品,该计算机程序产品包括计算机可用介质,该介质包括计算机可读程序。当该计算机可读程序在计算设备上执行时,使得该计算设备将数据处理系统的元素和引用监控机中的标签集合关联起来,并且接收来自于第一元素的信息流请求以对从第一元素到第二元素的信息流进行授权。该计算机可读程序可以进一步使得该计算设备检索与第一元素相关联的第一安全数据结构,检索与第二元素相关联的第二安全数据结构,并且对第一安全数据结构和第二安全数据结构执行至少一个集合论操作以确定从第一元素到第二元素的信息流是否将被授权。该计算机可读程序可以进一步使得该计算设备执行就该方法的说明性实施方式在上面概括描述的其他操作。
[0021] 在其他说明性实施方式中,提供用于对数据处理系统的元素之间的信息流进行授权的系统或装置。该系统或装置可以包括:具有侦听器的通信管理器,其中侦听器用于侦听来自于数据处理系统的元素的信息流请求;耦合至通信管理器的信息流居间器,该居间器用于确定将对信息流进行授权还是拒绝;耦合至信息流居间器的安全数据结构存储设备,其存储用于数据处理系统的元素的安全信息;以及耦合至信息流居间器的安全策略框架。
[0022] 信息流居间器可以将数据处理系统的元素与安全数据结构存储设备中的安全数据结构关联起来。通信管理器可以接收来自于第一元素的信息流请求以对从第一元素到第二元素的信息流进行授权。信息流居间器可以进一步检索与第一元素相关联的第一安全数据结构,并检索与第二元素相关联的第二安全数据结构。安全策略框架可以对第一安全数据结构和第二安全数据结构执行至少一个集合论操作以确定从第一元素到第二元素的信息流是否将被授权。
[0023] 该系统或装置的各种组件可以进一步配置为执行就该方法的说明性实施方式而在上面概括描述的各种操作。例如,安全策略框架可以通过使用集合合并、集合交叉或集合补操作来执行至少一个集合论操作来对第一标签集合和第二标签集合执行至少一个集合论操作。安全策略框架可以对第一安全数据结构和第二安全数据结构执行至少一个集合论操作,这是通过以下来执行的:解析第一安全数据结构和第二安全数据结构以识别第一和第二安全数据结构中标识的一个或多个安全策略,以及,基于第一和第二安全数据结构中标识的安全策略向安全策略框架的一个或多个安全策略模块提供第一安全数据结构和第二安全数据结构。一个或多个安全策略模块可以基于与用于特定安全策略的安全数据结构的策略类型元素相关联的值来对第一安全数据结构和第二安全数据结构执行至少一个集合论操作。安全策略框架可以通过确定与目标元素相关联的安全数据结构是否是与信息对象的源元素相关联的安全数据结构的子集来对第一安全数据结构和第二安全数据结构执行至少一个集合论操作,其中所述信息对象是该信息流的主体。
[0024] 作为又一示例,信息流居间器可以确定作为该信息流主体的信息对象的安全数据结构,并且安全策略框架向策略模块分发第二安全数据结构和作为第一安全数据结构和该信息对象的安全数据结构的组合而生成的有效安全数据结构,从而执行集合论操作。该信息流居间器可以确定信息对象的安全数据结构,这是通过下列来进行的:确定是否已经建立了用于信息对象的安全数据结构,并且如果该信息对象没有已建立的安全数据结构,则将该信息对象的源元素的安全数据结构与该信息对象关联起来。
[0025] 本发明的这些和其他特征和优势将在本发明的示例性实施方式的以下详细描述中进行描述,或者根据本发明的示例性实施方式的以下详细描述,本发明的这些和其他特征和优势对于本领域的技术人员将变得明显。

附图说明

[0026] 现在将参考随后附图并仅通过示例的方式来描述本发明的实施方式:
[0027] 图1是可以在其中实现说明性实施方式的示例性方面的分布式或网络式数据处理系统的示例性框图;
[0028] 图2是可以在其中实现说明性实施方式的示例性方面的服务器计算设备的示例性框图;
[0029] 图3是可以在其中实现说明性实施方式的示例性方面的客户端计算设备的示例性框图;
[0030] 图4是根据说明性实施方式的架构的示例性图示;
[0031] 图5是根据说明性实施方式的引用监控机的示例性图示;
[0032] 图6是示出了根据一个说明性实施方式的标签集合的示例性定义的示例性图示;
[0033] 图7A是根据一个说明性实施方式的第一标签集合的示例性图示;
[0034] 图7B是根据一个说明性实施方式的第二标签集合的示例性图示;
[0035] 图8是示出了根据一个说明性实施方式的第一示例情况的示例性图示,其中哈希表用于将标签集合与资源关联起来以确定允许或拒绝信息流请求;
[0036] 图9是示出了根据一个说明性实施方式的第二示例情况的示例性图示,其中哈希表用于将标签集合与资源关联起来以确定允许或拒绝信息流请求;
[0037] 图10是示出了用于向应用、设备、系统等许可令牌(token)从而建立保护环境的示例性操作的流程图;
[0038] 图11是示出了根据说明性实施方式的用于将资源与标签集合关联起来的示例性操作的流程图;以及
[0039] 图12是示出了根据一个说明性实施方式的用于对信息流请求进行认证的示例性操作的流程图。

具体实施方式

[0040] 说明性实施方式涉及用于改进源和目标之间的信息流中的安全实现的机制。该说明性实施方式的机制可以在全部发生在单个计算设备上的信息流上实现,或者可以在计算设备之间的信息流上实现,诸如在分布式或网络式数据处理系统中。因此,下文提供图1-3作为可以在其中实现说明性实施方式的机制的数据处理环境的示例。图1-3仅是说明性的并且不旨在陈述或暗示对于可以在其中实现说明性实施方式的机制的数据处理环境的类型的任何限制。相反,在不脱离本发明的精神和范围的情况下,可以对描述的数据处理环境做出很多修改。
[0041] 现在参考附图,图1示出了可以在其中实现说明性实施方式的示例性方面的数据处理系统的网络的图示表示。网络数据处理系统100是可以在其中实现本发明的计算机网络。网络数据处理系统100包含网络102,该网络102是用于在网络数据处理系统100内连接在一起的各种设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤线缆这样的连接。
[0042] 在示出的示例中,服务器104以及存储单元106连接至网络102。此外,客户端108、110和112连接至网络102。这些客户端108、110和112例如可以是个人计算机或网络计算机。在示出的示例中,服务器104向客户端108-112提供诸如引导文件、操作系统映像和应用之类的数据。客户端108、110和112是服务器104的客户端。网络数据处理系统
100可以包括附加的服务器、客户端和其他未示出的设备。在示出的示例中,网络数据处理系统100是因特网,其中网络102代表使用协议中的传输控制协议/因特网协议(TCP/IP)集来彼此通信的网络和网关的世界范围的集合。在因特网的核心处是主要节点或主计算机之间的高速数据通信线路骨干,包括数千路由数据及消息的商业、政府、教育和其他计算机系统。当然,网络数据处理系统100还可以实现为多个不同类型的网络,例如企业内部网、局域网(LAN)或广域网(WAN)。图1旨在作为一个示例,并且不作为对本发明的架构限制。
[0043] 参考图2,其示出了可以在其中实现说明性实施方式的示例性方面的数据处理系统的框图,其中该数据处理系统可以实现为诸如图1中的服务器104的服务器。数据处理系统200可以是对称多处理器(SMP)系统,其包括多个连接至系统总线206的处理器202和204。可替换地,可以使用单个处理器系统。还连接至系统总线206的是存储器控制器/高速缓存器208,其提供到本地存储器209的接口。I/O总线桥210连接至系统总线206并且提供到I/O总线212的接口。如图所示,存储器控制器/高速缓存器208和I/O总线桥210可以集成。
[0044] 连接至I/O总线212的外围组件互连(PCI)总线桥214提供到PCI本地总线216的接口。多个调制解调器可以连接至PCI本地总线216。典型的PCI总线实现将支持四个PCI扩展插槽或插件连接器。图1中到客户端108-112的通信链路可以通过调制解调器218和通过插件连接器连接至PCI本地总线216的网络适配器220来提供。
[0045] 附加PCI总线桥222和224为附加PCI本地总线226和228提供接口,从其可以支持附加的调制解调器或网络适配器。这样,数据处理系统200支持连接到多个网络计算机。存储器映射图形适配器230和硬盘232也可以直接或间接地连接至示出的I/O总线212。
[0046] 本领域的技术人员应该理解图2中示出的硬件可以改变。例如,除了示出的硬件之外或替代示出的硬件,可以使用诸如光盘驱动器等其他外围设备。示出的示例不意味着暗示对本发明的架构限制。
[0047] 图2中示出了的数据处理系统例如可以是IBM eServer pSeries系统,其是纽约Armonk国际商业机器公司的一种产品,该产品运行高级交互式执行(AIX)操作系统或LINUX操作系统。
[0048] 现在参考图3,其示出了描述可以在其中实现说明性实施方式的示例性方面的数据处理系统的框图。数据处理系统300是客户端计算机的示例。数据处理系统300使用外围组件互连(PCI)本地总线架构。尽管示出的示例使用PCI总线,但是可以使用诸如加速图像端口(AGP)以及工业标准架构(ISA)之类的其他总线架构。处理器302和主存储器304通过PCI桥308连接至PCI本地总线306。PCI桥308还可以包括用于处理器302的集成存储器控制器和高速缓存存储器。到PCI本地总线306的附加连接可以通过直接组件互连或通过插件板做出。
[0049] 在示出的示例中,局域网(LAN)适配器310、小型计算机系统接口(SCSI)主机总线适配器312以及扩展总线接口314通过直接组件连接而连接至PCI本地总线306。相反,音频适配器316、图形适配器318和音频/视频适配器319通过插入到扩展插槽的插件板连接至PCI本地总线306。扩展总线接口314提供用于键盘与鼠标适配器320、调制解调器322和附加存储器324的连接。SCSI主机总线适配器312提供用于硬盘驱动器326、磁带驱动器328以及CD-ROM驱动器330的连接。典型的PCI本地总线实现将支持三个或四个PCI扩展插槽或插件连接器。
[0050] 操作系统运行在处理器302上并且用于协调和提供对图3中数据处理系统300内的各种组件的控制。该操作系统可以是商业上可获取的操作系统,诸如Windows XP,该操作系统可从Microsoft公司获得。诸如Java的面向对象的编程系统可以与操作系统结合运行并且从在数据处理系统300上执行的Java程序或应用提供对操作系统的调用。“Java”是Sun Microsystems公司的商标。用于操作系统、面向对象编程系统和应用或程序的指令位于诸如硬盘驱动器326的存储设备上,并且可以加载到主存储器304中以便由处理器302执行。
[0051] 本领域的技术人员应该理解图3中示出的硬件可以根据实现而改变。除了图3示出的硬件之外或替代图3示出的硬件,可以使用诸如闪存只读存储器(ROM)、等价的非易失性存储器或光盘驱动器等的其他内部硬件或外围设备。而且,本发明的过程可应用于多处理器数据处理系统。
[0052] 作为另一个示例,数据处理系统300可以是配置为不依赖于某些类型的网络通信接口就可以启动的单独系统。作为又一示例,数据处理系统300可以是个人数字助理(PDA)设备,其配置有ROM和/或闪存ROM,从而提供用于存储操作系统文件和/或用户生成的数据的非易失性存储器。
[0053] 图3中示出的示例和上述示例不意味着暗示架构限制。例如,除了采用PDA形式,数据处理系统300还可以是笔记本电脑或手持计算机。数据处理系统300还可以是咨询服务站(kiosk)或Web装置。
[0054] 说明性实施方式提供用于控制计算设备的元素或计算设备的网络之间的信息流的机制。对信息流的该控制可以完全在单个计算系统内执行,诸如可以完全在服务器104内的元素之间或图1的客户端计算设备108-112内的元素之间执行。例如,说明性实施方式的机制可以用于控制图2中运行在处理器202上的一个或多个应用和运行在处理器204上的一个或多个应用之间的信息流,或者甚至控制图3中运行在处理器302上的一个应用和运行在处理器302上的另一个应用之间的信息流。而且,说明性实施方式的机制可以控制一个或多个应用和其他资源之间的信息流,或者直接控制计算设备(例如部分存储器、I/O控制器、网络接口等)中的一个或多个资源之间的信息流。
[0055] 如图1所示,说明性实施方式的机制还可以用于控制大型分布式或网络数据处理环境中的计算设备或系统之间的信息流。因此,例如,说明性实施方式的机制可以在诸如服务器104的服务器中提供,并且用于控制一个客户端计算设备108和其他客户端计算设备110、112或甚至存储系统106之间的信息流。简而言之,说明性实施方式的机制可以用于控制一个或多个数据处理设备的任何两个软件和/或硬件元素之间的信息流。
[0056] 通过说明性实施方式的机制,数据处理系统的应用、设备、系统以及其他软件和/或硬件实体与还称作“隔离”的保护环境相关,其由唯一的安全关联(security association)(SA)标识。SA与安全信息数据结构相关,该数据结构标识将要应用于进出实体的信息流的安全策略,以及可以保持在每个实体中的信息项的敏感度。
[0057] 在说明性实施方式中,这些安全信息数据结构作为标签集合提供,尽管本发明不限于安全信息的此类表示。相反,在不脱离本发明的精神和范围的情况下,可以使用用于标识将要应用于信息流的安全策略的任何表示。
[0058] 此外,信息项,即资源,可以使用哈希表格数据结构来与标签集合相关联。可以基于资源的内容生成哈希键。该哈希键用作哈希表数据结构中的索引以标识具有与资源相关联的标签集合的条目。
[0059] 由说明性实施方式生成的标签集合仅按照敏感度描述信息并且不按照用于转换或传输信息的操作来描述信息。对关注的该分离支持通过将安全策略评估的语义从数据处理系统中的应用、设备、系统和其他实体的数据操纵语义中解耦合来实现非常简单的策略决定机制。而且,标签集合的使用允许按照集合论操作(例如,集合合并、交叉和补操作)来定义安全策略和规则。安全策略和规则不关心在信息流中正执行的特定动作,而仅仅关心可以由涉及的实体所保持的信息敏感度以及作为该信息流主体的信息的敏感度。
[0060] 在对来自于数据处理系统中的实体的信息流请求的处理中,用于源和目标保护环境的标签集合可以被提供给策略框架,该策略框架解析该标签集合以识别该标签集合引用了哪些安全策略。与识别的安全策略相关联的策略模块继而可以配备该标签集合,从而基于用于源和目标保护环境的标签集合来评估该安全策略。每个策略模块可以基于应用于标签集合的其安全策略来生成决定,该决定有关于是对信息流请求进行许可、拒绝还是不做决定。例如,可以通过使用集合论操作对源保护环境的标签集合以及目标保护环境的标签集合进行比较来做出决定。
[0061] 可以将各种决定提供给决定合并器,该决定合并器使用合并器规则合并各种决定并且生成关于是否应该许可信息流请求的单个决定。如果信息流请求被许可,那么允许源和目标保护环境之间的信息流。如果信息流请求被拒绝,那么阻挡到目标保护环境的资源流并且可以返回错误消息。
[0062] 存在两种可以被许可的信息流,“流(stream)”和“资源”。如果许可“资源”信息流,那么在源和目标保护环境之间允许资源的单个转移。如果许可“流”信息流,那么允许信息作为流从源流向目标直到流被拒绝,例如,因为引用监控机中的某些事物已经改变,其使得信息流被拒绝,或关闭流。例如,如果目标保护环境已经更新了它的标签集合以及对于信息流的拒绝的新标签集合评估,那么在初始地许可流之后可以拒绝它。
[0063] 在一个说明性实施方式中,资源可以使用哈希表数据结构来与标签集合关联起来,其中哈希表数据结构使用资源内容的哈希作为哈希表数据结构中的索引。在这样的情况中,当接收到信息流请求时,可以从源保护环境中检索作为信息流主体的资源并且使用一个或多个哈希函数来进行散列。为了增加安全性,可以使用多维哈希和哈希表数据集结构。生成的哈希值可以用于执行对与哈希表数据结构中的资源相对应的标签集合的查找。如果基于哈希值在哈希表数据结构中找到有效条目,则通过安全策略检索并且使用相应的标签集合。在一个说明性实施方式中,用于资源的所检索到的标签集合可以与用于源保护环境的标签集合合并以生成用于对目标保护环境的标签集合进行评估的有效标签集合。如果没有找到有效条目,或如果正在请求“流”信息流,那么用于源保护环境的标签集合可以使用并且可以存储在与生成的哈希值相关联的哈希表中。
[0064] 通过说明性实施方式的机制,标签集合完全保持在引用监控机内,并且因此不易受到无意的或恶意的改变。标签集合还提供从安全考虑消除数据操纵的语义的机制并且允许基于保护环境和信息流中包含的资源的敏感度来执行安全考虑。结果,源和目标保护环境以及资源都可以针对安全策略评估来使用公共安全属性,即标签集合,从而降低创建以及使用安全策略和规则的复杂性。标签集合还允许将集合论操作用于执行安全策略评估,从而再次简化安全策略和规则。而且,标签集合可以使用多维哈希数据结构来与资源相关联,从而减少标签集合的无意或恶意改变的可能性,并且减少哈希冲突的可能性。
[0065] 总体架构
[0066] 说明性实施方式的机制使用其中应用/资源与保护环境相关联的架构,以便根据建立的安全信息数据结构来控制保护环境之间的信息流,其中该安全信息数据结构标识将要应用于信息流的安全策略,例如标签集合。图4是示出了根据一个说明性实施方式的架构400的示例性框图。如图4所示,架构400包括多个保护环境410-430,也称作“隔离”,其可以经由通信介质440彼此通信。还在示出的架构中提供了认证器450和引用监控机460。
[0067] 保护环境410-430或“隔离”可以包括一个或多个应用、一个或多个数据处理设备、一个或多个数据处理系统、一个或多个数据处理设备资源等。在一个说明性实施方式中,每个现有的应用、设备、资源或系统都与分离的保护环境或“隔离”相关联,其充当与引用监控机460通信的代理。保护环境410-430是架构400中的应用、设备、系统和/或资源的逻辑表示。这些逻辑表示保持在引用监控机460中并且将其与说明性实施方式的其他机制结合使用,从而监管一个保护环境与另一个保护环境关于信息流的交互。
[0068] 引用监控机460居间调理保护环境410-430之间的所有通信。通信介质440确保通过拒绝将通信直接从一个保护环境路由到另一个并且替代地要求所有通信流流经引用监控机460来在保护环境之间的所有通信上执行该居间调理。为了确保所有通信流流经引用监控机460,可以在通信介质440中提供路由机制,其使通信不被路由到目标保护环境而重定向到引用监控机460。
[0069] 通信介质440可以包括任何类型的通信基础实施、协议等。例如,通信介质440可以包括总线、路由器、网络、缓冲存储器、存储设备、寻址机制等。并且协议包括TCP/IP、SCSI、PCI等。不论使用何种特定基础实施或协议,配置通信介质440以便保护环境410-430的所有外部通信在被路由到通信的目标保护环境410-430之前首先流经引用监控机460。
[0070] 例如,在网络环境中,所有保护环境410-430通过执行网络业务路由的通信介质440进行通信。在简单的说明性实施方式中,路由器可以用于将业务从一个保护环境410-430路由到另一个。为了确保所有通信都由引用监控机460居间调理,可以配置路由器以将所有传入网络业务限制为转发到引用监控机460并且所有传出业务仅可以来自于引用监控机460。
[0071] 需要与另一个保护环境410-430通信的保护环境410-430中的任何实体必须提交请求以与引用监控机460进行通信从而进行授权。因此,对于单向的信息流,通信的源必须向引用监控机460提交信息流请求,从而请求与通信的目标进行通信。对于双向信息流,源和目标(目标将充当反向中的源)都必须向引用监控机460提交信息流请求。
[0072] 在双向通信中对于两个实体提交信息流请求的该要求基于以下事实,即说明性实施方式涉及控制信息流而不是正在执行的特定动作。因此,虽然可以向第一实体进行授权以向第二实体发送信息,但是不能向该第二实体授权以将信息发回给第一实体。换言之,对一个方向的信息流的授权不必然意味着也对反向的信息流进行授权。
[0073] 引用监控机460可以使用与保护环境410-430相关联的标签集合来确定允许或是不允许保护环境之间的哪个方向的信息流。在引用监控机460的信任基础外部,不允许访问这些标签集合。因此,不向保护环境410-430提供这些标签集合。
[0074] 为了响应保护环境410-430的应用、设备、系统和其它类型的实体提交的认证宣告,认证器450对保护环境410-430的实体执行认证以核实稍后将向引用监控机460提交信息流请求的实体是经核实的保护环境410-430的被授权实体。此类认证可以采取以下形式:密码认证、证书认证或任何其他已知认证机制。当在故障之后恢复实体时,例如可以在实体的初始化时间处由实体做出认证宣告。
[0075] 在认证器450核实保护环境410-430中的实体的宣告时,认证器450向请求方发布令牌。该请求方继而可以使用该令牌来请求引用监控机460生成并且关联用于保护环境410-430的标签集合。
[0076] 基于认证器450发布的令牌,引用监控机460确定哪个标签集合与保护环境相关。例如,引用监控机460可以向安全策略框架的每个安全策略模块提供令牌,从而针对特定令牌从每个安全策略模块获取标签,或者如果没有找到针对该令牌的专用标签,则可选地获取默认标签。
[0077] 一旦令牌用于生成标签集合,则该标签集合与引用监控机460中的安全关联相关联。该安全关联是特定保护环境或隔离与引用监控机460之间的通信连接的唯一标识符。用于生成该安全关联的特定值取决于本发明的特定实现。例如,在一个说明性实施方式中,例如TCP/IP地址、安全套接字标识符和会话标识符之类的通信标识符的组合可以用于生成唯一的安全关联(SA)。可选地,仅安全套接字标识符和会话标识符可以用于生成用于特定保护环境或隔离的SA。一旦可以针对正由引用监控机460管理的每个保护环境或隔离生成唯一的标识符,就可以使用其他类型的信息和信息的其他组合。
[0078] 在引用监控机460内生成该唯一的安全关联并且在引用监控机460的外部对该安全关联不可访问。该SA与针对保护环境/隔离生成的标签集合相关联地存储在与引用监控机460相关联的数据结构中。使用该安全关联,引用监控机460可以迅速地确定与请求的源相关联的标签集合。即,通过查看关于与源保护环境的通信连接的信息(其例如存在于请求的报头信息中),引用监控机460可以生成用于该请求的SA并且在数据结构中执行该SA的查找以获取相关联的标签集合。这样,引用监控机460用于处理来自保护环境410-430的信息流请求。
[0079] 令牌可以用于识别可由引用监控机460识别的安全属性。例如,用户可以使用用户ID和密码利用认证器450进行认证。认证器可以提供具有以下属性的令牌的保护环境(从该保护环境中接收用户的认证请求):“userc”。引用监控机460可以接收令牌并且针对保护环境建立标签集合。例如,利用Group-DAC(群DAC)和BLP策略运行的引用监控机460已经可以使与“IBM-GROUP”和“NEWHIER-GROUP”相关的userc作为Group-DAC分配并且“CONFIDENTIAL”作为BLP分配。可以将这些标签添加到用于保护环境的标签集合中。
[0080] 保护环境的SA继而可以由引用监控机460基于用于保护环境的连接信息而生成。然后,该SA与生成的标签集合关联地存储在引用监控机460中。之后,当从保护环境中接收到请求的时候,通过针对请求的连接信息生成SA并且将其用于检索标签集合。
[0081] SA基本上作为保护环境410-430的内部标识符,并且根据到引用监控机460的连接来生成。该安全关联可以在信息流请求中使用从而标识从其接收信息流请求的保护环境。例如,当保护环境410-430连接至引用监控机460时,其提供保护环境名称。该名称可以与保护环境所关联的唯一安全关联(外部世界未知的)以及相关标签集合关联地存储在引用监控机460中。保护环境名称可以由源保护环境使用以标识信息流请求中的目标保护环境。
[0082] 例如,保护环境A可以连接至引用监控机460并且将其名称标识为“PARTITION A(隔离A)”(在本发明的上下文中,保护环境也可称作“隔离”)。保护环境B可以连接至引用监控机460并且将其名称标识为“PARTITION B(隔离B)”。如果保护环境A希望向保护环境B发送信息,则保护环境A向引用监控机460发送信息流请求以指示信息流的目标是“PARTITIONB”。然后,引用监控机460将执行适当的标签集合查找,如下所述,并且执行针对该信息流请求的授权决定。
[0083] 标签集合允许引用监控机460对源和目标保护环境410-430的标签集合执行集合论以确定允许哪些信息流以及拒绝哪些信息流,下文将对此进行更详细的描述。基于引用监控机460做出的关于是否允许信息流的决定,可以允许通信流经目标保护环境或可以由引用监控机460阻挡它。
[0084] 引用监控机架构
[0085] 图5是根据一个说明性实施方式的引用监控机500的示例性框图。如图5所示,引用监控机500包括具有侦听器子组件512的通信管理器(CM)510、信息流居间器(IFM)520、具有决定合并器532和多个策略模块534-538的策略框架530。此外,在运行时间期间,保持保护环境标签集合数据结构540和资源标签集合数据结构550。
[0086] 侦听器512侦听来自于图4中保护环境410-430的信息流请求。例如,侦听器512可以就信息流请求来侦听特定端口,其中该信息流请求通过保护环境410-430中的应用、设备和/或系统被引导至该端口。信息流请求例如可以是标识下列的通信消息:作为该信息流主体的源、从其获取资源的信息流的源保护环境、以及向其提供资源的信息流的目标保护环境。
[0087] 在一个说明性实施方式中,信息流请求指定目标保护环境的保护环境名称。根据该保护环境名称,与目标保护环境相关联的标签集合可以被检索。根据在信息流请求中提供的或者从经由其接收该信息流请求的端口、套接字等中固有地获取的连接信息,引用监控机可以生成针对该请求的SA并且使用该SA来检索与源保护环境相关联的标签集合。
[0088] 例如,信息流请求可以具有如下包括消息类型和消息体的格式:
[0089] 消息类型 消息体
[0090] 表1-信息流请求消息格式
[0091] 消息类型是向引用监控机500发送或来自于引用监控机500的消息的类型,并且消息体包含对应于该消息类型的相关信息。响应于接收到信息流请求,如果引用监控机500配置在操作的详细模式中,则可以用响应消息进行响应,如果引用监控机500配置为不在操作的详细模式中,则用应答消息进行响应。这些不同的消息类型格式化如下:
[0092] 消息类型 消息体
[0093] 响应 <结果><主描述响应><次描述响应>
[0094] 表2-引用监控机响应消息格式
[0095] 消息类型 消息体
[0096] 应答 <应答消息>
[0097] 表3-引用监控机应答消息格式
[0098] 在一个说明性实施方式中,发送到引用监控机500的消息的消息类型可以是infoFlowRequestStreamOpen(信息流请求流打开)、infoFlowRequestStreamSend(信息 流 请 求 流 发 送 )、infoFlowRequestStreamClose(信 息 流 请 求 流 关 闭) 或infoFlowRequestResource(信息流请求资源)。将在下文中描述这些信息流请求消息和引用监控机500响应或应答消息中的每个。
[0099] infoFlowRequestStreamOpen消息类型用于使引用监控机对IFM520进行调用,该IFM 520请求信息流请求决定以许可或拒绝从源保护环境到目标保护环境的信息流。如果该信息流被许可,则将源和目标安全关联对添加到打开信息流式流表中的条目,该条目用于确定引用监控机是否可以将该信息流转发到目标保护环境。如果infoFlowRequestStreamOpen消息导致目标保护环境的标签集合被更新,则引用监控机500将关闭目标保护环境的任何现有流,并且将在应答消息类型内将该流关闭通知给所有的源保护环境。
[0100] infoFlowRequestStreamOpen消息类型具有标识该目标保护环境的相关联消息体,其中将利用该目标保护环境建立信息流。在说明性实施方式中,消息体包括目标保护环境令牌。
[0101] 为了响应infoFlowRequestStreamOpen消息,引用监控机500可以返回如下响应消息中的一个:
[0102] 消息类型 消息体
[0103] 响应 <结果><主描述响应><次描述响应>
[0104] 响应 SUCCESS FLOW_GRANTED
[0105] 响应 SUCCESS FLOW_GRANTED TARGET_LS_UPDATED
[0106] 响应 SUCCESS FLOW_DENIED
[0107] 响应 FAILURE INVALID_PARM
[0108] 响应 FAILURE MSG_OUT_OF_SEQ
[0109] 响应 FAILURE INTERNAL_ERROR
[0110] 响应 FAILURE COMPONET_BUSY
[0111] 表4-对infoFlowRequestStreamOpen消息的响应消息
[0112] 具有包括产生自IFM 520的“FLOW_GRANTED”的主描述响应的消息导致源和目标保护环境的安全关联对的新条目被添加到由引用监控机500保持的打开信息流式流表格中。具有包括产生自IFM520的“FLOW_DENIED”的主描述响应的消息导致源和目标保护环境安全关联对不被添加到打开信息流式流表格中。类似地,具有“INVALID_PARM”、“MSG_OUT_OF_SEQ”、“INTERNAL_ERROR”、和“COMPONENT_BUSY”的主描述响应的消息也导致安全关联对不被添加到打开信息流式流表格中。当IFM 520确定必须更新目标标签集合并且与该目标标签集合相关联的流关闭时,具有“TARGET_LS_UPDATED”的次描述响应的消息是由引用监控机500返回的消息。
[0113] 当引用监控机500处于详细模式中并且当流被引用监控机500强迫关闭时(例如,当infoFlowRequestStreamOpen导致目标标签集合被更新时),将以下应答消息发送到保护环境:
[0114] 消息类型 消息体
[0115] 应答 <应答消息>
[0116] 应答 referenceMonitor streamClosed<目标名称>
[0117] 表5-流关闭应答消息
[0118] infoFlowRequestStreamSend消息类型由源保护环境使用,从而一旦引用监控机500已经许可了信息流,就将信息发送到目标保护环境。当引用监控机500接收该请求时,引用监控机500验证打开信息流式流表中存在针对源和目标保护环境的安全关联对的条目,从而指示之前已经许可了该流信息流。然后,引用监控机500在应答消息内将该信息转发到目标保护环境。以下是
[0119] infoFlowRequestStreamSend消息的格式:
[0120] 消息类型 消息体
[0121] infoFlowRequestStreamSend<目标名称><信息>
[0122] 表6-infoFlowRequestStreamSend消息格式
[0123] 以下是引用监控机响应于infoFlowRequestStreamSend消息可以生成的各种类型的响应消息:
[0124] 消息类型 消息体
[0125] 响应 <结果><主描述响应><次描述响应>
[0126] 响应 SUCCESS SUCCESS
[0127] 响应 FAILURE INVALID_PARM
[0128] 响应 FAILURE MSG_OUT_OF_SEQ
[0129] 响应 FAILURE REQ_DENIED
[0130] 响应 FAILURE INTERNAL_ERROR
[0131] 响应 FAILURE COMPONENT_BUSY
[0132] 表7-对infoFlowRequestStreamSend消息的响应消息
[0133] 如果响应消息具有产生自IFM 520的“SUCCESS”的主描述响应,那么目标保护环境从源保护环境接收信息。其他主描述响应将导致目标保护环境不从源保护环境接收信息。
[0134] 以下是响应于infoFlowRequestStreamSend消息可以生成的应答消息格式:
[0135] 消息类型 消息体
[0136] 应答 <应答消息>
[0137] 应答 <源名称><信息>
[0138] 表8-对infoFlowRequestStreamSend消息的应答消息
[0139] 例如,引用监控机500可以将该应答消息用于将信息从源保护环境发送到目标保护环境。
[0140] infoFlowRequestStreamClose消息类型由源保护环境使用以关闭打开的到目标保护环境的流。当引用监控机500接收到该请求时,引用监控机500中止从源保护环境到目标保护环境的所有流信息流。然后,引用监控机500从打开信息流式流表中移除源和目标保护环境的安全关联对条目。infoFlowRequestStreamClose具有以下格式:
[0141] 消息类型 消息体
[0142] infoFlowRequestStreamClose<目标名称>
[0143] 表9-infoFlowRequestStreamClose消息格式
[0144] 引用监控机500可以对infoFlowRequestStreamClose消息做出的响应基本上与上述表7中示出的相同,例外之处在于“REQ_DENIED”响应消息将不由引用监控机500返回。
[0145] infoFlowRequestResource消息类型由源保护环境使用以请求授权并且将资源(例如,文件、聊天文本或不是连续数据流的一部分的数据的其他类型的打包部分)传递到目标保护环境。当引用监控机500接收到该消息类型时,引用监控机500对IFM 520进行调用,该IFM 520请求信息流请求决定以许可或拒绝资源从源保护环境流动到目标保护环境。如果信息流被许可,那么在应答消息类型内将该资源传输到目标保护环境。如果请求导致目标保护环境的标签集合必须更新,则引用监控机500将关闭目标保护环境的现有的流,并且如果引用监控机500配置在详细模式中,则其在应答消息类型内将该流的关闭通知给源保护环境。如果信息流被拒绝,则不将资源传输到目标保护环境。infoFlowRequestResource消息具有以下格式:
[0146] 消息类型 消息体
[0147] infoFlowRequestResource<目标名称><资源>
[0148] 表10-infoFlowRequestResource消息格式
[0149] 从引用监控机500对infoFlowRequestResource消息的可能响应基本上与上述表4中示出的相同。当引用监控机500许可资源信息流时,将以下应答消息发送到保护环境:
[0150] 消息类型 消息体
[0151] 应答 <应答消息>
[0152] 应答 <源名称><资源>
[0153] 表11-对infoFlowRequestResource消息的应答消息
[0154] 返回到图5,当引用监控机500通过CM 510的侦听器512从保护环境(例如保护环境410)接收到信息流请求时,CM 510向IFM520发送针对授权决定的请求。该授权决定是确定是否允许信息流从源保护环境(例如保护环境410)到目标保护环境(例如,保护环境430)的一个决定。可以基于对目标保护环境标签集合与源保护环境的标签集合和资源的标签集合中的一项或两项的比较来做出该授权决定。
[0155] 在说明性实施方式中,响应于接收到对信息流授权的请求,IFM 520可以在保护环境数据结构540中执行对标识符的查找,例如查找源保护环境的SA和目标保护环境的保护环境名称。作为该查找操作的结果,IFM 520从保护环境数据结构540检索源和目标保护环境的相关联标签集合,并且向策略框架530提供这些标签集合。如果查找操作导致源和目标保护环境中的一个或多个不具有相关联的标签集合,则可以拒绝该请求。可替换地,可以将默认标签集合用于不具有相关联标签集合的保护环境。
[0156] 除了将标签集合与源和目标保护环境关联起来之外,引用监控机500还可以使用资源标签集合数据结构550将标签集合与信息的单独项即信息对象关联起来。如将在下文中更详细讨论的,在一个说明性实施方式中,如果针对信息单独项的标签集合存在于引用监控机500中,则可以将目标保护环境的标签集合与信息单独项的标签集合或根据信息单独项的标签集合以及源保护环境的标签集合生成的有效标签集合进行比较。如果针对信息项的标签集合不存在于引用监控机500中,则源保护环境的标签集合可以使用并且可以与信息项关联起来。
[0157] 标签集合基本上定义了安全策略的列表,策略框架530对该安全策略的列表进行解译并且将其发送到合适的策略模块534-538用于处理。策略模块534-538可以使用不同类型的算法中的任意一个来执行对标签集合的评估,从而生成决定。例如,策略模块534-538可以使用长城算法(Chinese Wall algorithm),Bell LaPadula强制访问控制(MAC)算法,群组自主访问控制(DAC)算法等等。
[0158] 一旦策略模块534-538处理了所有单独的评估,则策略框架530合并单独的决定以生成最终的决定。策略框架530的决定合并器532服务于合并单独策略模块534-538的决定并且使用决定合并器532中提供的合并器策略(即,合并器规则集合)来产生一个决定,即许可或拒绝信息流。
[0159] 例如,决定合并器532可以通过使用三重逻辑(ternary)来合并每个单独策略模块534-538的决定,从而评估来自于可以产生以下结果的每个策略模块534-538的结果:GRANTED、DENIED或NO_DECISION。决定合并器532可以基于包含一个或多个合并器策略的合并器策略文件进行操作。默认地,合并器策略文件可以包含如下所述的默认的合并器策略:
[0160] ((admin RESULT=GRANTED)
[0161] OR(blp RESULT=GRANTED)
[0162] )
[0163] 其中admin和blp是两个策略模块并且合并器策略指示的是:如果这些策略模块中的任一个返回“GRANTED”结果,那么许可信息流。
[0164] 管理员可以使用以下语法对合并器策略文件进行定制,其将由合并器策略解析器来解译:
[0165] ::=
[0166] ::=(NOT)|
[0167] ()|
[0168] (AND)|
[0169] (OR)|
[0170] (RESULT=
[0171] )
[0172] ::=GRANTED|
[0173] DENIED|
[0174] NO_DECISION
[0175] 在做出关于将允许还是拒绝特定信息流的决定时,说明性实施方式的机制仅根据源保护环境、目标保护环境的标签集合和信息的单独项的标签集合(即资源标签集合,如果存在的话)。这样,从说明性实施方式中的评估中消除了在事务中正在执行的“动作”,该“动作”在已知系统中在确定两个实体是否必须通信时必须考虑。
[0176] 实际上,说明性实施方式的最低限度(minimalist)的引用监控机500仅基于对象(即信息流中包含的信息项)的敏感度以及主体(即源和目标保护环境)的授权级别来做出决定。这允许引用监控机500被看作“黑盒子”,从而简化实现并且显著地减小引用监控机500的大小,因为不是每对源和目标实体之间的每个可能的动作都必须在引用监控机500建立模型。
[0177] 此外,引用监控机500的操作提供的安全级别不取决于所保护实体的安全级别。当说明性实施方式用于保护其安全级别很低或未知并且不能对其进行修改以提供更好的安全的现有实体时,这是特别重要的。换言之,因为标签集合和它们的关联完全保持在引用监控机500内,所以所保护实体的安全性或其安全性的缺乏并不负面地影响引用监控机
500提供的安全性。引用监控机500的安全性仅取决于标签集合中定义的安全级别。
[0178] 标签集合
[0179] 如上所述,说明性实施方式的机制使用标签集合来监管由策略框架530执行的安全评估,其中标签集合可以与隔离名称和安全关联相关联地存储在保护环境数据结构540中。引用监控机500可以创建和管理这些标签集合,并且这些标签集合用于标识需要知道的源和目标安全特征从而针对信息流做出授权决定。类似地,如上所述并且如下讨论,可以针对信息的单独项提供标签集合并且将其存储在资源标签集合数据结构550中。
[0180] 图6是示出了根据一个说明性实施方式的标签集合的示例性定义的示例性图示。如图6所示,该标签集合包括与指示版本的版本元素相关联的标签集合名称元素。版本元素是分配的数据结构的版本号。该版本元素包括主元素和次元素。主元素是分配的数据结构或子结构的主版本号。主元素的范围是1到(264-1)。次元素是分配的数据结构或子结构的次版本号。次元素的范围是0到(264-1)。
[0181] 版本元素的主元素和次元素可以被认为类似于软件版本号,例如Microsoft WordTM 10.6764,其中10是“主”版本并且6764是“次”版本。主元素和次元素用于确定标签集合的不同版本是否被比较。
[0182] 例如,引用监控机500第一次启动时,可以创建具有主版本1和次版本0(1.0)的标签集合。admin策略模块可以是首次启动期间唯一可用的策略模块。虽然引用监控机500的初始启动打开并且运行,但是引用监控机500管理员可以建立引用监控机500以在引用监控机500的下次启动时添加BLP策略模块。在系统重启之前,管理员还可以添加资源,该资源为标签集合仅分配admin策略值,因为其是当时仅有的运行的策略模块并且获得分配的主和次版本1.0。
[0183] 在系统重启之后,添加BLP策略模块。然后,第一保护环境(隔离A)可以尝试向第二保护环境(隔离B)发送资源。由于已经更新了策略模块,所以新的主元素和次元素是“1”和“1”或1.1。因此,任何新生成的标签集合将具有“1.1”版本元素。由于试图发送的资源标签集合是1.0,所以引用监控机500知道在评估授权请求之前需要更新标签集合。
[0184] 还提供计数元素指示包括在标签列表元素中标签的数量。计数元素的范围是从1到65535。
[0185] 标签列表元素包括标签元素
[0186] 名称 值 描述
[0187] Blp 1 基于信息敏感度的Bell La-Padula安全模型
[0188] Groupdac 2 基于群组成员的自主访问控制
[0189] Cw 3 长城安全模块
[0190] 表1-示例策略类型
[0191] 值元素是标识策略值的枚举值并且是特定于实现的。一个简单的示例是,对于BLP而言,策略值可以是1、2、3和4以分别表示UNCLASSIFIED(未分类)、CONFIDENTIAL(秘密)、SECRET(机密)和TOPSECRET(绝密)。例如,对于Groupdac,诸如IBM之类的组织可以具有值1、2、3、4和5以分别表示IBMER(IBM人员)、CONTRACTOR(合同人员)、NEWHIRE(新雇人员)、MGR、EXECUTIVE(执行人员)。作为IBM正式雇员以及最近新雇佣的人员将因此具有包括值1和3的标签集合。
[0192] 因此,policy_type标识将应用哪个策略并且该策略值标识该策略评估哪些特定的策略值。策略类型和策略值的合并对保护环境或资源的安全属性做出了完整表示。例如,如果保护环境用于表示用户,那么用户的标签集合可以具有用于运行BLP和GROUPDAC策略模块的引用监控机500的以下值:
[0193] 策略类型:1(BLP)
[0194] 策略值:3(机密)
[0195] 策略类型:1(BLP)
[0196] 策略值:2(秘密)
[0197] 策略类型:1(BLP)
[0198] 策略值:1(未分类)
[0199] 策略类型:2(GROUPDAC)
[0200] 策略值:1(IBM人员)
[0201] 策略类型:2(GROUPDAC)
[0202] 策略值:3(新雇人员)
[0203] 根据该标签集合,可以确定用户是IBM的常规雇员、新雇员,并且可对未分类的、秘密的和机密的信息进行访问。
[0204] 说明性实施方式生成的标签集合仅按照敏感度而不是按照用于转换或传输信息的操作来描述信息。对关注的该分离使得能够通过将安全策略评估的语义从应用的数据操纵语义中解耦合来实现非常简单的策略决定机制。此外,标签集合提供用于定义针对源和目标的单个安全属性类型的机制,即包括一组安全属性标签的标签集合。这样,说明性实施方式的机制消除了主动主体和被动资源之间的区别。说明性实施方式的标签集合将它们的注意限制到源和目标之间的信息流,每个信息流具有相同的抽象安全属性类型。
[0205] 在使用这些标签集合执行关于是否对信息流进行授权或拒绝的决定中,策略框架可以使用从利用集合合并、交叉和补操作的源和目标标签集合构建而来的相对简单的集合论组。因此,如果策略框架决定源和目标标签集合是“兼容的”,则策略框架允许该信息流。这样,单个简单规则可以用于控制任何源和任何目标之间从源到目标的所有信息流。该相同规则还可以应用于从任何目标(其现在作为源来操作)到任何源(其现在作为目标来操作)的反向流。按照规则应用简单集合论以确定是否允许信息流。
[0206] 作为解释可能通过使用标签集合在策略框架中产生的功能性的例子,考虑在图7A和7B中提供的两个示例标签集合。图7A是根据一个说明性实施方式的可以与第一保护环境相关联的第一标签集合的示例性图示。图7B是根据一个说明性实施方式的可以与第二保护环境相关联的第二标签集合的示例性图示。
[0207] 在图7A的标签集合700中,提供具有三个标签720、730和740的标签列表710,因此,计数元素702设置为值“3”。三个标签720、730和740具有为“3”、“2”和“1”的枚举值722、732和742。标签722对应于“机密”的敏感度级别,标签732对应于“秘密”的敏感度级别,并且标签742对应于“未分类”的敏感度级别。此外,每个标签具有值为“1”的相关联安全策略类型724、734和744,这在该特定例子中例如对应于“多级别”或“MLS”安全策略。
[0208] 在图7B的标签集合750中,提供具有单个标签770的标签列表760,因此计数元素752设置为值“1”。标签770具有“1”的枚举值772。因此,标签770对应于“未分类”的敏感度级别。类似于标签集合700中的安全策略类型,标签770具有安全策略类型“1”。
[0209] 如关于图5所讨论的,为了响应来自于源保护环境的信息流请求,引用监控机500的信息流居间器520从保护环境数据结构540和资源标签集合数据结构550中检索源保护环境、目标保护环境以及可能的作为信息流主体的信息项的标签集合。在该特定示例中,将假设标签集合700对应于源保护环境并且标签集合750对应于目标保护环境,并且没有使用信息项的标签集合。
[0210] 将检索到的标签集合700和750提供给解析标签集合700和750并且确定在标签集合的各种标签中标识哪些策略类型的策略框架。然后,将标签集合700和750提供给对应于标签集合700和750中标识的策略类型的策略模块534-538。然后,策略模块534-538生成关于许可还是拒绝信息流的决定。将这些决定返回给使用决定合并器532来合并这些决定的策略框架530。决定合并器532合并各种决定以生成关于将许可还是拒绝该信息流的单个决定。将最终决定提供给通信管理器510,然后该管理器510操作以允许信息流继续到目标保护环境或阻止该信息流。
[0211] 在本示例中,策略框架530解析标签集合700和750并且确定由标签集合700和750中对应于“MLS”安全策略的标签来使用安全策略类型“1”。结果,策略框架530可以将标签集合700和750发送到对应于“MLS”安全策略的策略模块534。
[0212] 在本示例中,MLS安全策略包含规定如果符合以下条件则信息可以从源保护环境流向目标保护环境的规则:
[0213] if{mlsvalues_of_source}is_subset_of{mlsvalues of target}
[0214] 将该规则应用于标签集合700和750导致拒绝从源保护环境到目标保护环境的信息流。这是因为标签集合700中的值不是标签集合750中的值的子集,即集合{3,2,1}不是集合{1}的子集。换言之,因为信息不能从潜在的机密源保护环境流向未分类的保护环境,所以信息流被阻止。
[0215] 另一方面,可以在相反方向(即从目标保护环境(其现在充当源)到源保护环境(其现在充当目标))上的相同MLS策略和规则下对信息流进行授权。这是因为集合{1}是集合{3,2,1}的子集。换言之,信息可以从未分类的源保护环境流向潜在的机密目标保护环境。
[0216] 一旦已经使用说明性实施方式的引用监控机500对信息流进行了授权,则可以继续从源保护环境到目标保护环境的信息流,而无需等到信息流的流出现不连续时才再次执行授权。即,说明性实施方式的机制可以用于对从源保护环境到目标保护环境的信息流的流进行授权。
[0217] 可替换地,例如,说明性实施方式的机制还可以用于对从源保护环境到目标保护环境的信息的单个传输进行授权,诸如在文件传输的情况中。对于该机制用于对信息流的流进行授权或信息的单个传输进行授权,说明性实施方式的机制基本上具有相同的操作。
[0218] 如上所述,不仅可以基于源和目标保护环境的标签集合,而且可以基于正在传输的信息的特定项的标签集合来建立策略规则以用于执行授权。然而,应该指出,甚至当在授权操作中考虑信息项的标签集合时,决定也仅基于信息项以及源和目标保护环境的敏感度。即,源和目标保护环境的标签集合是源和目标保护环境可以保持的信息的敏感度的量度。信息项的标签集合是信息项的敏感度的量度。因此,关于许可还是拒绝信息流的决定基于包含在信息流中实体的敏感度,而不基于作为信息流一部分执行的特定动作,例如读取、写入等。
[0219] 在一个说明性实施方式中,当使用与源和目标保护环境以及信息项相关联的标签集合时,信息流居间器520首先尝试从资源标签集合数据结构550中检索与信息项相关联的标签集合。如果没有建立针对该信息项的标签集合,那么在由策略框架530进行的评估中使用针对源保护环境的标签集合,即根据可应用的策略规则将源保护环境的标签集合与目标保护环境的标签集合进行比较以确定许可还是拒绝该信息流。如果针对信息项而言标签集合出现在资源标签集合数据结构550中,那么该标签集合与源保护环境标签集合一起使用,并且因此由策略框架530将其与目标保护环境标签集合进行比较以确定许可还是拒绝该信息流。
[0220] 在可替换实施方式中,当确定是许可还是拒绝信息流的时候,可以通过策略框架530来确定针对源保护环境、目标保护环境和信息项的所有标签集合。例如,可以建立对所有三个集合执行集合论操作的安全策略规则。当然,此类实施方式更复杂并且将需要额外的处理周期来执行策略评估。然而,对信息流的更复杂的控制可以通过在策略评估中包括所有三个标签集合而变得可能。
[0221] 而且,在一个说明性实施方式中,如果为作为该信息流主体的信息项提供标签集合,则可以根据与安全策略规则模块相关联的合并规则将该标签集合与源保护环境的标签集合进行合并以生成有效的标签集合。该有效的标签集合继而可以与策略框架的策略模块中的目标标签集合进行比较以生成授权决定。
[0222] 因此,如上所示,说明性实施方式的标签集合提供一种简单的机制,用于定义与所述标签集合相关联的保护环境的敏感度。对这些标签集合的使用允许简化应用于这些标签集合的安全策略,因为此类安全策略仅需要如标签集合定义的那样关注源、目标以及可能的信息项的敏感度。因为在授权过程期间将正在执行的特定动作从考虑中移除,所以该安全策略不需要具有监管每个可能动作的规则,其中该动作可以由源和目标的每种组合来执行。安全策略评估的语义与数据操纵的语义的该解耦合极大地降低了组成安全策略的安全策略和规则的复杂性。
[0223] 而且,为了基于这些敏感度做出决定,可以将简单集合论操作用于定义对标签集合执行操作的安全策略的规则。因为安全策略使用集合论来实现它们的相关算法,所以规则的相同小集合可以应用于任何信息流请求而不论特定的源保护环境和目标保护环境如何。
[0224] 而且,由于涉及信息流的所有实体(即,源和目标保护环境以及信息项)使用相同的安全属性类型(即,标签集合),所以避免了与区分在安全策略中必须支持的属性类型相关联的问题。因此,说明性实施方式的机制极大地简化了用于监管信息流的安全框架的实现。由于该简化,引用监控机可以处理信息流的速率提高了。此外,因为标签集合和安全策略完全保持在引用监控机内,所以篡改标签集合或安全策略变得更加困难,并且与安全机制的元素被分布到非安全计算设备的系统相比,该系统的整体安全性得到提升。
[0225] 关联标签集合与资源
[0226] 再次参考图5,诸如在资源标签集合数据结构550中可以以很多不同的方式将安全标签与资源关联起来。为了建立高度可保证的系统,管理这些标签集合的机制(例如引用监控机500)应该避免在处理信息流请求时偶然地破坏标签集合。此外,系统应该消除对标签集合进行恶意改变的可能性,即使该修改是由具有特权的系统管理人员做出的。
[0227] 一个可能性是将标签集合信息与其所应用于的资源一起存储,其中该资源是例如文件、聊天文本的一部分或不是连续数据流的一部分的数据的其他打包部分的信息项,并且实现特定的特权和授权机制以限制对标签集合信息的访问。该方法存在两个问题。第一,管理信息项以及关联标签集合信息的系统中的整体故障可以导致对标签集合的未授权改变。即,如果用户可以改变文件系统上的文件,则他们也可以改变随文件存储在文件系统上的标签列表。根据这里的说明性实施方式,尽管用户能够改变该文件系统上的文件,但是用户不能改变引用监控机500内的标签集合,因为该标签集合在引用监控机500的外部不可访问。
[0228] 第二,不能对没有设计为支持标签集合的应用进行保护。即,在此类实施方式中,因为安全机制(即引用监控机500)期望应用或保护环境将标签集合信息传递到安全机制,所以如果应用或保护环境不支持标签集合信息的使用,则它不能向安全机制提供必要的标签集合信息。结果,安全机制不能访问用于应用或保护环境的标签集合信息,并且因此不能确保来自于应用或保护环境的信息流的安全。
[0229] 说明性实施方式的机制通过使得能够在可信计算基础(即,引用监控机500)内存储信息标签集合来解决这些问题,其中可信计算基础与存储信息本身的库(即保护环境中的库)分离开来。说明性实施方式的机制将标签集合与信息关联起来,例如通过使用可以在资源标签集合数据结构550中提供的哈希表,标签集合引用该信息。例如,基于资源(例如,信息项)的内容由引用监控机500的信息流居间器520生成哈希键。哈希键用作标签集合中表(例如,资源标签集合数据结构550)的索引,并且可以用于检索与作为哈希键基础的信息的特定项相关联的标签集合。
[0230] 引用监控机500第一次遇到资源时,引用监控机500的信息流居间器520计算资源的哈希键并且将合适的标签集合以对应于计算的哈希键的索引存储在资源标签集合数据结构550中。如果资源已经由管理员寄存在引用监控机500中,那么计算资源的哈希键将导致正被标识的标签集合数据结构550的匹配条目。如果资源还没有由管理员寄存在引用监控机500中,那么资源将采用与源保护环境相同的标签集合。作为哈希表中索引的哈希键的产生在本领域中是公知的,并且因此在此不提供散列的细节。
[0231] 一旦已经为资源分配了标签集合,那么对该资源的任何重命名(例如,对文件的重命名)不影响哈希键与标签集合之间的关联,因为该哈希键是基于资源的内容生成的,该资源的内容在该情况中没有改变。因此,仅改变与资源相关的名称不改变资源的哈希键,因此不改变与资源相关的标签集合。
[0232] 然而,从引用监控机500的角度看来,资源内容中的任何改变都创建了新的资源、新的哈希键和新的标签集合关联。因此,甚至于资源内容中的单个比特的改变都使得针对资源创建了新的哈希表条目。哈希表允许可信计算基础(例如,引用监控机500)有效地识别资源并且在允许资源本身存储在可信计算基础之外时将它们的标签集合存储在未修改的以及可能不可信任的应用中。
[0233] 为了避免与偶然或恶意地引入的哈希冲突相关联的问题,可以在资源标签集合数据结构550中使用多维哈希表。可以在多维哈希表的每个维度中使用不同的哈希函数。因此,产生将需要“伪造”标签集合的表索引冲突要求对方(adversary)发现其哈希映像与同时位于用于实现多维表的所有哈希函数中的所选资源的哈希映射相冲突的字符串。这是非常不可能的,并且这提供了关于哈希键与资源标签集合之间的关联的极大的安全性。
[0234] 将哈希表用于将资源和标签集合进行关联确保了与特定数据相关联的标签集合可以总是由可信计算基础(引用监控机500)恢复,并且应用的信息存储格式不必改变以支持标签集合,因为标签集合不随它们所应用至的信息一起存储。而且,无论数据以何种方式改变,可信计算基础(引用监控机500)可以识别该改变,因为修改的数据将具有不同的散列,并且其可以确定新标签集合需要应用于修改的数据。而且,起源于应用或可信计算基础外部任何地方的非整体故障或恶意动作可以修改数据与其标签集合之间或标签集合本身之间的关联,因为关联和标签集合两者都存储在可信计算基础内并且从来不向可信计算基础外传递。
[0235] 图8和图9提供示出了在处理信息流请求时使用哈希表来关联标签集合与资源的示例。图8示出了在对应于资源的条目出现在哈希表中时的示例。图9示出了在对应于资源的条目没有出现在哈希表中时的示例。
[0236] 如图8所示,应用2向资源系统请求资源2。因此,资源系统将位于源保护环境810中,应用2将在目标保护环境820中,并且资源2是信息流的信息项。将该请求提供给可信计算基础830,例如,其在说明性实施方式中是引用监控机500。虽然说明性实施方式将可信计算基础830考虑为引用监控机500,但是本发明不限于此,并且在不偏离本发明的精神和范围的情况下可以使用任何可信计算基础。
[0237] 可信计算基础诸如经由图4中的通信介质440截取该请求。该请求可以是诸如如上所述的信息流请求,其标识目标保护环境820的名称。源保护环境的安全关联和目标保护环境的名称可以与保护环境数据结构840一起用于检索与保护环境810和820相关联的标签集合。
[0238] 为了响应该信息流请求,可信计算基础830从源保护环境810检索信息项(即资源_2)的内容,并且对该信息项的全部内容执行合适的哈希函数。该哈希函数可以是单个哈希函数,或在多维哈希表实施方式的情况中,该哈希函数可以是不同类型的多个哈希函数。将作为结果的哈希键用于资源标签集合数据结构850中的索引。
[0239] 在所述示例中,针对生成的哈希键的条目出现在资源标签集合数据结构850中。结果,可信计算基础830从资源标签集合数据结构850中检索标签集合_2,并且将该标签集合_2与源保护环境的标签集合结合(标签集合_1)使用以创建有效的标签集合。将该有效的标签集合与目标保护环境820的标签集合(即基于信息流请求中提供的目标保护环境
820的名称从保护环境数据结构840中获取的标签集合4)进行比较。如上所述,根据使用图5中的策略框架530以及其相关联策略模块534-538和决定合并器532而在所检索的标签集合中标识的策略执行该比较。基于比较结果,许可或拒绝该信息流。如果许可,则将允许被请求的资源(即资源_2)流向目标保护环境820。如果拒绝,则可信计算基础830阻止被请求的信息流(即资源_2)到目标保护环境820并且可以向请求方(例如,目标保护环境820中的应用_2)返回错误消息。
[0240] 如图9所示,在另一个示例中,执行类似的操作,其中应用_1向资源_系统请求资源_1。在该示例中,应用_1是目标保护环境860并且资源_系统是源保护环境。资源_系统向可信计算基础830发送信息流请求来请求将资源_1发送到应用_1。在该情况中,当从源保护环境810中检索到资源_1时,资源_1的全部内容的散列在资源标签集合数据结构850中不具有相关条目。在该情况中,可信计算基础830以对应于针对资源_1的内容计算的哈希键的索引将与源保护环境相关联的标签集合(例如,标签集合_1)存储在资源标签集合数据结构850的哈希表的条目中。然后,可信计算基础830将针对源保护环境810的标签集合(即,标签集合_1)与针对目标保护环境860的标签集合进行比较以确定将许可还是将拒绝该信息流请求。
[0241] 应该指出,在上述操作中,标签集合的任何有关信息或将标签集合与资源关联起来的任何有关信息在任何时刻都不从可信计算基础830传递到可信计算基础830之外的任何应用、系统或保护环境。因此,确保了标签集合以及标签集合与资源的关联相对于无意或恶意修改的安全性。
[0242] 还应该指出,虽然所述示例示出了与资源相关联的标签集合(例如信息项)或源保护环境与目标保护环境标签集合之间的比较,但是本发明不限于此。而是,如上所述,在更复杂的实施方式中,可以建立策略和规则来比较所有的三个标签集合以确定许可或拒绝信息流请求。
[0243] 因此,说明性实施方式提供用于以安全方式将标签集合与资源和保护环境关联起来并且使用这些具有策略的标签集合对信息流进行授权或拒绝的机制。为了将标签集合与资源和保护环境关联起来提供安全索引机制和令牌关联机制。标签集合本身提供一种机制,用于通过允许按照将集合论操作应用于标签集合以确定许可还是拒绝信息流以定义策略和规则来简化策略决定。
[0244] 图10-12是示出了用于将标签集合与保护环境和资源关联起来并且使用此类标签集合对信息流请求执行授权操作的说明性实施方式的示例性操作的流程图。应该理解,可以通过计算机程序指令实现流程图中的每个框以及流程图中框的组合。可以将这些计算机程序指令提供给处理器或其他可编程数据处理装置以制造机器,以便在处理器或其他可编程数据处理装置上执行的该指令创建用于实现在流程图框或多个框中指定的功能的装置。这些计算机程序指令还可以存储在计算机可读存储器或存储介质中,其可以引导处理器或其他可编程数据处理装置以特定的方式执行功能,从而存储在计算机可读存储器或存储介质中的指令生产产品,该产品包括实现在流程图框或多个框中指定的功能的指令装置。
[0245] 因而,流程图的框支持用于执行指定功能的装置的组合、用以执行指定功能的步骤组合以及用于执行指定功能的程序指令装置。还应该理解,流程图的每个框以及流程图中的框的组合可以通过执行特定功能或步骤的基于专用硬件的计算机系统或专用硬件和计算机指令来实现。
[0246] 图10是示出了用于许可应用、设备、系统等的令牌从而建立保护环境的示例性操作的流程图。虽然在图10中示出的操作可以用于认证并且生成用于信息流请求的应用、设备、系统和其他源的保护环境,为了该描述的简化,假设认证的实体是应用。
[0247] 如图10所示,由从应用接收认证宣告的认证器启动操作(步骤1010)。使用任何已知的认证方法(例如,密码认证、安全证书等)对该应用进行认证(步骤1020)。认证器确定应用是否已被成功认证(步骤1030)。如果没有,则认证器不向该应用发布令牌并且向该应用返回错误消息(步骤1040)。
[0248] 如果应用已经被成功认证,则认证器向该应用发布令牌(步骤1050)。还将令牌提供给引用监控机(步骤1060),该引用监控机使用该令牌以生成用于保护环境数据结构中的应用的合适的标签集合(步骤1070)。基于连接信息生成用于保护环境的安全关联并且然后将该安全关联与生成的标签集合关联地进行存储(步骤1080)。然后,操作终止。
[0249] 图11是示出了用于根据说明性实施方式将资源与标签集合关联起来的示例性操作的流程图。如图11所示,由接收资源内容以及针对其生成并且关联标签集合的安全属性的引用监控机启动操作(步骤1110)。引用监控机通过对资源的全部内容执行至少一个哈希函数来生成哈希键(步骤1120)。引用监控机根据提供的安全属性生成标签集合并且将资源的标签集合与生成的哈希键关联起来(步骤1130),并且以对应于哈希键的索引将标签集合存储在哈希表数据集结构中(步骤1140)。然后操作终止。
[0250] 图12是示出了用于根据一个说明性实施方式的对信息流请求进行认证的示例性操作的流程图。如图12所示,操作开始于引用监控机接收来自于保护环境的信息流请求(步骤1210)。引用监控机基于针对源保护环境生成的安全关联以及通过信息流请求传递的目标保护环境的名称从保护环境数据结构中检索用于源和目标保护环境的标签集合(步骤1220)。引用监控机从其源保护环境中检索作为信息流请求主体的资源(步骤1230)。可选地,如果正在执行单个信息传输,则引用监控机可以通过使用针对所检索资源的全部内容进行的至少一个哈希函数来生成哈希值(步骤1240)。然后,引用监控机可以可选地使用哈希值作为索引在资源标签集合数据结构中执行查找操作(步骤1250)。
[0251] 然后,引用监控机可选地可以确定是否以对应于哈希值的索引标识了资源标签集合数据结构中的有效条目(步骤1260)。如果是,则引用监控机从资源标签集合数据结构的标识的条目中检索标签集合(步骤1270)。如果不是,则引用监控机从保护环境数据结构中检索源保护环境的标签集合(步骤1280)。然后,引用监控机以对应于生成的哈希值的索引在资源标签集合数据结构中生成条目并且将源保护环境的标签集合存储在该条目中(步骤1290)。
[0252] 应该理解,如果正在执行信息的单个传输,即资源正在源保护环境和目标保护环境之间传输,则执行步骤1230-1290。在流信息流的情况中,在图12示出的操作中可以略过步骤1230-1290。
[0253] 引用监控机解析源和目标保护环境的标签集合,并且可选地解析资源的标签集合以识别标签集合中引用的安全策略(步骤1300)。引用监控机识别哪些策略模块对应于识别的安全策略(步骤1310)并且将该标签集合发送到识别的策略模块(步骤1320)。策略模块可选地可以根据资源和源标签集合生成有效的标签集合,并且然后将该安全策略应用于该标签集合以生成关于是否许可该信息流请求的决定(步骤1330)。决定合并器将来自于各种策略模块的各种决定合并为关于是否应该许可该信息流请求的单个决定(步骤1340)。
[0254] 引用监控机确定是否应该许可该信息流请求(步骤1350)。如果许可,则引用监控机传递该资源或允许信息流到达目标保护环境(步骤1360)。如果不许可,则引用监控机阻止该资源或信息流传递到目标保护环境并且向该信息流请求的提交者返回错误消息(步骤1370)。然后操作终止。
[0255] 处理信息流请求的示例
[0256] 以下是处理信息流请求的示例。提供这些示例以示出各种可能的信息流处理操作,这些操作可以使用上述说明性实施方式的机制来执行。如上所述,存在两个由说明性实施方式的机制处理的信息流类型:信息流和资源传输。第一,讨论处理信息流请求的示例之后将对处理资源信息流请求的示例进行讨论
[0257] 当尝试打开信息流式流时,保护环境中的请求实体可以使用信息流请求流打开方法来请求打开请求实体和目标实体之间的信息流式流。为了响应调用信息流请求流打开方法,可能遇到三种情况:(1)许可信息流请求流打开请求;(2)拒绝信息流请求流打开请求;(3)利用目标标签集合更新来许可信息流请求流打开请求。下面描述这些情况中的每一个。
[0258] 在第一种情况中,描述了利用详细模式中的引用监控机许可流打开的成功的infoFlowRequestStreamOpen方法调用。在该示例中,第一保护环境(此后称作“隔离”)(即,隔离1)向引用监控机的通信管理器发送具有目标隔离名称(隔离2)的infoFlowRequestStreamOpen请求。引用监控机的通信管理器首先调用cm_check_partition_table()以确保源隔离在隔离表中具有条目,例如,可以在保护环境数据结构540中提供该隔离表。接下来,引用监控机的通信管理器(CM)调用cm_get_target_security_association()以获得目标隔离的安全关联。通过调用cm_check_exisiting_open_stream()进行最终的检查以确保流已经不存在。
[0259] 在这些检查完成之后,CM通过利用源安全关联和目标安全关联作为参数来调用ifm_authorize_stream_open(),从而对信息流居间器(IFM)进行调用以请求对打开信息流式流进行授权,并且等待响应。IFM首先对ifm_get_labelset()进行两个独立的内部调用以获得源和目标隔离两者的相关联标签集合。这些标签集合可以从IFM隔离标签集合表(其例如也可以作为保护环境数据结构540的一部分来提供)中检索。接下来,IFM调用pf_auth_decision()以向策略框架请授权决定。策略框架返回SUCCESS(成功)的结果码以及指示流被许可的FLOW_GRANTED(流被许可)的主码。NULL(空)作为用于新目标标签集合的值返回,作为pf_auth_decision()调用的结果。IFM向CM发送成功响应以指示许可信息流。
[0260] 当调用成功完成时,指示流被GRANTED(许可)的主理由码包括在响应中。然后,CM通过调用cm_add_open_steam_entry()将源和目标安全关联对添加到与CM关联地保持的打开信息流式流表中,并且向隔离1发送指示信息流被许可的成功消息。
[0261] 在第二种情况中,描述了拒绝流打开的成功的infoFlowRequestStreamOpen方法调用。在该示例中,隔离1向CM发送具有目标隔离名称(隔离3)的infoFlowRequestStreamOpen请求。然后,CM进行与关于第一情况描述的顺序相同的检查。
[0262] 在这些检查完成之后,如上所述,CM接下来对IFM进行调用以请求对打开信息流进行授权。然而,在该情况中,pf_auth_decision()返回SUCCESS的结果码以及指示拒绝该流的FLOW_DENIED的主码。NULL作为用于新目标标签集合的值(指示对目标标签集合没有进行更新)返回,作为pf_auth_decision()调用的结果。
[0263] 当调用成功完成时,指示流被拒绝的主理由码包括在响应中。由于来自于IFM的拒绝响应,CM不将该流添加到打开信息流式流表中。取代的是,CM向隔离1发送指示信息流被拒绝的成功消息。
[0264] 在第三种情况中,描述了导致目标隔离的安全属性的更新的许可流打开请求的成功的infoFlowRequestStreamOpen方法调用。此外,将引用监控机配置为详细模式。在该示例中,隔离4向CM发送带有目标隔离名称(隔离2)的infoFlowRequestStreamOpen请求。然后,CM进行与关于第一情况描述的顺序相同的检查。
[0265] 在这些检查完成之后,CM对IFM进行调用以请求对打开信息流进行授权。策略框架返回SUCCESS的结果码以及指示允许该流的FLOW_GRANT的主码。新的目标标签集合也从pf_auth_decision()调用中返回。然后,IFM对ifm_update_partition_table()进行内部调用,其通过从pf_auth_decision()返回的新标签集合来更新目标隔离条目。在更新过IFM隔离表之后,IFM向CM发送指示信息流被许可并且目标标签集合被更新的成功响应。
[0266] 现在,已经更新了目标隔离标签集合,CM必须通过调用cm_close_existing_open_streams_target()和cm_close_existing_open_streams_source()来关闭任何引用隔离2的打开流。由于从源隔离(隔离1)到目标隔离(隔离2)存在打开流,所以CM通过在对cm_close_existing_open_streams_target()的调用内发送应答消息来向隔离1通知关闭的流。CM继而通过调用cm_add_open_stream_entry()而将新流添加到打开信息流式流表中,并且然后向隔离4发送指示信息流被许可的成功消息。
[0267] 在已经打开信息流式流之后,在稍后的时间可能需要关闭该流。说明性实施方式的机制提供用于关闭打开流的过程。作为示例,隔离1可以向CM发送具有目标隔离名称(隔离2)的infoFlowRequestStreamClose请求。CM首先调用cm_check_partition_table()以确保源隔离在隔离表中具有条目。接下来,CM调用cm_get_target_security_association()以获得目标隔离的安全关联。在这些调用成功完成之后,CM调用cm_delete_existing_open_stream(),其将该流从打开流式流表中移除。然后,CM向隔离1发送成功消息。
[0268] 如上所述,除了提供用于信息流式流的功能,说明性实施方式的机制还可以处理资源信息流请求,其中执行源保护环境或隔离与目标保护环境之间的单个资源传输。如通过上面讨论的信息流式流,存在处理由说明性实施方式所处理的信息流资源请求的三种情况:(1)许可信息流资源请求;(2)拒绝信息流资源请求;以及(3)通过目标标签集合更新来许可信息流资源请求。下面描述这些情况中的每一个。
[0269] 在信息流资源请求处理的第一种情况中,描述了利用详细模式中的引用监控机向目标隔离发送资源的成功的infoFlowRequestResource方法调用。在该示例中,隔离1向CM发送具有目标隔离名称(隔离2)的infoFlowRequestResource请求。CM首先调用cm_check_partition_table()以确保源隔离具有隔离表中的条目。接下来,CM调用cm_get_target_security_association()以获得目标隔离的安全关联。
[0270] 在这些检查成功完成之后,CM通过将资源、源和目标安全关联作为参数对ifm_authorize_resource_flow()进行调用来调用IFM以请求对发送信息流资源进行授权,并且等待响应。IFM对ifm_get_labelset()进行两个独立的内部调用以获得源和目标隔离两者的相关联标签集合。这些标签集合可以从IFM隔离标签集合表中检索。然后,IFM内部调用ifm_get_resource_labelset()以获得资源的标签集合。从IFM资源标签集合表检索标签集合,例如,其可以作为资源标签集合数据结构550的一部分来提供。
[0271] 然后,IFM调用pf_auth_decision()以向策略框架请求授权决定。策略框架返回SUCCESS的结果码以及指示允许该流的FLOW_GRANTED的主码。NULL作为用于新目标标签集合的值(其指示的是对目标标签集合没有进行更新)返回,作为pf_auth_decision()调用的结果。
[0272] 当调用成功完成时,指示流被许可的主理由码包括在响应中。然后CM调用cm_flow_information(),其在应答消息类型内将信息转发至目标隔离并且向隔离1发送指示信息流被许可的成功消息。
[0273] 在第二种情况中,描述了利用详细模式下的引用监控机拒绝资源流的成功的infoFlowRequestResource方法调用。在该示例中,隔离1向CM发送具有目标隔离名称(隔离3)的infoFlowRequestResource请求。然后,CM进行与上面参考信息流资源请求处理的第一情况描述的顺序相同的检查。
[0274] 在这些检查完成之后,CM以与上述类似的方式调用IFM以请求对发送资源信息流进行授权。然而,在该情况中pf_auth_decision()返回SUCCESS的结果码以及指示拒绝该流的FLOW_DENIED的主码。NULL作为指示没有对目标标签集合进行更新的新目标标签集合的值被返回。
[0275] 当调用成功完成时,指示流被拒绝的主理由码包括在响应中。由于来自于IFM的拒绝响应,CM不将资源转发到目标隔离。代替的是,CM将指示信息流被拒绝的成功消息发送给隔离1。
[0276] 在第三种情况中,描述了成功的infoFlowRequestResource方法调用,其许可导致对目标隔离的安全属性的更新的资源信息流请求。此外,将引用监控机配置为详细模式。在该示例中,隔离4向CM发送带有目标隔离名称(隔离2)的infoFlowRequestResource请求。然后,CM进行与上面参考信息流资源请求处理的第一情况描述的顺序相同的检查。
[0277] 在这些检查完成之后,CM以如上所述的类似方式对IFM进行调用从而请求对发送资源信息流的授权。然而,在该情况中,pf_auth_decision()方法返回SUCCESS的结果码以及指示允许该流的FLOW_GRANTED的主码。新的目标标签集合也从pf_auth_decision()调用返回。然后,IFM内部调用ifm_update_partition_table(),其通过从pf_auth_decision()返回的新标签集合来更新目标隔离条目。在更新了IFM隔离表之后,IFM向CM发送指示信息流被允许并且更新了目标标签集合的成功响应。
[0278] 当调用成功完成时,具有TARGET_LS_UPDATED的次理由码的指示允许流的主理由码包括在响应中。
[0279] 现在,已经更新了目标隔离标签集合,CM必须通过调用cm_close_existing_open_streams_target()和cm_close_existing_open_streams_source()来关闭任何引用隔离2的打开流。由于从源隔离(隔离1)到目标隔离(隔离2)存在打开流,所以CM通过在对cm_close_existing_open_streams_target()的调用内发送应答消息来向隔离1通知关闭的流。CM继而调用cm_flow_information(),其将信息在应答消息类型内发送到目标隔离并且向隔离4发送指示信息流被允许的成功消息。
[0280] 通过上述情况,调用策略框架以执行授权决定并且返回FLOW_GRANTED或FLOW_DENIED的结果。为了响应pf_auth_decision()调用,策略框架首先调用pf_check_registered_modules_table()来检查源、资源和目标标签集合中的每一个包括对利用引用监控机实例注册的策略模块的引用。然后,策略框架通过调用pf_create_evaluation_results_table()来创建临时评估结果表。该表临时地存储由给定的策略模块生成的评估结果并且该表将由决定合并器来使用以产生最终的认证决定。
[0281] 然后,策略框架通过调用pf_extract_pm_labelset()来提取用于源、资源和目标标签集合的独立策略模块标签集合。将提取的标签集合发送到合适的策略模块以用于评估。
[0282] 然后,策略框架调用pm_evaluate()从而策略模块将基于策略来评估用于源、资源和目标标签集合的所提取的策略模块标签集合,并且产生GRANTED(许可)或DENIED(拒绝)的评估结果,以及如果可应用的话还产生新的目标标签集合。pm首先通过基于策略模块的策略合并源和资源标签集合来调用pm_get_effective_labelset()以获得有效的标签集合。接下来,策略模块调用pm_evaluate()来请求对有效标签集合以及目标标签集合的评估的授权。PM基于该标签集合的评估返回SUCCESS的结果码以及FLWO_GRANTED或FLOW_DENIED的主码。如果可应用的话,还可以返回新的目标标签集合。
[0283] 然后,策略模块调用pf_update_temp_evaluation_results_table()以存储由用于源、资源和目标标签集合以及相应新目标标签集合(如果可用)的策略模块生成的独立评估结果。如果策略模块没有生成新的目标标签集合,则它将针对新的目标标签集合返回NULL。
[0284] 一旦所有合适的策略模块已经产生了评估结果并且已经存储了相应结果,则策略框架调用pf_generate_final_auth_decision()。在该调用中,决定合并器针对合并器策略来评估存储在评估结果表中的结果并且生成GRANTED(许可)或DENIED(拒绝)的最终授权决定。在该决定合并器向策略框架返回GRANTED(许可)或DENIED(拒绝)的最终授权决定以及新的目标标签集合(如果可用)之后,策略框架将最终结果发送给IFM。
[0285] 说明性实施方式的示例性方面与已知方法的比较
[0286] 说明性实施方式的机制在很多方面不同于已知方式和方法,将在下文中讨论其中的某些方面。主要地,使用说明性实施方式的机制获得的益处如下。第一,标签集合完全保持在引用监控机内,并且因此其不易受到无意的或恶意的改变的损害。第二,标签集合提供了用于从安全考虑消除数据操作语义的机制,并且允许基于包含在信息流中的保护环境和资源的敏感度执行安全性确定。结果,源和目标保护环境以及资源都可以利用公共安全属性(即,标签集合)来进行安全策略评估,从而降低创建和使用安全策略和规则的复杂性。
[0287] 第三,标签集合还允许使用集合论操作以执行安全策略评估,从而再次简化了安全策略和规则。第四,可以使用多维哈希数据结果将标签集合与资源关联起来,从而降低对标签集合的无意或恶意改变的可能性并且降低哈希冲突的可能性。
[0288] 此外,已知系统要求居间设备执行一个信息源到另一个信息源之间的传输。例如,在从一个文件服务器向另一个文件服务器的文件传输中,通常要求居间设备向第一文件服务器请求文件并且然后向第二文件服务器传输接收的文件。根据说明性实施方式,因为该机制在信息流上操作并且不关注信息流中执行的特定动作,所以可以在第一和第二文件服务器之间直接进行文件传输,假设它们由引用监控机实现的安全策略授权。
[0289] 重要的是,虽然已经在能够完全实现数据处理系统功能的上下文中描述了本发明,但是本领域的技术人员应该理解能够将本发明的过程以指令的计算机可读介质的形式以及各种形式进行分发,并且不论实际用于执行该分发的信号承载介质的特定类型如何,本发明都可等同地使用。计算机可读介质的示例包括可记录类型介质、诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM以及传输类型介质,诸如数字和模拟通信链路、使用传输形式的有线和无线通信链路,诸如射频和光波传输。计算机可读介质可以采用编码格式的形式,该编码形式的格式可解码用于特定数据处理系统中的实际使用。
[0290] 已经出于说明和描述的目的呈现了本发明的描述,并且本发明的描述不旨在穷举或限制本发明于公开的形式。很多修改和变形将对本领域的技术人员变得明显。为了对本发明、特定应用的原理进行最好的解释,并且为了使本领域的其他技术人员能够针对适于构思的特定使用的具有各种修改的各种实施方式理解本发明,选择并且描述了实施方式。