首页> 中国专利> 安全令牌和生成该安全令牌并对其解码的系统及方法

安全令牌和生成该安全令牌并对其解码的系统及方法

摘要

本发明提供了一种对可用于计算系统中的安全标签进行编码和解码的系统和方法。该编码方法包括,部分地对特征集合中的每个特征赋予整数值。然后,为了对特殊的安全标签进行编码,将描述该标签的特征集合中的每个特征的整数值进行组合以得到单个整数值。

著录项

  • 公开/公告号CN101689239A

    专利类型发明专利

  • 公开/公告日2010-03-31

    原文格式PDF

  • 申请/专利权人 安全钥匙有限公司;

    申请/专利号CN200880016593.3

  • 申请日2008-05-19

  • 分类号G06F21/24;

  • 代理机构北京三友知识产权代理有限公司;

  • 代理人李辉

  • 地址 澳大利亚新南威尔士

  • 入库时间 2023-12-17 23:48:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2014-07-30

    授权

    授权

  • 2010-05-12

    实质审查的生效 IPC(主分类):G06F21/24 申请日:20080519

    实质审查的生效

  • 2010-03-31

    公开

    公开

说明书

技术领域

本发明涉及安全令牌,以及用于生成该安全令牌并进行解码的系统 及方法。本系统尤其适于(但不限于)用在采用了“信任范式(trusted paradigm)”安全系统的计算系统。

背景技术

人们利用计算系统来为广泛的用户存储、分类和传送多种类型的信 息。复杂的数据库结构、增长的计算能力、新搜索算法以及呈指数增长 的公众可用的计算机网络(如因特网)的出现使得许多企业可以经由因 特网来提供至少一部分货物、服务和信息。

对于许多企业来说,计算系统中所保存的信息的安全性是至关重要 的考虑因素。例如,在医药领域,通过严格的法律规定来管理对病人信 息的访问,用户可以通过该严格的法律规定来访问信息。

这导致在计算系统中建立了用于设置特殊的“许可等级”的复杂系 统。也就是说,许多计算系统都包括多层访问系统,其中,不同用户可 以具有对不同类型信息的不同访问等级。访问信息的能力可以由属于该 用户的许可等级、属于一段信息的许可等级或者两者的组合来决定。

通常,按照特定的方式对许可等级进行编码。其中一种方式是将许 可等级编码成“位矢量”(即,比特数组),其中各个比特都表示许可等 级的不同方面。

发明内容

在第一方面,本发明提供了一种对可用于计算系统的安全标签进行 编码的方法,在所述计算系统中,对特征集合中的每个特征都赋予一个 整数值,该方法包括以下步骤:针对某个特定标签,将描述该标签的实 际特征集合中的每个特征的整数值进行组合以得到单个整数值。

可以通过xy形式的指数来确定赋予所述特征集合中的每个特征的整 数值,其中,x和y是整数值。可以通过对整数值进行求和来组合所述整 数值。

在另选的实施方式中,赋予所述特征集合中的每个特征的所述整数 值是唯一的素数。在该实施方式中,通过对整数值进行相乘来组合所述 整数值。

所述方法还包括以下步骤:对于向能够描述所述标签的特征集合中 的每个特征赋予一整数值的步骤,针对所述特征集合中的每个特征使指 数y递增。

所述特征集合可以是许可等级或舱中的一个。所述组合被称作安全 标签。

在第二方面,本发明提供了一种允许用户访问包含在计算系统中的 某段信息的方法,该方法包括以下步骤:对所述计算系统中的所有离散 信息都赋予安全标签;对所述计算系统的所有用户都赋予安全标签;以 及对驻留所述计算系统中的所有软件应用都赋予安全标签,其中,为了 访问某段离散信息,所述用户和所述软件应用的安全标签必须支配赋予 这段离散信息的安全标签。

在第三方面,本发明提供了一种构建包含关于多个用户中的每一个 用户是否可以访问包含在计算系统中的多段信息中的每一段信息的信息 的列表的方法,该方法包括以下步骤:根据权利要求1至3中的任一项, 为每一个所述用户确定安全令牌,并为每一段所述信息确定安全令牌; 根据权利要求4所述的方法,确定所述多个用户中的每一个用户是否可 以访问所述多段信息中的每一段信息;以及构建安全令牌和访问许可的 列表。

在第四方面,本发明提供了一种根据本发明的第一方面对安全标签 进行解码的方法,所述方法包括以下步骤:确定所述单个整数的对数底 的向下取整值,以确定用于所述特征集合中的第一个特征的值;从所述 整数值中减去所述单个整数的对数基的向下取整值,以得到余数整数值; 以及如果余数值非0,则确定所述余数整数值的对数的向下取整值,以确 定所述特征集合中的下一个,其中重复该处理直到所述余数值为0为止。

在第五方面,本发明提供了一种软件应用,该软件应用包括用于控 制计算系统以执行根据本发明第一方面的方法的指令。

在第六方面,本发明提供了一种包含根据本发明第五方面的软件应 用的可记录介质。

在第七方面,本发明提供了一种能够执行本发明第一、第二和第三 方面中的任一方面的方法步骤的系统。

附图说明

在本发明的实施方式的说明中,通过示例并参照附图来呈现本发明 的特征,在附图中:

图1示出了根据本发明一个实施方式的适于执行软件应用的计算系 统;

图2和图5是示出了根据本发明实施方式的对安全系统的一套标签 进行编码的备选(alternate)处理的流程图;

图3和图6是示出了根据本发明实施方式的对安全系统的特殊令牌 (安全标签)进行编码的备选处理的流程图;

图4和图7是示出了根据本发明实施方式的对安全系统的特殊令牌 (安全标签)进行编码的备选处理的流程图;

图8是示出了根据本发明一个实施方式的确定安全系统的二元支配 关系(binary dominance relation)的处理的流程图;

图9是示出了根据本发明一个实施方式的确定安全系统的三元支配 关系(triadic dominance relation)的处理的流程图。

具体实施方式

图1中示出了适于和本发明实施方式一起使用的计算系统100的示 意图。根据本发明的一个实施方式,计算系统100可用于执行诸如竞赛 结构的应用和/或系统服务。计算系统100优选地包括:处理器102、只 读存储器(ROM)104、随机存取存储器(RAM)106以及输入/输出设 备(如盘驱动器108、输入外设(如键盘110和显示器(或其它输出设备) 112))。计算机包括可以存储在RAM 106、ROM 104或盘驱动器108中 并且可以由处理器102来运行的软件应用。

通信链路114连接到计算机网络(如因特网)。但是,通信链路114 可以连接到电话线、天线、网关或任何其它类型的通信链路。盘驱动器 108可包括任意适当的存储介质(例如,软盘驱动器、硬盘驱动器、CD ROM驱动器或磁带驱动器)。计算系统100可使用单个盘驱动器108或 者多个盘驱动器。计算系统100可使用任何适当的操作系统116(如基于 Microsoft WindowsTM或UnixTM的操作系统)。

该系统还包括软件应用118,该软件应用118在本实施方式中包括数 据库。软件应用118可以经由通信链路114与其它软件应用120或与远 程计算机(未示出)相连接。

软件应用118实现了本发明了一个实施例,并且被用来通过使用除 其它设备以外的信任系统范式来控制对数据库的访问。信任安全范式是 一种定义了特殊令牌(安全标签)的安全范式,所述令牌代表了一组特 性,这些特性对于它们所关联的信息来说是唯一的。通过一组等级(以 及作为令牌的舱(compartment))来限制系统访问。用户必须具有比他们 试图获得访问的信息的等级更大的等级。有时将用户需要比他们访问的 信息的等级更大的等级的概念称作强制访问控制。例如,令牌可以指示 数据库中保存的特殊文件的“安全等级”或“许可等级”。令牌还可用于 指示数据的其它特征,例如,某一安全等级内的特殊“舱”。

例如,使用数学术语,可以通过以下语义表达式来表示令牌:

Token=security_level{set of security compartments}

参照实施例1能够更容易地理解本表达式。在实施例1中,数据类 型和令牌被定制成可应用于保存医疗/生物信息的安全数据库。

“Highly sensitive”{“personal id”,“data analysis results”}

“Sensitive”{“DNA results”,“colposcopy results”}

“Sensitive”{“security management”}

“Restricted”{“HPV statistics”}

“Public”{“HPV risk factors”}

实施例1一样本令牌结构1

换言之,可以在概念层次上将一串令牌定义为多个许可等级,各个 许可等级与一个或更多个舱(即,落入许可等级的信息的类型)相关联。 例如,个人身份信息和数据分析结果被视为高度敏感的信息,而有关HPV 风险因子的普通信息可视为公共信息。

在现有技术中,一种将许可/安全等级及舱编码成与计算系统兼容的 格式的方法是使用位矢量,其中各个比特(或一串比特)表示等级和舱 的种类。通常将这种包括编码过的信息的位矢量称作“令牌”。

相反,本发明的实施方式将全部令牌的语义都编码成单个的整数。

该算法的一个实施方式利用指数形式的xy来创建标签语义之间的间 隔(separation),其中x是任意公共完整数(common whole number)底, 而y是任意整数指数。

因此,参照实施例1,在实施例2中,可以将等级和舱编码如下。

“personal identifiers” =21=2

“data analysis results”=22=4

“DNAresults”           =23=8

“colposcopy results”   =24=16

“security management”  =25=32

“HPV statistics”       =26=64

“HPV risk factors”     =27=128

“Highly sensitive”     =211=2048

“Sensitive”            =210=1024

“Restricted”           =29=512

“Public”               =28=256

实施例2-各个等级/舱的编码值

图2中示出了对一组标签中的各个标签进行赋值的方法步骤。在步 骤200和202,分别选择舱列表以及初始的指数(Exponent)1。换言之, 第一舱的值变为21=2。在204,对舱列表进行检查以确定是否存在舱。 如果存在,则将第一令牌赋予第一舱(206)。

然后,使指数递增,并选择列表中的下一个舱(208)。该方法随后 返回至步骤204,确定列表是否为空。重复该处理直到舱列表为空(210)。

一旦舱列表为空,就利用类似的一系列方法步骤来对各个等级赋予 令牌值。首先,选择等级列表中的第一等级(212)。

在214,对等级列表进行检查以确定是否还存在其他等级。如果存 在,则将令牌赋予第一等级(216)。

然后,使指数递增,并选择列表中的下一个等级(218)。该方法随 后返回至步骤214,确定列表是否为空。重复该处理直到等级列表为空 (220)。

一旦各个等级/舱都被赋予了指数形式的值xy,就可以通过增加所得 的等级/舱的值来对赋予特殊文件/用户的特定令牌进行编码。

在图3中概述了该处理的方法步骤,其中对一个特殊标签进行编码。 首先,在300,将等级的值赋予令牌。接着,对舱列表进行访问以确定它 是否为空(302)。如果不为空,则将标签的值加入令牌值(304)。重复 该处理直到所有舱值都被加入令牌为止。一旦所有值都被加入(即,舱 列表为空),该处理就结束(306)。

还可以通过参照以下实施例来说明该处理。对高度敏感且与个人身 份和数据分析结果两者相关的数据赋予标签“Highly sensitive” {“personal identifiers”,“data analysis results”},且编码为:

211+21+22=2048+2+4=2054

在另一个实施例中,对公众可获得且与HPV风险因子相关的数据赋 予标签“Public”{“HPV risk factors”},且编码为:

28+27=256+128=384

各xy值之间的数学距离确保了用唯一的整数来表示增加的值的每一 种可能的组合。

如果初始标签是加密的,则编码处理仍然有效,仍然可以采用该算 法。

例如,参照实施例2,在将标签“personal identifiers”编码成整数之 前,可以首先利用一种加密算法将其转换成加密的字符串。

“personal identifiers”→“$#&RERs*Er%$m<ydfg”

然后,将加密的字符串编码成整数:

“$#&RERs*Er%$m<ydfg”=21=2

按照这种方式,可以使标签更加难以理解(obfuscate)。

对整数进行解码以到达适当的语义结构(即,等级与舱的组合)可 以通过如下操作来实现:迭代地确定与该整数(忽略余数(remainder)) 相关联的最高有效指数以得到第一等级/舱,随后从整个整数中减去最高 有效部分以得到“余数”,然后重复以上处理直到不存在余数为止。

图4示出了解码的方法。在步骤400,处理接收到令牌整数(token integer)。对该整数取对数(402),并对该整数的对数向下取整(floor) (404)。该值变为列表中的第一整数(其表示令牌的等级)(406)。然后, 从原始的token integer中减去token integer的对数的向下取整,以得到差 值令牌(difference token)(408)。如果difference token不为0(已知要在 difference token中对舱进行编码)(410),则对difference token取对数 (412),并对difference token的对数向下取整(414)。该值变为列表中 的下一个整数(其表示舱列表中的第一舱)(416)(即,第二令牌的值)。 然后,从difference token integer中减去token integer的对数的向下取整, 以得到第二difference token(418)。如果第二difference token还是不为0 (410),则重复这些方法步骤直到difference token为0为止(420),这 时,全部的令牌(舱)都被解码,处理结束。

在另一个实施例中,对整数2054进行解码需要以下步骤:

1.log2(2054)=11.004220466318195;

2.floor(log)=11;

3.因此,最高有效元素是211,其对应于等级“highly sensitive”;

4.从2054中减去211=2054-2048=6;

5.log2(6)=2.5849625007211561;

6.floor(log)=2;

7.因此,下一个最高有效元素是22;其对应于舱“data analysis results”;

8.从6中减去22=6-4=2;

9.log2(2)=1;

10.floor(log)=1=21

11.因此,下一个最高有效元素是21;其对应于舱“personal identifiers”;

12.因为不存在余数(remainder),因此已经确定了所有的等级/舱并 重构了原始内容。

从以上示例中可以看出,用于整数值2054的令牌是

“Highly sensitive”{“personal id”,“data analysis results”}

实施例3-样本令牌结构2

该算法的另一个实施例利用素数来创建标签语义之间的间隔。

因此,再次参照实施例1,在实施例3中,可以将等级和舱编码如 下。

“personal identifiers”   =1

“data analysis results”  =3

“DNA results”            =7

“colposcopy results”     =11

“security management”    =13

“HPV statistics”         =17

“HPV risk factors”       =19

“Highly sensitive”       =23

“Sensitive”              =29

“Restricted”             =31

“Public”                 =37

实施例4-采用素数的各个等级/舱的编码值

图5示出了对标签集合中各个标签进行赋值的方法步骤。在步骤 500,选择舱列表,并确定该列表是否为空(502),如果不为空,则对舱 标签分配一个唯一的素数,该方法随后返回至步骤502来确定该列表是 否为空。对此处理进行重复直到舱列表为空为止。

一旦标签列表为空,就采用类似的一系列方法步骤对各个等级赋予 令牌值。如果列表为空,则分配所有的舱并从标签列表中选择第一等级 (506)。进行该列表是否为空的确定(508)。

如果不为空,则使素数递增,并分配给下一个标签(510)。该方法 随后返回至步骤508以确定该列表是否为空。对该处理进行重复直到舱 列表为空为止。

一旦标签列表为空,就将等级分组为相应的集合(512)。例如,将 “highly sensitive”、“sensitive”、“restricted”、“public”编码成一个集合, 即,其暗示着,如果需要等级“highly sensitive”,则该标签集合中的其它 标签也被编码。

一旦各个等级/舱被赋予了唯一的素数值,就可以通过添加所产生的 等级/舱的值来对要赋予给特殊文件/用户的特定令牌进行编码。

图6概述了该处理的方法步骤,在该处理中,对特殊的标签进行编 码。首先,在600,设置来自安全标签中的第一舱的值并且将label total设 置为0(602)。接着,对舱列表进行访问以确定是否还存在舱(604)。如 果存在,则label total变为label total乘以赋予舱标签的素数值的乘积 (606)。对此处理进行重复直到将所有舱值添加到令牌中为止。一旦不 存在舱,就设置安全标签中的第一标签的值(608),并确定在该标签集 合中是否还存在其他等级(610)。如果存在,则label total变为label total 乘以赋予给等级标签的素数值的乘积(612)。一旦L集合中不存在任何 等级,则结束处理(614)。

还可以参照以下示例来说明本处理。高度敏感且与个人身份和数据 分析结果两者都相关的数据被赋予标签“Highly sensitive”{“personal identifiers”,“data analysis results”},且被编码为:

37x31x29x23x3x5=11475735

将标签“highly sensitive”、“sensitive”、“restricted”和“public”编 码成一个集合。也就是说,如果通过暗示需要等级“highly sensitive”,则 所有其它较低的等级也包含在该标签集合中。在另一个示例中,公众可 获得且与HPV风险因子相关的标签数据可以被赋予标签“Public”{“HPV risk factors”},且被编码为:

23x19=437

素数的不可再分特性(atomic nature)确保了由一个唯一的整数来表 示每种组合。

即使初始的标签是加密的,该编码处理仍然有效,依然可以采用该 算法。

例如,参照实施例3,在将标签“personal identifiers”编码成整数之 前,可以首先利用一种加密算法将其转换成加密字符串。

“personal identifiers”→“$#&RERs*Er%$m<ydfg”

然后,将该加密字符串编码成整数:

“$#&RERs*Er%$m<ydfg”=1

这样,可以进一步使标签难以理解。

可以利用modulo函数通过重复地确定每个标签来实现对整数进行 解码以得到适当的语义结构(即,等级与舱的组合)。

例如,可以利用以下方法对11475735进行解码:

modulo(11475735,3)personal identifiers-余数为0;是令牌

modulo(11475735,5)data analysis results-余数为0;是令牌

modulo(11475735,7)DNA results-余数为5;不是令牌

modulo(11475735,11)colposcopy results-余数为7;不是令牌

modulo(11475735,13)security management-余数为11;不是令牌

modulo(11475735,17)HPV statistics-余数为4;不是令牌

modulo(11475735,19)HPV risk factors-余数为1;不是令牌

modulo(11475735,23)Public-余数为0;是令牌

modulo(11475735,29)Restricted-余数为0;是令牌

modulo(11475735,31)Sensitive-余数为0;是令牌

modulo(11475735,37)Highly sensitive-余数为0;是令牌

同样,原始的令牌被重构:

“Highly sensitive”{“personal identifiers”,“data analysis results”}。

图7中示出了该解码方法。

在步骤700中,处理接收到token integer。对列表中的第一舱进行检 查(702)并确定该列表是否为空(704)。如果该列表为空,则该标签变 为该列表中的第一等级(706)。如果该列表不为空,则取encoded token 的模(708)。如果modulo函数的结果非0,则处理返回至确定列表是否 为空的步骤(704),否则,当前的舱标签有效并被添加到舱标签列表中 (710),并且处理返回到确定该列表是否为空的步骤。返回到舱标签列 表为空的情况,等级标签变为列表中的下一个等级(706),确定列表是 否为空(712)。如果列表为空,则不存在其他标签且处理结束(714)。 如果列表不为空,则取encoded token的模(716)。如果modulo函数的结 果非0,则处理返回至确定列表是否为空的步骤(712),否则当前标签有 效并被添加到标签列表中(710),并且处理返回到确定列表是否为空的 步骤。

这些对安全令牌进行创建、编码和解码的方法相比于传统的“位矢 量”编码,提供了诸多优点。

首先,因为只需要传输单个的整数,所以增强了传输的容易度。相 应地,因为只需要保存单个的整数来描述各个令牌,所以也降低了存储 的需求(或者,换言之,使信息的压缩最大化)。

因为采用了简单的编码和解码方法,所以令牌的操控也变得非常简 单。

此外,将对令牌进行编码和解码的机制与令牌的语义分隔开来。因 为令牌表示为单个整数,所以令牌的语义会令不经意的(casual)观察者 感到迷惑。不经意的观察者不能从令牌本身获取任何信息,而是需要编 码方法的知识、所使用的底以及如何将整数映射到令牌结构的知识。

最后,因为在实现安全系统之前,可用的等级和舱的数量必须固定, 所以现有技术的位矢量的方法本身是受限的。本发明的实施方式可以对 原状进行修改从而增加额外的等级和舱,而无需对安全系统的基础结构 进行任何改动。因此,此处描述的实施方式在对语义进行编码时,提供 了更好的灵活性。

应该了解,虽然为了便于说明,以上实施例使用了2为底数的指数 形式或者素数底,但是也可以使用任何底。

上述编码系统还可以结合支配关系来使用,以进一步增强数据库中 的安全流。支配关系是用户访问信息的能力由他们是否“支配”该信息 来确定的一种关系。换言之,用户必须具有等于或大于访问该信息所需 的许可等级的许可等级。

对于要访问信息的用户,用户令牌必须支配信息令牌。用户令牌的 等级必须大于信息令牌,而舱必须是信息令牌舱的超集(superset)。

在上述标签系统的上下文中,关系是二元的,如果用户的标签支配 了与所请求信息相关联的标签,则准许访问。

例如,如果用户Bob具有包括类别“Highly sensitive”{“personal identifiers”,“data analysis results”,“HPV risk factors”}的安全标签, 则Bob将支配具有标签“Public”{“HPV risk factors”}的Microsoft WordTM 的文档。

上面给出的示例是二元支配关系的例子。

这里所介绍的实施方式利用了三元支配系统关系。

在这种关系中,存在三种类型的令牌。存在用户令牌(与用户相关 联)、信息令牌(与信息的特殊片段相关联,诸如,数据库条目或文件) 以及应用令牌(与用户所请求的动作相关联,诸如,向文件或数据库写入、 从文件或数据库读出、利用特殊的软件应用来访问信息等)。

在这种三元关系中,用户为了访问/操控信息而请求的应用的“应用 令牌”(打算的动作)和“用户令牌”两者都必须支配所允许动作的“信息 令牌”。

通过参照实施例来最佳地解释三元关系。在该实施例中,假设用户 打算读取或者更新一段信息。为了访问这段信息,用户不仅必须支配该 信息,还必须具有合适的“工具”(处理资源)来访问该信息。

例如,用户Bob可能想要访问被称作“security101”的文档来对其 进行文字处理(例如,增加一个条目)。用户Bob具有安全令牌,文字处 理应用具有安全令牌,并且文档security101具有安全令牌。

Bob为了能够对security101进行文字处理:

1.Bob的令牌必须支配信息令牌;并且

2.文字处理令牌必须支配信息令牌。

只有这两个支配关系均为真,Bob才能够对文档security101进行“文 字处理”。

参照图8和图9来例示该处理。应注意,参照图8和图9所例示的 处理与使用了指数编码处理的实施方式有关。

参照图8,整数被解码成信息安全标签列表-“Info_list”(801)。 然后,整数被解码成用户或者应用的安全标签列表(“Dom_list”),将对 “Dom_list”与Info_list进行支配测试(802)。从info_list中取出第一元 素(803)。从Dom_list中取出第一元素(804)。检查Dom_list的第一元 素是否大于Info_list的第一元素。如果Dom level小于info level,则支配 函数失败(807),算法结束(808)。否则,如果Dom_level大于info_level, 前进并确定舱列表(info_list)是否为空(810)。基于以下假设,将支配 标记设置为失败(806):用户或应用的舱(Comp_dom)不是info_list的舱 (Comp_info)的超集或者剩余的info_list具有空的舱集合。

如果舱为空(810),则算法结束(818)。如果info_list为空(810), 则支配关系或者“失败”(Dominate标记=失败)或者“通过”(Dominate 标记=通过)。

如果info_list不为空(810),则从Comp_info中取出第一舱(811), 然后,进行检查以确定Dom_list是否为空(812)。如果Dom_list为空 (812),则检查支配函数以确保其没有失败(817),且算法前进至info_list 的下一个元素(810),针对Comp_info列表中的所有元素重复该处理。

如果支配函数失败(817)(即,支配标记被设置为失败),则算法结 束(818)。如果剩余的Dom_list不为空(812),则从Dom_list中取出下 一个舱(Dom元素)(813),并检查其与Comp_info列表中的舱是否匹 配(814)。如果发现不匹配,则将Dominate标记设置为“失败”(816)。 否则,将Dominate标记设置为“通过”(815)。利用Comp_Dom列表重 复处理(812,813,814)以搜索与将Dominate标记设置为“通过”的 当前info_element的匹配(815)。

参照图9,该图概示了三元关系。将“does_dominate”标记初始设 置为“否”(901)。利用图8的算法,运行“user_token dominate the info_token”函数并返回结果user_dominate(802)。利用图8的算法, 运行“application_token dominate the info_token”函数并返回结果 application_dominate(903)。

如果user_dominate标记为真(904),则进行检查以确定 application_dominate标记是否是真(905)。

如果application_dominate标记为真,则将三元关系“Does_dominate 标记”设置为真,并且结束算法(907)。

否则,如果user_dominate标记为“假”和/或application dominate标 记为假,则Does dominate标记为假(如初始所设置的)并且算法结束 (907)。

支配关系可以与标签编码相结合以增强计算系统或数据库结构中的 安全性。对于较大的数据集合(诸如,计算机系统的数据库组件),将安 全标签的全部组合都表示为编码整数(有序对),而在被用于数据库之前, 运行支配关系的全部组合,并且以有序对的方式来存储访问结果通过(1) 或失败(0)。通过以下实施例(其中,仅仅为了便于说明,使用了底2) 来进行最佳例示:

步骤1-将安全标签编码为整数:

compartments  =[pathology,cardio]

pathology     =2

cardio        =4

levels        =[public,secret]

public        =8

secret        =16

步骤2-然后可以将等级舱进行组合:

secret[pathology]    =16+2=18

secret[Cardio]           =16+4=20

secret[pathology,cardio]=16+2+4=22

public[pathology]        =8+2=10

public[Cardio]           =8+4=12

public[pathology,cardio]=8+2+4=14

步骤3-这使得能够创建组合支配元组(Combination Dominance Tuple):

secret[pathology]dominate public[pathology]

=<18,10,1>

secret[Cardio]dominate secret[pathology,cardio]

=<20,22,0>

secret[pathology,cardio]dominate secret[Cardio]

=<22,20,1>

public[cardio]dominate secret[Cardio]

=<12,20,0>

secret[cardio]dominate public[Cardio]

=<20,12,1>

从以上实施例中可以看出,在创建安全组合元组的列表时,调用了 支配函数以返回1或者0。组合元组及其相关访问许可(1或0)被加载 到数据库中以获得更快的表格查找以获得或被拒绝对记录进行访问 (record access)以及对任何选择语句(select statement)的相关筛选 (filtering)。

可以通过基于用户的数据库会话将安全组合元组筛选为列表并且当 用户登录时将该列表作为表格保存在驻留存储器中,来获得额外的访问 速度。

例如,如果用户具有标签“secret[cardio]”,则只需要将元组<20,22, 0>和<20,12,1>(根据上面的实施例)保存在非易失性存储器表格中供 该数据库会话使用。可以在用户许可使用的函数(应用)上对安全标签 采用类似的机制。

一旦将“安全元组表格”加载到数据库中,where语句中的代码的单 个另外的SQL行(SQL line)就为信息保护提供了必需的筛选。

通过将“安全元组”概念扩展到除了“user dominate information”之 外还涵盖“application dominate information”,来实现之前定义的三元关 系。

例如,继续上面的实施例:

User=secret[pathology,cardio]=22

Applications=secret[cardio]=20

Information=secret[cardio]=20

secret[pathology,cardio]dominate secret[Cardio]

=<22,20,1>

secret[cardio]dominate secret[Cardio]

=<20,20,1>

因此,用户可以利用用户、应用和信息安全列表的特殊集合来进行 访问。

其中,利用素数和求模算法来形成令牌,例如:

“Label 1=Highly sensitive”{“personal identifiers”,“data analysis results”}

=37x31x29x23x3x5

=11475735

label 2=“Public”{“HPV risk factors”}

=23x19

=437

现在可以作为modulo函数调用来执行支配函数,即:

如果(information=label 1)(user=label 2)则

Label 2 dominate label 1=modulo(437,11475735)会失败(因为不等 于0);

如果(information=label 2)(user=label 1)则

Label 1 dominate label 2=modulo(11475735,437)也会失败(不等于 0),因为查看细节,“HPV risk factors”不是用户标签的一部分;

如果HPV risk factors被包括为标签1的一部分,即11475735* 19=218038965,则

Label 1 dominate label 2=modulo(218038965,437)则为通过(等于 0),因为查看细节,此时“HPV risk factors”是用户标签的一部分。

该方法使得能够构建向任何SQL数据库提供行级(row level)安全 的数据库分装器。

此外,三元关系提供了构建充当数据库与终端用户之间的透明(从 用户的观点来看)屏障的代理服务器的能力,从而能够基于这里介绍的 支配函数对内容进行筛选。也就是说,仅仅基于终端用户是否“支配” 信息来允许该用户访问该信息。

利用上述方法的任何一种都可以得到诸多好处。例如,该方法的实 现无需在组织数据库的方式上进行任何重大改动,并且可以被包括在现 有的数据库结构中。

该方法还具有以下效果:在用户或应用的安全元组特性支配了存储 在行级中的信息令牌的情况下,向任何用户或应用隐藏数据(使其不存 在)。这提供了一定程度的扰乱,可以阻止不经意的“黑客攻击”。

根据需要,可以将二元支配或三元支配关系实现在对象消息级、或 者甚至嵌入到操作系统级和/或通信级,以提供额外的安全和保护。

在对分配用于应对附加了安全标签的信息的处理的资源进行管理 时,提供了更大的灵活性。

此外,在采用指数方法的情况下,当返回或者操纵较大数量的表格 行时,使用编码信息的表连接(table join)比在行级运行的数据库函数更 快。优选的是,这加速了对任何请求的处理。

在实施本发明的实施方式时,产生并使用了大量的安全标签。这进 而要求管理系统正确且有效地对标签进行管理。

可以参照“安全模型”来构建管理系统,该“安全模型”是为在它 们的计算机系统内实施安全标签的特殊机构或组织而构建的。该模型将 形成安全结构、实施和操作的蓝图。

组织将确定风险(威胁)并且通过设计适当的安全标签架构来减轻 这些风险。该安全标签架构可包括许多概念性的分组,包括:

·人的作用;

·等级的作用;

·舱;以及

·应用(函数)

然后,这些分组被组织成适当的安全标签支配层级,并且可以设计 一套规则来允许减轻所确定的风险(威胁)所需的标签交互。

为了能够成功地实现本发明,可以利用可扩展为涵盖在此处所述的 本发明实施方式中实现的安全标签的全部概念的UML建模符号 (notation)来实现安全标签的模型。

以下步骤概述了一种可以用来构建适当的组织安全模型架构的方 法。

1、“用例图”,具体而言,就所研究系统的“参与者(actor)”(用户 和其它系统)而言,系统的“参与者”(和参与者层级)的分析将确定减 轻威胁的任何候选列表(或威胁树)所需的各种初始的安全等级。各种 安全“等级”将被注释或者记录到用例图中。

2、“用例图”,具体而言,就应用(函数)而言,“用例”(处理或服 务)的分析将确定减轻威胁的任何候选列表(或威胁树)所需的各种初 始的安全等级。各种安全“等级”将被注释或者记录到用例图中。

3、“用例图”,具体而言,就应用与用户交互而言,“参与者”与“用 例”相互关联(用户、其他系统和服务之间的交互)的分析将阐明在步 骤1和步骤2中确定的各种安全等级,并确定减轻威胁的任何候选列表 (或威胁树)所需的适当的舱集合。各种安全“等级”和“舱”将被注 释或者记录到用例图中。

4、“类图”,具体而言,“对象类”与“关联对象类”的分析将使得 能够确定在哪里将安全标签(等级和舱)实施到软件结构。各种安全“等 级”和“舱”将被注释或者记录到类图中作为对象类的“方法”和“属 性”。

5、“对象交互图”和“对象序列图”可以用来如上所述贯穿(through) 安全标签的动态范围(dynamic)而支配(主体支配对象),在上述二元 和三元情况下均如此。旨在了解由安全标签的交互产生的选通(访问和 关闭)的动态范围。

6、应当用针对特定数据结构而独立建模,或者从之前的UML建模 (上述的步骤1至步骤5)中得到的安全标签(表格的属性)对“实体关 系建模图”(不是UML方法的一部分)进行注释。

7、应当在步骤7之后重新对“对象交互图”和“对象序列图”进行 访问,这次是为了对消息结构进行复查(review)。减轻系统之间以及除 了“对象方法”相互作用以外,对象类相互作用(即,“类方法”)之间 的消息的风险。

通过执行以上步骤,“n”级(tier)计算机系统结构的安全模型提供了 诸多好处。通过在表格级和行级两者处的相关安全标签配置减轻了“数 据层”威胁。

通过对象类实例上的安全标签布置来减轻“中间级层”威胁,从而 得到了对对象和类消息相互作用的安全控制。

嵌入到加密通信层中的安全标签减轻了来自“用户”和“外部系统” 相互作用的风险。诸如RSA的标准加密算法可以用于封装安全标签。

应了解,虽然为了便于说明,以上的实施例采用了以2为底的指数 形式,但是,可以使用任何底。

还应了解,虽然这里阐述的令牌是用于控制对数据库中的信息进行 访问的标签,但是,还可以将相同的概念应用在其它计算领域(如,控 制软件对象之间的消息传送,或者控制计算系统之间的通信)中的信息 分类和保护。

还应了解,虽然所阐述的实施方式是指医疗应用/分级系统,但是根 据本发明的方法和系统的实施方式还可以用于任何类型的计算系统,或 者任何类型的数据库以利用安全等级和舱的任何适当组合来保持任何类 型的数据。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号