计算机执行的认证和授权体系结构的制作方法

文档序号:6567710阅读:246来源:国知局
专利名称:计算机执行的认证和授权体系结构的制作方法
技术领域
本发明涉及计算机执行的通过用户授权级别来控制与企业数据、应用 程序和其他对象有关的访问和授权权限的方法和系统。
背景技术
通常,对访问企业数据和/或其它电子资源(具有不同特权和访问权限 的数据和程序,包括所有的子部分)的用户权限的控制全部依赖于用户认 证(验证用户标识以保证人或机器与声称的一致)。存在多种安全认证的 方式,包括密码、智能卡、证书,以及甚至如视网膜扫描或语音识别的生 物检测。其中,证书和数字签名、智能卡,以及生物检测的使用被称为 "强"安全级别,同时普通的密码保护访问被典型的金融机构和安全专家 认为"弱"。尽管当前的认证协议是鲁棒的并且允许少量或者没有不清 楚,但是单独的认证不足以定义和执行每个人具有的与这些资源有关的权 限。相反,授权没有被足够好地处理以防止应用程序经常性地彼此相抵触 或以相反的目的工作,这是对于与特定数据或其它程序资源的公司安全协 议有关的特定用户授权而言的。
此外,用户的授权级别不是静态的。通常,这些授权级别作为晋升、 降级、中止或结束或者在特定项目中工作的员工"需要知道"的结果而变 化。认证和授权不仅仅是在付款授权或制定用以约束公司的合同的情景
(context)中很重要。事实上,对数据、程序或其它电子资源一天接一天 越来越繁琐的访问应该遵循用户在公司的角色和等级位置。也就是,公司 经常希望限制对为预定用户或预定用户等级所选择的数据资源的访问。例 如,可能具有访问与指定给他的生产线或客户有关的数据的合理需求的用 户可能不具有访问与其责任范围以外的生产线和/或客户有关的数据的合理 需求。而且,即使是可能具有访问特定数据资源的合理需求的被正确认证
的用户可能仅具有査看数据的合理权益(interest),而可能不具有输入新 数据或改变己有数据的相应合理权益。最后,单个用户可能具有各种属 性,如或者和公司有长期任期或者短期,其可能导致公司的安全协议需要 不同的授权级别。 一个非常重要的例子是安全检查,其也许不能从其它授 权元素值中推断出来。
因此,所需要的是保证强授权的方法和系统。尤其是,所需要的是根 据公司安全协议保证寻求访问这些电子资源的那些人事实上被授权发起这 些行为并访问这些资源以及这些访问是恰当的方法和系统。同样所需要的 是在分布式网络计算环境中可操作的强的和可量化(quantifiable)的授权 方法和系统。

发明内容
根据其中的一个实施例,本发明是一种计算机执行的用以控制对安全 数据资源的访问的方法。所述方法可以包括步骤存储(inventorying)要 确保安全的数据资源;生成包括映射至每个被存储的数据资源的一个元素 的需求数据结构,每个元素被配置成存储根据访问被映射的数据资源所需 的授权级别而设置的需求值;为具有对任何被存储的数据资源的访问权的 每个用户,定义和存储包括映射至多个数据资源中的每一个的一个元素的 授权数据结构,每个元素被配置成存储根据被授予给用户的用以访问被映 射的数据资源的授权而设置的授权值;接收访问至少一个安全数据资源的 用户请求;比较授权和需求数据结构并且不允许被接收的用户请求中对映 射至需求值大于授权数据结构中相应元素的授权值的需求数据结构中的任 何元素的任何安全数据资源的访问。
比较步骤可以包括清除(truncating)授权和需求数据结构以仅仅包括 映射至用户请求所请求访问的被存储的数据资源的元素的步骤。所述方法 可以包括允许被接收的用户请求中对映射至需求值小于或等于授权数据结 构中相应元素的授权值的需求数据结构中任何元素的任何安全数据资源的 访问的步骤。接收步骤可以通过包括数据库查询的用户请求来执行。不允 许访问步骤可以包括不允许数据库查询的编译和执行的步骤。接收步骤可 以通过包括SQL査询的用户请求来执行。定义和生成步骤可以通过包括被 配置成存储唯一标识用户的值的用户识别字段的授权和需求数据结构来执 行。比较步骤可以包括获取包括具有其值与已生成的需求数据结构中的用 户识别字段的值匹配的用户识别字段的授权数据结构的步骤。比较步骤可 以包括不允许被接收的用户请求的执行除非由授权数据结构元素的值共同 形成的授权二进制数大于由需求数据结构元素的值共同形成的请求二进制 数。可以执行一个步骤来确定需求数据结构中哪个元素的值小于授权数据 结构中的相应元素。确定步骤可以包括对需求数据结构中元素的值和授权
数据结构中相应元素的值执行XOR操作的步骤。还可以执行日志记录歩
骤用以对不允许访问任何数据结构的实例进行日志记录。还可以执行一个 步骤用以在对安全数据资源的访问不被允许时生成消息以请求更大的授 权。所述方法还可以包括当请求更大授权的消息的回应是授予与一个选择 的元素有关的更大授权时更新授权数据结构中所选择的元素的值的歩骤。 安全数据资源可以包括数据结构和应用程序中的至少一个。定义和存储歩
骤可以通过以目录月艮务禾示记语言(Directory Services Markup Language,
DSML)形式来描述授权数据结构以及通过在用户的数字证书中输入授权 数据结构作为用户数据来执行。
根据其中的另一个实施例,本发明是一种包括存储多个用户访问被控 制的安全数据资源的数据库的计算机系统。所述计算机系统可以包括至少 一个处理器;所述至少一个处理器产生(spawned)的多个处理,所述处 理包括处理逻辑用以存储(inventorying)要确保安全的数据资源;生成 包括映射至每个被存储的数据资源的一个元素的需求数据结构,每个元素 被配置成存储根据访问被映射的数据资源所需的授权级别而设置的需求 值;为具有对任何被存储的数据资源的访问权的每个用户,定义和存储包 括映射至多个数据资源中的每一个的一个元素的授权数据结构,每个元素 被配置成存储根据被授予给用户的用以访问被映射的数据资源的授权而设 置的授权值;接收访问至少一个安全数据资源的用户请求;比较授权和需 求数据结构并且不允许被接收的用户请求中对映射至需求值大于授权数据 结构中相应元素的授权值的需求数据结构中的任何元素的任何安全数据资
源的访问。
本发明还可以被看作是一种存储有表示指令序列的数据的机器可读媒 介,当所述指令序列被计算设备执行时,导致计算设备通过执行以下步骤
来控制对多个安全数据资源的用户访问存储(inventorying)要确保安全 的数据资源;生成包括映射至每个被存储的数据资源的一个元素的需求数 据结构,每个元素被配置成存储根据访问被映射的数据资源所需的授权级 别而设置的需求值;为具有对任何被存储的数据资源的访问权的每个用 户,定义和存储包括映射至多个数据资源中的每一个的一个元素的授权数 据结构,每个元素被配置成存储根据被授予给用户的用以访问被映射的数 据资源的授权而设置的授权值;接收访问至少一个安全数据资源的用户请 求;比较授权和需求数据结构并且不允许被接收的用户请求中对映射至需 求值大于授权数据结构中相应元素的授权值的需求数据结构中的任何元素 的任何安全数据资源的访问。
根据其中的另一个实施例,本发明是一种计算机执行的控制对企业数 据资源的用户访问的方法。该方法可以包括步骤存储(inventorying)要 确保安全的数据资源;为每个被存储的数据资源指定定义访问数据资源所 需的授权级别的需求值;存储每个被存储的数据资源的需求值至需求数据 结构;为具有对任何被存储的数据资源的访问权的每个用户定义包括每个 被存储的数据资源的授权值的授权数据结构,每个授权值确定用户是否被 允许访问相应的安全数据资源,以及当来自用户的访问一个被存储的数据 资源的请求被接收时,比较需求数据结构和用户的授权数据结构并且仅仅 当访问所请求的数据资源的授权值至少与相应的需求值一样大时允许访问 请求被执行。
该方法还可以包括使能被选择的用户定义和指定被指定的授权数据结 构给企业中等级更低的用户的步骤,被定义和指定的被指定授权数据结构 存储的授权值不大于定义和指定被指定授权数据结构的用户的授权数据结 构的授权值。所述使能步骤可以被执行从而每个用户的授权数据结构的每 个授权值不大于指定给等级更高的用户的授权数据结构的相应授权值。该 方法可以进一步包括授予增加的授权级别给用户请求以访问被选择的数据
资源并且相应地增加做出请求的用户的授权数据结构中被选择的数据资源 的授权值的步骤。当用户离开企业时一个删除用户授权数据结构的步骤也 可以被执行。每个用户的授权数据结构的授权值可以初始默认为表示最低 可能授权级别的最低值并且每个元素的授权数据结构可以手动地,非必须 地,或自动地在由管理者指定的或由公司安全协议所指示的事件(如晋 升)发生时被重置。


图1是根据本发明实施例的计算机执行的用以控制对安全数据资源的 访问的方法方面的流程图。
图2是表示根据本发明实施例的可能被执行以允许查询执行或拒绝查 询执行的步骤的流程图。
图3示出了根据本发明实施例的可能被执行以控制对安全数据资源的 访问的附加和扩展步骤。
图4示出了根据下面的"工作实例"(Worked Example)和根据本发 明实施例的作为GSDS和RSDS数据结构的基础的示例性安全数据结构。 图5是实现本发明实施例的示例性计算机的框图。
具体实施例方式
执行用以定义、保护和控制对安全数据资源的访问的方法的本发明计 算机的实施例可以包括五个模块初始(setup)资源存储模块、初始授权 模块、SQL编译模块、核心功能模块,以及升级和更新模块。这些模块跨 越(span)以下描述的功能设置和填充(populating)各种数据库以使能 或阻止用户执行访问安全数据资源的SQL (或其他结构化)查询或其它请 求,取决于他们是否被认证以及完全被授权。
根据本发明的实施例,当用户被拒绝访问或其它与安全数据资源或程 序有关的特权时,这样的拒绝被解释为是由于用户没有被授予访问作为其 访问数据资源的SQL查询或其它请求的目标的安全数据资源的足够权限或 授权而导致的。根据本发明的实施例,当用户查询因为没有与SQL査询所要访问的安全数据资源有关的足够权限而被阻止执行时,用户可以被给与
发送消息给他或她的管理者的机会。这样的消息(例如,如email,或其 它形式的电子消息)可以被自动格式化并且可以表示具体请求的访问特 权、当前保存的与所要访问的安全数据资源有关的用户当前访问特权级 别,以及满足用户SQL查询所需的访问特权级别。消息还可以自动并且独 立于用户生成以提示他或她的管理者或试图访问安全数据资源的人员中一 些被指定的(较佳的是等级更高)人。根据本发明的实施例,所有与关系 数据库管理系统(RDBMs)有关的用户尝试动作被理解为SQL或类似的 结构化语句。以任何程序语言或脚本/其它脚本编写的任何语句或功能可以 被存储在(例如,Oracle公司)RDBMs中并且其使用被安全地控制。
其后,如果管理者具有足够的访问特权,管理者可以指定或授予所请 求的附加访问特权并且用户可以被给予再次査询的机会,这次具有成功的 前景。根据本发明的实施例,用户仅仅能够指定或授予等于或小于授予其 的特权集的访问特权。通过这种方式,没有用户可以授予或指定大于当前 指定给他的访问特权的安全数据资源访问特权。根据本发明,用户仅仅在 该用户被发现其具有的访问特权等于或大于执行所指定的査询所需的那些 访问特权时才可以使一个査询被执行。
下面将详细描述适合建立对数据资源的控制以及对其访问的控制的体 系结构、方法和系统。短语"安全数据资源",如本文中所用的一样,试 图包括所有访问、执行,以及采用SQL (示例)命令的其它特权被控制的 数据、数据库、文件、程序、应用程序,以及其它条目。初始资源存储、 初始授权、SQL编译、核心功能,以及升级和更新模块在下面大致按照它 们的执行顺序被描述。 初始资源存储
初始资源存储模块102可以被配置成记录所有安全数据资源并且存储 访问被存储的安全数据资源所需的访问特权级别。安全数据资源以及各自 访问特权级别(或权限,这两个术语在本文中可互换使用)可以存储在安 全数据资源数据库中,如图1中的104所示。 一旦生成以后,该存储可以 用作安全数据结构(Security Data Structure, SDS)可能附加的框架。示例 性SDS在图4中以附图标记400示出。
根据本发明的实施例,期望访问安全数据资源的每个用户可以提供一 个唯一识别号,例如,64位。如图所示,SDS400可以包括(1)保存被认 证的用户的USER—ID 412的虚元素(dummy element)。该虚元素可以占 用SDS 400的最低有效位置。SDS 400还可以包括(2) SDS 400中映射至 公司安全协议(包括每个安全数据资源中用于安全授权的一个元素)所需 的全部元素,以及(3)表示存储在每个SDS元素中的值所可能需要的全 部位、半字节(nibbles),或字节。SDS 400的每个元素402可以被一个 元素标识符(图4所示的例子中的a - n)来标识。例如,访问SDS 400中 的元素e所需的访问特权可以由单个位来表示和存储。例如, 一个被认证 的用户或者具有访问对应于元素e的安全数据资源的足够访问特权,或用 户不具有。因此,元素e的大小406可以是1位,其足够表示406的两个 值;即,授权(e= 1)或未授权(e= 1) 。 SDS 400还可以包括每个元素 的简单描述,如404所示。在这个示例中,如果元素的值是"0",用户 没有被授权访问映射至元素e的安全数据资源。相反,如果元素的值是 "1",被认证的用户真正被授权访问映射至元素e的安全数据资源。根据 本发明的实施例,如果用户被确定针对元素e具有至少和访问元素e所需 的访问特权一样大的访问特权时,用户可以访问对应于元素e的安全数据 资源。如果用户被确定针对元素e不具有至少和访问元素e所需的访问特 权一样大的访问特权时,用户不能访问(或没有被授权访问)对应于元素 e的安全数据资源。也就是,试图访问对应于元素e的安全数据资源的 SQL査询将仅仅在用户对该元素的访问特权至少和安全资源数据库104中 为该元素存储的访问特权一样大时才被允许编译和执行。用户的访问特权 必须满足每个査询的访问需求否则用户查询将被拒绝执行。这允许对访问 安全数据资源的非常好的控制。
由于可能存在大量的安全数据资源,SDS 400可以被配置成包括相应 大量的元素,可能存储在每个元素的一个或多个位的访问特权。请注意元 素在大小上可以有很大区别。例如,存储在这样一个SDS 400中的访问特 权可以通过配置(deploying)公司的人力资源(HR)部门来定义。这些访
问特权反映HR管理者对员工个人都了解些什么以及HR指定的标准和价 值。HR还是与承包商、承包商的雇员、分包商、合伙人、合伙人的雇
员、供货商,供货商的雇员以及所有可能需要合理访问被严格控制的公司 安全数据资源的子集的人有关的公司基础规则的常规管理者。所有这些人 可能需要一个或更多被存储的安全数据资源的访问特权,而且所有都需要
被HR授予公司安全数据资源的基本访问特权或具有足够访问特权的任何 适当部分, 一个人不能授予大于其现在拥有的特权。
例如,HR和/或法律部门可以确定任何被认证的个人的状态以及源于 该状态的对安全数据资源的访问特权。接着,对每个被认证的人负责的管 理者一旦在HR确定这些人的状态是雇员、承包商或其它之后就可以转移 他们自己的访问特权的子集给报告给他们的那些人。
HR还可以具有保护自己的数据的权益。资源的管理者将会决定访问 特权并且指定存储元素和值以实现他们在整个公司安全模型中的部分,或 者直接或者通过扩展的被认可的方法。
例如,访问特权或权限可以根据安全检查级别(例如,限制发布=1, 秘密=2,最高机密=3,仅限于执行者(Executive Eyes Only) =4)来定 义。然而,在每个实例中,存储每个元素的访问特权的二进制数应该表示 访问特权的等级顺序从而更高(例如)的数字表示更高顺序的特权,连接 或映射至元素指定的安全数据资源。请注意多个安全数据资源可以被多个 不同的应用程序访问,由这些应用程序或不同管理者建议或指定的访问特 权可以不同。因此,重要的是这种可能被多个应用程序访问的安全数据资 源的访问特权被设置为多个应用程序中的任何一个所需的最高级别,以防 止购买应用程序的用户使用低于所需的访问特权来访问预定的安全数据资 源。本文所描述的本发明的应用程序结合了该原则。
如果可行,标准在这里被执行从而该标准的产品可以在指定的和分配 的元素402中作为二进制数来描述。如果不可行,该标准所需的全部必要 信息必须在用户发送一个SQL命令时可用从而SQL编译器可以生成适当 的二进制数来输入至査询中的元素。
此时,初始资源存储模块102已经获取了所需的与访问被控制的多个
安全数据元素中的每一个对应的多个元素中的每一个的访问特权级别,并
且其是具有对安全数据资源的访问权的每个用户所需的。Oracle记录设备
(Oracle Registration Facility, ORF),可以从本发明的受让人那里获得, 可以(但不是必须)被数据资源拥有者用以作为附加元素和值至在安全资 源数据库104中被保护的特定安全数据资源的工具。SDS,以及虚用户ID 元素,可以表示为大小不同的元素的具有己知结构的二进制数或位串,如 图4中的400所示。USER—ID还可以附加至所有SDS结构,如所包括的 GSDS禾PRSDS (在下面被讨论)。
在SDS位串中有多少个位可能被处理的问题至少部分在IA-32英特尔 体系结构软件开发者手册2A巻指令集参考A-M中被阐明。其中,第3 页至第7页记载"位(基位,偏移位)...返回位串中一个位的值,其为存 储器或寄存器中的位序列...如果基位是存储器地址,偏移位的范围能够是 —2 Gbits至+ 2 Gbits"。简而言之, 一个位串或多个位串可以占用(take up)可用的空存储器。程序员可以声明一个整数组来保护必要的存储器并 且接着适时地初始化SDS结构。以给定的SDS结构300的格式来设置单 个位不是困难的命题,并且等额授权(GSDS,在本文下面被讨论)将允 许对存储器的相同访问。2 Gbits的大小应该被理解为一个无符号位串的可 能最大大小,即使使用执行期间可用的所有存储器是可行的。
2 Gbits的可用大小足够大到其正好可以保存总共2, 000, 000, 000个每 一个为一位的元素,或者2X1000X1000X1000。然而分配250兆字节的 这样一个容量的存储器,每个结构可能仅仅占用即使是不很强大的桌面计 算机中可用存储器的一小部分。此外,分配给SDS结构的存储器以及比较 操作(同样在本文下面被讨论)可以在比较结果被处理完毕时很容易被释 放。对位串最大范围的相同推理还可以应用至下面描述的授权结构 (GSDS)。还请注意下面描述的机制可以包括完整SDS的縮短子集资 源SDS (以下称RSDS)可以被配置成包含对应于所有安全数据资源的每 一个元素的位值或可以被配置成仅仅包含用户在SQL查询中所请求的并且 被编译器功能所发现的要确保安全的实际上被估计的资源,其是在存储器 使用方面更节约的主张。初始授权
既然需要被控制的每个数据资源已经被存储并且被指定了在SDS结构 中的位置和值,对那些被存储的安全数据资源的访问权限可以有选择地被 授予给用户。现在返回至图1,初始授权模块106参与处理具有与通过模 块102存储的并且存储在安全资源数据库104中的安全数据资源有关的访 问和操作特权或权限的人员列表。在初始授权模块106中,以图4示例中 所示的形式的RSDS结构被复制并且其组成元素302的值默认为零。其理 由是与较佳的默认为尽可能高的访问需求相比设置访问授权的默认值尽可 能低。通过这种方式,在访问授权和操作特权被设置前,授权SDS或 GSDS被默认设置为0然而每个元素的访问授权和操作特权需求被设置为 最大值。这些值接着可以根据每个元素的期望访问级别和将要授予给每个 用户用来访问安全数据资源的访问级别而改变。表示访问特权的GSDS结 构具有相同的数据结构和元素(但元素值不是必须的),其允许RSDS和 GSDS容易与另一个相对比以确定一个特定的被认证的用户是否会被授权 访问特定安全数据资源。
初始授权模块106可以被配置成收集和/或接收来自HR的关于雇员的 雇用状态、身份等级以及与安全数据资源有关的权限的基本信息。初始授 权模块106可以被配置成为具有对任何一个安全数据资源的访问权的每个 人生成GSDS。具有这样的访问权的每个人的GSDS具有如图4所示的相 同结构,并且各个元素的位值根据人员的访问权限被适当设置。每个人的 GSDS将在GSDS结构的最低有效部分中包括那个人的USER一ID。
为了设置这样的访问特权,HR部门(例如)可以授予特权给其控制 的资源,并且其还可以根据其权限输入安全规则。下一步可以是具有对任 何一个安全数据资源的访问权的人员的每个管理者(所有的雇员具有这样 的管理者,可能除CEO以外)为向他或她报告的每个人授予特定的特权 级别,非必需地遵照来自管理者的管理者、公司的安全官员、HR,或公司 选择的任何审核代理的批准步骤。这个特征试图允许以配置公司认为合适 的方式查看特权分配。
模型或模板的使用能够使得对接收来自其管理者的授权的个人的访问权限分配非常快速。这样的模型或模板可以被管理者用来分配对安全数据 资源的特定权限集(他们拥有的权限的子集)给他或她的报告者。在这个 过程的最后,所有具有对安全数据资源的任何访问级别的雇员或其他被认 证的个人将会在各自GSDS元素上被分配与他们在公司的位置一致和/或与 他们在公司的责任范围一致的特定特权级别。公司策略可以决定第二级管 理者是否需要批准来自第一级管理者的部分或全部授权。与个人无关的元
素的值默认为0,意味着不能访问。通过这种方式,每个人的GSDS使得 雇员仅仅访问需要用来完成雇员的工作或契约任务的那些安全数据资源。 类似的综合控制同样可用于具有对任何公司安全数据资源的访问权的承包 商及其雇员和合伙人及其雇员,以及供货商和客户及其雇员。
所有管理者使用这种模块作为授予特权的工具的最终结果将会是 GSDS结构,以及所有适当元素被指定表示特定被认证的人员的特权级别 的值。被认证的人员的GSDS可以以目录服务标记语言(DSML)的形式 被描述并且作为用户数据输入至被认证的人员的证书中。GSDS DSML可 以被存储在(例如)Oracle应用程序服务器的数据库中,并且其可以被存 储在Oracle安全服务器中。
通过这种方式,配置公司可以完全指定具有对任何公司安全数据资源 的任何访问权的所有被认证的人员的访问权限并且可以存储这些访问权限 在每个这种人员的各自的GSDS中。这允许个人的GSDS与RSDS中描述 的资源安全需求相比较。在每种情况下,作为推定的资源拥有者的管理者 (具有公司策略和程序所需求的公司其他人员的批准)应该为证书记载 (certificate-bearing)人员指定用户ID以及他们的GSDS。下个模块描述 响应用户利用证书(例如,公共秘钥基础结构或PKI)登录后的用户SQL 查询的功能。证书号码(包括,例如,USER—ID)现在可以导入至RSDS 和GSDS的最低有效位置。
还请注意存储至安全资源数据库104的附加物(即,被访问控制的安 全数据资源的附加物)可能需要返回至初始资源存储模块102以在安全资 源数据库104中记录安全数据资源。同样需要的可能是用户或用户GSDS 的修改以增加与新增加的安全数据资源相对应的元素。初始授权模块106
接着可以被唤醒用以为每个用户的GSDS适当地设置与新增加的安全数据 资源对应的元素的位值。在正常的使用中(例如,用户根据安全数据资源
描述SQL查询,如图1中的110所示),初始资源存储模块102以及初始 授权模块106可能不被使用(尽管授权数据库108可能被使用)。再次, 与安全存储的任何新附加物有关的任何用户的默认特权默认为零或者不能 访问。
SOL预编译
预编译器模块112的功能包括对用户所请求的查询或査询的会话级系 列或访问请求的解析和扫描,并且选出执行査询所需的安全数据资源以及 为査询建立RSDS。请注意RSDS中元素位值将始终默认为与元素大小一 致的最大数,同时默认的用户授权为零。因此,与具有两位大小的元素标 识符对应的默认位值将是"11"而与具有一位大小的元素标识符对应的默 认位值将会是"1"。如果一个元素没有因为意外或其它原因被指定特定 数字的位值这将锁住不具有最高可用特权的任何人。
预编译器模块112的一个重要功能是(1)连接从具有元素标识符的 会话的累积查询中调用的特定SQL安全数据资源和与表示该安全数据资源 (及其任何重要安全子集或相关规则)的安全授权级别的元素标识符对应 的位值,(2)写入特定位值至RSDS结构从而核心功能模块114 (下面描 述)可以根据用户自己的GSDS结构适当地测试被认证的用户的授权特 权,以及(3)当来自多个源的重复和不平等安全请求被做出时, 一直支 持和执行来自与任何元素标识符对应的特定位值的任何授权源的最高值。 第三项(3)条目是解决不同应用程序对相同信息的不平等保护的当前问 题的关键保护。
在预编译过程的最后,存在具有n+l个包含一或多位的维(元素)的 数据结构SDS,其中具有n个元素的数据结构SDS具有附加内容,表示被 认证的用户ID的低位二进制数。默认值设置为ID元素的大小可达到的最 高数字,并且用户ID可以通过认证登录添加至这个元素。元素,除用户 ID以外的全部,可以按照它们数字值的顺序存储;这意味着从对资源的元 素分配和对访问级别的值分配中产生的最高有效数字可以被安排在左边而
最低有效数字在右边。
SQL预编译,以及对保留元素的后来决定的标准值的处理,不仅必须
指定应用标准的结果作为保留元素的值,还必须在存储安全SDS中对元素 进行重新排序(保持用户ID在最低有效位值)。如下面所示,在初始授
权中,将会存在必须具有与起源于附加安全值至存储资源的元素相同的排
序顺序的匹配元素集。为了区分这两个SDS实例,它们将会被分别命名为 资源安全数据结构(RSDS)和授权安全数据结构(GSDS) 。 RSDS的 USER—ID的默认值是被分配的大小中可用的最高值。GSDS的USER—ID
的默认值被设置为0。因此,缺少被认证的登录,在下面被描述的核心操 作一定会始终失败。
核心功能模块114负责确定用户的特权是否足够允许用户的直接或间 接SQL查询被生成和编译以及执行。现有的操作原理调用排列 (range)、打开,或盲査询以返回任何信息至具有足够特权的用户。本发 明的实施例可以延续这种原理,但可以描述用户在没有所需的特权级别或 权限时做出的对安全资源的直接请求的可选消息。本发明的实施例还可以 进行检査以査看用户是否在猜测其不具有足够特权的安全信息的存在。例 如, 一个会话中一定数量的失败的特定资源引用可以生成消息给用户、用 户的管理者,和/或访问尝试失败的资源的拥有者。这些消息可以是被配置 的并且应该遵循现有执行的与对数据的非授权访问有关的安全策略。 预编译效率
本发明的实施例可以包括两个预编译器。预编译器112可以首先运行 而第二预编译器可以接着运行以转换嵌入的或专门的SQL语句。目前很多 客户容忍性能的降低以换取增加的安全性。然而,本发明的实施例可以提 高而不是降低特定查询集的性能。事实上,仅仅对那些被授权(去除 (stripping out)非授权语句或语句片段)的査询的选择可以发送实质上更 小的查询至编译器。此外,存储的预编译器结果可以允许(1)甚至是 SQL语句的被授权部分的更快速的确定以及(2)甚至是一段时间内或一 个会话中重复査询的预编译器功能的替代。
转换通用的"where *" SQL子句为所请求的"where"条目的特定集
还可以实质上减少特定査询的范围和执行时间。处理一个封闭的条目集要 远快于宽的或通用全局类别,其不可避免地必须在数据库表中检索和处理 以收集这样的信息。根据本发明一个实施例的预编译器模块112可以传递 仅仅包含需要测试特权的条目的修改后的査询;核心功能114去除查询中
任何特权不够的部分,并且编译器可以仅仅编译縮减后的查询。
根据本发明的一个实施例,所有查询应当在112中被预编译以准备所 请求的査询及其多个部分所需的授权测试;替代方式是或者在任何保存本 发明实施例提供的效率(例如,全部编译并且等待其它低级别安全检测以 阻止进一步消耗性能的结果)之前或者接受减少的或相反的安全协议和执 行方案。进一步的选择是优化安全并且限制性能。当然,还可以通过消除 安全来获得性能。然而,本发明的实施例允许既具有性能又具有授权安 全,很好地映射至客户可理解的目标以让特定应用程序安全规定满足他们 的机构安全协议。
根据本发明实施例,每个报告的生成、每一位信息的获取、每次编辑 或更新,每次数据调用以及安全操作较佳的在数据库中被描述为SQL (例 如)査询。表格和模板、数据收集页面,其它图形用户界面和类似结构可 以具有嵌入其中的SQL语句。具有对公司资源可编程访问权的开发者和其 他人也可以相对于授权安全而被控制。在一些情况中,可能需要对非SQL 编译器或执行环境工具的提高。
目前存在的SQL预编译器以一种支持的程序语言转换嵌入的SQL语 句为能够被编译器处理的语句。这样的编译器,可以在本文中被用来解析 和扫描输入的SQL查询,并且识别其所要访问的安全数据资源以及从 RSDS数据库中获取相关的元素和元素值,在RSDS数据库中访问这样的 安全数据资源所需的授权级别被编码。这些元素接着可以集合在RSDS结 构中。RSDS结构接着可以被相应的具有相同顺序的相同元素的单个用户 的GSDS结构复制。GSDS结构和RSDS结构接着可以就这样被传递给如 图2中的U4所示的核心功能处理。
如果用户査询因为用户的GSDS没有被指定针对需要访问的安全数据 资源的足够大的授权而失败,用户应当不能获得对其的访问。盲查询或包
括排序的非特定查询,例如,可以很容易地被侦测并被阻止。如果被找 到,失败的査询通知可以被发送给用户的管理者。然而,这样的通知应当 只被发送给具有与通过用户的SQL查询企图试图访问的安全对象有关的足 够特权的管理者。如果不是的话,失败可以被作为一个通知发送给安全对 象的拥有者,其接着可以决定是否联系用户的管理者和/或(可能)授予特 权给管理者。对未授权变量名称的猜测,通过同一会话中重复失败来标 记,是对大部分公司安全策略的违反并且可以通过适当的消息通知用户的 管理者。这些安全资源的拥有者可以定义多个测试,其后系统可以认为这 样的重复访问尝试是对公司安全策略的违反。非法猜测的通知没有必要需 要公开安全数据资源的存在给任何不具有适当特权的任何管理者;即足够
高到访问安全数据资源的特权。
SQL预编译器112的一个重要功能是接收来自用户查询所请求的与资 源安全需求有关的输入并且翻译这样的输入为特定SQL语句以及执行该语 句时使用的相关安全数据资源之间的连接。根据本发明的实施例,査询的 预编译作为一个整体接着可以被导入来设置用户RSDS的多个元素值中的 每一个所需的位以反映该查询的安全值。因此,取决于查询,其各自的值 被设置的RSDS元素的数目是可变的。无论如何,SQL预编译器112用作 安全守护者(gatekeeper),由于其在用户RSDS结构中为尝试查询设置适 当的位从而形成了用户自身GSDS需要面临的挑战。最终结果是在传递中 阻止未授权用户,在他们达到接近安全数据资源的任何地方之前。
SQL预编译处理可以首先设置所有GSDS元素的值等于存储特权的用 户GSDS结构中的值。这可以使得用户可能从不具有他们被指定的特权以 外的特权。未使用的、未请求的资源在用户的查询没有引用这些资源时将 不会阻止对其它授权安全数据资源的特定用户访问。因此,可选的, RSDS和GSDS结构可以被清除从而仅仅保留与当前会话查询相关的那些 元素。
SQL预编译器112还可以在这个特定的会话及其査询发生争议时方便 地存储特定特权的名称集从而这些名称可以插入至可能在下面详细描述的 核心功能114的操作结论中生成的消息中。
随着RSDS元素值的更新由SQL预编译器112确定査询可以被本地存
储。所期望的是不管过了多久,在会话内以及会话之间,用户的重复査询 可以从这样的本地存储中获取以替代在每个实例中被计算。 核心功能
根据本发明的实施例,核心功能可以通过核心功能模块114执行以比 较为用户期望执行的査询而生成的用户RSDS和用户GSDS,该用户 GSDS设置用户预先被授予的与安全数据资源有关的权限。核心功能可以 比较为被提交的查询而生成的用户RSDS和用户自己预先生成的GSDS。 根据本发明的一个实施例,这样的比较可以按照下面的方式执行
1. 确定是否GSDS^RSDS;
2. 结果是1或0 (逻辑真或逻辑假);
3. 如果结果是真,用户预先被授予足够的权限以使得他或她的查询被 执行并且该査询可以被允许编译和执行。
4. 如果结果为假;也就是,如果GSDS<RSDS, GSDS XOR RSDS
的位运算生成一个表示RSDS的元素大于GSDS中的相应元素的唯 一编号并且用户的査询被阻止执行(至少是与对其不具有足够权限 的安全数据资源的访问有关的任何操作);
5. 上述步骤4的唯一编号输出生成权限不够的元素标识符的组合。
6. 本发明的实施例可以被配置成不允许试图访问用户不具有足够权限 的安全数据资源和/或来自初始授权模块106的请求授予足够权限 的查询。消息还可以被生成,以通知(例如)访问尝试不成功的安 全数据资源的拥有者。盲目的、宽范围的,或预定数量的重复猜测 还可以导致一个或更多消息的生成并发送至资源拥有者(以及用户 的管理者如果用户的管理者具有特权)前两个以及最后一个可以被 认为是对公司安全策略的违反并且导致消息被生成并且被发送至资 源拥有者和/或指定的安全人员(配置条目)。
7. 如果用户选择请求足够权限的授予以完成失败的查询(或者独立于 用户),该方法返回至所描述(outlined)的与初始授权模块106 有关的处理。8.如果权限被授予,用户被授权的、存储的,以及连接的査询接着可 以去除未授权的部分并且授权的査询被执行且查询所引用的安全数 据资源被访问。用户可能仅仅能从对查询中的资源的特定引用中直 接获悉授权失败除非其它被配置。可选的,系统可以被设置成从查 询中去除未授权元素及其相应资源,进而编译和执行查询中的授权 部分。
相对于上述的步骤4和5,唯一编号还可以按照如下方式生成。在>= 的测试中获得为假的结果, 一定有至少一个被测试的元素失败。也就是, 在一个元素的至少一个实例中一定具有大于特权(GSDS侧)的需求 (RSDS侧)。 一旦GSDS和RSDS的元素被排序和排列,元素的任何失 败一定意味着RSDS在其每一个失败的元素中具有至少一个最高有效位。 请注意对于相同元素GSDS为0且RSDS为1的异或运算结果是1,同时 对于相应元素GSDS为0且RSDS为0的异或运算结果为0。这就是要么 是一个而不是全部的"异或"异或机制。如果存在差别,如果元素在>=的 测试中失败其结果将是失败元素的最高有效位置一定是1。
由于元素被排序并且是全部已知的,n个元素一定具有如下的失败组合.
例如,如果n-5,存在5个不同元素,其中的每-其组合(顺序对元素的失败不重要)是 对于单个元素失败A二5!/1!(5-1)!,(结果是5) 对于两个元素失败B=5!/2!(5-2)!,(结果是IO 对于三个元素失败C=5!/3!(5-3)(结果是IO), 对于四个元素失败D=5!/4!(5-4)!而(结果是5), 对于五个元素失败E=5!/5!(5-5)!,(结果是l)
其含意是,对于11=5,具有31种可能性的单元的被索引的数组可以保 存这样5个元素的集的所有失败元素的不同组合。由失败元素的每一个组 合表示的数字可以是1和31之间的数字(请注意0表示没有失败因而不是 数组的一部分)。任何A+B+C+D+E的数组可以保存失败的所有组合可 能,数组可以在GSDS的被排序的元素可知的任何时候被生成。接着,数组可以被标记索引从而每个失败的元素可以从通过GSDS和RSDS异或运 算生成的唯一编号中推出。因此,包含失败元素的数组的索引可以从作为 异或核心操作结果的唯一编号中导出。
其结果是核心功能的初始可以包括生成通过作为RSDS和GSDS异或
运算的结果的唯一编号来访问的失败元素组合的数组。核心功能,传递与 哪个元素被批准以及哪个不被接受有关的信息,可以允许用户提交的查询 仅仅在用户具有足够授权的那些资源上执行。
消息工具知道用户的用户ID并且具有对其所需要的与用户管理者有 关的信息的访问权限。消息最后可以询问用户你是否希望我发送这个消 息给你的管理者从而你的管理者可以授予你足够权限来执行你的查询?用 户接着可以修改查询或请求必要的特权。管理者,即使拥有足够的授权, 可以选择或不选择检查对消息的批准;还可以提供对这个消息的其它批准 流程。实现本发明实施例的最后结果是以系统的、鲁棒的,以及高性能的 方式为公司提供容易的处理安全需求的方式。
在用户尝试大范围值,部分授权而部分没有授权的情况下,可以 (A)通过编译器被转换为对所有被指定有授权的条目的请求,(B)是将 具有对额外特权的用户请求的消息发送给管理者的时候,(C)导致对额 外特权的请求,被管理者批准,并被发送给问题中的资源的拥有者,或者 (D)这些的一些组合,由授权的用户设置系统时所选择的配置来决定。
在用户重复尝试不同变量的情况下,没有一个被授权给用户或甚至不 存在,是对至少部分安全规则的违反。这种实践类似于通过重复试验来猜 测密码。本发明的实施例可以被配置成发送被客户公司的安全策略确定为 适当的消息。 更新和升级
升级和更新模块可以被提供来传递已有的安全规定(provisions)给适 当的RSDS结构并且允许依照用户选择的进一步修改。类似的,已有的应 用程序及其外部的规则可以被处理从而RSDS元素将会被生成。接着,用 户资料的自动处理将允许GSDS的相同元素保存适当的值。从这点看,用 户将拥有具有已有数据库系统的安全特性的完全功能系统。用户接着可以 进一步用任何额外的粒度来丰富(flesh OUt)己有的安全参数。这个模块 还将提供适当的形式来收集这个处理所需的信息。该模块还会提供表格和 自动化程序以处理系统用户的状态中影响他们工作职责的任何部分或全部 的晋升和其它改变、雇佣或契约状态,或他们需要知道的特定信息(因此 以及他们的授权)。
图2是表示根据本发明实施例的可能被执行以允许査询执行或拒绝査 询执行的步骤的流程图。图2假设已经存在为用户存储的GSDS结构。 GSDS结构编码与安全数据资源有关的用户权限。未保护数据资源,按照 其定义,对访问它的至少是被适当认证的人员没有限制。在操作中,方法 开始于S21,其中查询被描述并被提交以执行,査询被分析并且针对提交 查询的人员以及针对被提交的查询所访问的安全数据资源而生成RSDS结 构,如步骤S22所调用。通过比较针对用户及其査询的GSDS和RSDS, 如S23所示,可以做出与用以访问被提交的查询所引用的安全数据资源的 用户权限有关的决定。例如,如果GSDS大于或等于RSDS,被提交的查 询可以被允许执行,如S24和S25所示。如果GSDS (其值)小于RSDS
(其值),用户的查询可能不被允许(例如,阻止执行),如S26所示。 方法结束于S27。在失败的情况下,附加步骤(例如,如异或操作)可以 被执行以准确地确定RSDS中的哪个元素被设置了比它们在用户GSDS中 的相应元素更低的值。为了縮减GSDS和RSDS结构的大小,它们可以被 选择性地清除和/或进行必要的掩码(masked)。
图3示出了根据本发明其它实施例的可能被执行来控制对安全数据资 源的访问的扩展步骤。图3所示的方法开始于S31,其中一个需要被保护 的全部数据资源的存储操作被执行,如S32所示。S32之后,预定数量的 位可以被指定给要确保安全的每个被存储的数据资源以定义其各自访问权 限。单个位在访问权限为授予或不是的情况下是足够的,更多的位使能更 高精度的控制(例如,只读,读/修改,删除,等等)。安全数据结构
(SDS)框架接着可以被定义以保存这些位,其示例在图4中被示出。歩 骤S35和S36调用一个为每个可能请求访问安全数据资源的用户定义的 SDS结构,以及他们各自被授予的通过选择性设置与该结构中每个元素的
授权级别相对应的位而被编码的权限,从而为用户形成GSDS结构。如
S37所示,当引用或其它试图访问安全数据资源的査询被接收时,为提交 查询的用户生成RSDS结构,RSDS具有与用户GSDS相同的结构。然 而,RSDS具有映射至用户査询试图访问的安全数据资源的每个组成元素 的位值,并且存储在每个这样的元素中的值可能小于或不小于它们在用户 GSDS中的相应元素。当GSDS和RSDS结构(或匹配的子集,通过特定 查询确定)被比较以确定被提交的查询是否被允许时,其可以通过是否 GSDS RSDS来确定。如果GSDS >= RSDS,用户的查询被允许査询。 如果GSDS〈RSDS,则用户提交了其权限不够的査询且他或她的查询(至 少最初)被拒绝执行,如步骤S38所调用。进一步的操作(例如,如异或 运算)可以被执行以精确地确定查询中失败的元素(也就是,哪个RSDS 元素大于相应的GSDS元素)。出于安全目的,附加步骤(图3未示出) 接着可以被执行,如登录访问安全数据资源的失败尝试和/或通知管理者的 消息步骤和/或请求授予足够的权限以使得查询被成功执行。 工作实例
下面示出了一个上面描述的计算机执行的授权方法的示例。下面的示 例示出了业务流程(business process)以及本文所描述的安全方法影响这 种业务流程的构成部分的方式。出于仅仅是示例的目的,这个示例描述了 一个虚构的具有三个部门的X公司(以下称XCO);即,ENTRADA部 门,FUNDUS部门和GORGON部门。XCO还有两个等级;即,输入职员 等级和发票核准等级,而其是FUNDUS部门的重点。这个示例包括五个 用户,其中三个是发票职员(JONES, SMITH,和BROWN)而两个是管 理者/发票核准者(DITHERS和SMITHERS)。在这个示例中,这五个用 户将处理两个产品族;即,GIZMO产品族和GADGET产品族。通常,每 个部门可以被组织为 一 个具有最终安全规贝U ( consequent security provisions)
的单独操作单元(OU)。然而,根据本发明的实施例,这样
的ou没有必要具有任何意义除非他们被使用在用户定义的规则中和/或作
为用于授予特权、权限,以及角色给用户的基础。 应用在这个示例中的权限安全规则
所有的帐款都由FUNDUS部门做出,XCO的中心帐款部门。
JONES仅仅能输入ENTRADA部门的发票。然而,JONES还能查看
FUNDUS部门的发票。
SMITH仅仅能输入FUNDUS部门的发票。
BROWN能输入ENTRADA和GORGON部门的发票。
DITHERS能查看ENTRADA、 FUNDUS,和GORGON部门的发票;
DITHERS还可以批准/更新这些发票帐款。
DITHERS能查看、创建和更新FUNDUS部门的帐款(与产品族无关)。
SMITHERS能査看ENTRADA 、 FUNDUS禾Q GORGON部门的 GADGET产品族的发票。SMITHERS可以更新这些发票(发票付款方 法)并且当它们仅仅包含来自GADGET产品族的项目时批准被提交的需 要付款的发票。SMITHERS不能批准GIZMO产品族的帐款。
SMITHERS可以査看和更新FUNDUS部门的帐款,并且可以批准仅 仅来自ENTRADA和FUNDUS部门的发票的付款。
DITHERS能够核查(查看),并且批准(更新)输入的仅仅是 GIZMO产品族的任何发票的付款。
因此,发票职员和管理者/发票批准者都仅仅具有受限的权限来更新、 批准,以及甚至核查或查看记录。上面定义的XCO的应付帐款和应收帐 款的规则设置了按照产品族(或者GADGET或者GIZMO)来访问和更新 财政记录的需求或批准来自XCO的三个部门(ENTRADA、 FUNDUS以 及GORGON)的发票的付款的需求。请注意包含GADGET和GIZMO产 品线项目的发票应当被禁止被仅具有GADGET产品族审核特权的人员, 或仅具有GIZMO产品族审核特权的人员査看,除非其可能査看部分发 票。
DITHERS在初始资源存储和初始授权阶段将能够査看来自GIZMO产 品族项目的发票,其中GIZMO的拥有者首先在RSDS的适当元素中设置 特权需求并且接着,在初始授权阶段,GIZMO的拥有者进行授权并且相 应的元素并设置相应的特权级别。GIZMO产品族资源的拥有者可以保护
他/她所希望保护的所有GIZMO资源,在GSDS中建立适当的元素。接 着,拥有者可以授权给DITHERS (并且,通过委托以及在HR的政策范围 之内,DITHERS可以授权给他/她的报告者)。这意味着DITHERS不能访 问GADGET产品族项目的发票除非这些访问被GADGET的拥有者或足够 GADGET特权的拥有者授权。
DITHERS还可能不能访问,在缺少必要的授权时,具有混合发票行
(例如,第一发票行是GIZMO产品族项目以及第二发票行是GADGET产 品族项目)的发票。
下面详细描述了这些安全规则怎么被本发明的一个实施例来执行。人 力资源(HR)部门(例如)可以是XCO内负责确定哪些雇员可以访问公 司书籍以及其它安全数据资源的单位。因此,对于这个三个部门,仅仅 SMITH、 JONES,禾卩BROWN (发票职员)以及DITHERS禾卩SMITHERS
(管理者/发票批准者)无论如何应该具有XCO所拥有的财务应用程序的
任何一种权限。此外,这五个人中的至少一个必需是登录的以及被认证的 用户。发票职员受到他们所需要完成的工作以及所需要知道的内容的限
制;这两者是通过他们的管理者指定给他们的特权的基础。
所有的XCO安全数据资源可以被记录在数据库,如图1中104所 示。根据本发明的实施例,安全数据资源包括所有数据、程序,或其访问 被控制的属于XCO的电子记录。因此,对所有这些数据资源的存储应该 被执行并且存储的结果被存储在登记数据库。从这个登记数据库中可以为 具有对这些安全数据资源的访问权限的每个人员创建一个资源安全数据结 构(RSDS) 。 RSDS数据库可以被创建以存储这些RSDS结构。
按照这种方式,RSDS定义授权级别,该授权级别必需满足该RSDS 被指定的唯一标识的人员获取对他或她的查询试图访问的被存储的安全数 据资源的任何访问,查看或能够编辑或批准的需求。安全数据资源的拥有 者将按照如下方式响应来自初始安全资源存储模块102的提示该方式将 导致根据授予给唯一标识的用户的期望访问级别为每个元素选择性设置 RSDS的与其组成元素对应的位。为TSDS结构的每个元素使用字母元素 标识符,可以获得Ab c defghljklmn (User—ID) 初始RSDS 11 11 11 1 1 1 1 1 1 1 1 1 1 88888888
初始后的RSDS 0 0 0 0000000000 88888888
请注意初始RSDS结构(即,在与期望的访问级别对应的任何位值被 设置之前的RSDS的初始状态)具有被设置为最大值11 (11是3的二进制 数)的元素标识符a,b,c…m的位值。在这个示例中,如图3所示,元素 a, b, c具有与其相关的三个级别的授权权限,对应于位值00 (不能访 问),01 (查看/审核)以及10 (输入)。还请注意User—ID 8888888被用 来表示64位串(例如)的User—ID,其唯一标识用户。元素还按照它们最 大值的顺序排序,仅仅除了最低有效位值的User—ID之外。 初始授权
授权安全数据结构(GSDS)是RSDS结构的一个镜像;其初始元素 位值被设置为0,默认的特权。
abcdefghljklm n 初始GSDS 0000000000000 88888888
初始后的GSDS 0000000000000 8咖ms
其意思是每个用户默认为对查询中的任何安全数据资源根本没有特 权。请注意用户的査询对任何未保护的对象是成功的。如果用户发起盲查 询,用户将仅仅能查看那些用户实际具有所需的特权的对象。本发明的实 施例不允许对用户不被授予足够权限的安全数据对象的访问。 SOL编译
现在返回至本文所揭露的特定示例中,SMITHERS,不具有查看或审 核包含来自GIZMO产品族信息的任何发票的特权,决定无论如何要检査 GIZMO产品族一他从其它消息来源那里知道产品名称并且通过适当的 WHRER子句进行猜测。现在,通过用户SMITHERS登录和认证, SMITHERS在单个会话中发起了来自被配置成访问安全数据资源的财务应 用程序的一系列查询,如图1中附图标记110所示。该查询包含请求报告 来自GIZMO和GADGET产品族的销售情况以及请求批准来自GORGON 部门的包含GADGET和GIZMO产品族的特定发票的账款。回顾这个用户
的权限安全规则SMITHERS能够查看ENTRADA、 FUNDUS,和 GORGON部门的GADGET产品族的发票。SMITHERS能够更新这些发票 (发票付款方法)并且当它们仅仅包含来自GADGET产品族的项目时批 准被提交的需要付款的发票。SMITHERS不能批准GIZMO产品族的账 款。此外,权限安全规则还规定SMITHERS能够査看和更新FUNDUS部 门的账款,并且可以批准仅仅来自ENTRADA禾n FUNDUS部门的发票的 账款。
编译器(预编译器)模块(图1中的112所示)将推断SMITHER的 查询中相关的安全数据资源被映射至元素标识符f (对来自GORGON部门 的发票的批准),j (GADGET产品族审核),k (GIZMO产品族审 核),1 (GADGET产品族发票的批准),以及m (GIZMO产品族发票的 批准)。在RSDS中根据访问SMITHER的査询结果中的这些安全数据资 源的需求来设置元素标识符的位值,其位值如下所示
a发票特权,Entrada 00 (0=不能访问
b发票特权,Fundus 00 (0=不能访问
c发票特权,Gorgon 00 (CN不能访问
d批准/更新发票账款,Entrada0 (0=未授权
e批准/更新发票账款,Fundus f批准/更新发票账款,Gorgon g审核/查看发票账款,Entrada h审核/查看发票账款,Fundus i审核/查看发票账款,Gorgon j GADGET产品族审核 k GIZMO产品族审核 1 GADGET产品族账款批准 m GIZMO产品族账款批准 n被认证的USER ID
0 (0=未授权
1 (0=未授权 0 (0=未授权 0 (0=未授权
0 (0=未授权
1 (0=未授权 1 (0=未授权 1 (0=未授权 1 (0=未授权
1=査看/审核3=输入) 1=査看/审核3=输入) 1=查看/审核3=输入) 1=已授权) 1=已授权) 1=已授权) 1 =已授权) 1=已授权) 1=已授权) 1 =已授权) 1=已授权) 1=已授权) 1=已授权)
82位(64位唯一的SMITHERS ID) 因此,根据图4中示出SDS 400的结构,SMITHER的RSDS可以具 有以下格式00 00 00 0 0 1 0 0 0 1 1 1 1,尾部后面是位于最低有效位置的SMITHER的64位User—ID。清除这个结构从而仅仅包括SMITHER通过 他的查询期望访问的那些安全数据资源的位值将导致对于这些查询 SMITHER的RSDS结构如下
f j klmUser—ID 11111 SMITHERS
如上所示,SMITHES在其查询中试图访问的每个安全数据资源都有 被设置为"l"的相应位值。根据上面针对SMITHERS的权限安全规则中 定义的SMITHERS的权限来设置元素标识符的位值导致SMITHERS的 GSDS具有如下位值
a发票特权,Entrada 00 (0=不能访问
b发票特权,Fundus 00 (0=不能访问
c发票特权,Gorgon 00 (0=不能访问
d批准/更新发票账款,Entrada0 (0=未授权
e批准/更新发票账款,Fundus f批准/更新发票账款,Gorgon g审核/查看发票账款,Entrada h审核/査看发票账款,Fundus i审核/査看发票账款,Gorgon j GADGET产品族审核 k GIZMO产品族审核 1 GADGET产品族账款批准 m GIZMO产品族账款批准 n被认证的USER ID
0 (0=未授权
1 (0=未授权 0 (0=未授权 0 (0=未授权
0 (0=未授权
1 (0=未授权
0 (0=未授权
1 (0=未授权 0 (0=未授权
1=査看/审核3=输入) 1=査看/审核3=输入) 1=查看/审核3=输入) 1=已授权) 1=已授权) 1=已授权) 1=已授权) 1=已授权) 1=已授权) 1=己授权) 1=已授权) 1=已授权) 1=已授权)
82位(64位唯一的SMITHERS ID) 请注意用户GSDS的位值可以事先被定义在该用户的任何查询中。因 此,根据图4中示出SDS 400的结构,SMITHER的GSDS可以具有以下 格式00 00 00 0 0 1 0 0 0 1 0 1 0,尾部后面是位于最低有效位置的 SMITHER的64位User—ID。清除这个结构从而仅仅包括对应于上面生成 的RSDS的位值(以至于仅仅包括元素标识符f, j, k, 1, m以及UserJD的 位值)而为SMITHER通过其査询试图访问的安全数据资源生成如下被清除的GSDS:
f j klmUser—ID 110 10 SMITHERS
请注意仅仅有5个位被用来定义被授予的以及被请求的权限,另外还 有User—ID使用的64个位。尽管RSDS和GSDS结构的整个未被清除的位 串可以被使用,其在不涉及或不需要访问所有被存储的安全数据资源的大 部分査询中不是必需的。清除可以很容易地在RSDS和GSDS中被执行, 因为不需要估计任何GSDS位值除非与反过来从用户査询中衍生出来的 RSDS位值子集相匹配的那些值。 核心功能
核心功能模块,图1中的114所示,功能上并且参考这个示例,测试 SMITHERS是否要査看GIZMO销售报告,GADGET销售报告并且 SMITHERS是否要批准来自GORGON部门的包含GADGET和GIZMO产 品族的特定发票的账款。这个测试可以包括GSDS和RSDS位串的比较。 这个比较的最终结果可以包括选择性地阻止涉及SMITHERS不具有适当权 限的安全数据资源的任何SMITHERS的(例如)SQL查询或允许这样的 SQL査询被执行。根据本发明的一个实施例,这个比较可以包括确定 GSDS >= RSDS是否为真的第一步骤。如果为真,SMITHERS的查询将被 允许执行。如果GSDS >= RSDS的结果是假, 一个异或操作(以下称, XOR)或其它测试可以被执行,使用(可以是被清除的)RSDS和GSDS 的位串作为操作数。
替换GSDS禾卩RSDS的值,GSDS >= RSDS操作变成了 11010 SMITHERS USER—ID >= 11111 SMITHERS USER—ID =假。从这里可以推 断至少一个RSDS元素具有大于相应GSDS元素的最高有效位。因此,为 了确定RSDS的那个或那些元素大于相应的GSDS的元素,核心功能模块 114可以执行下列XOR操作
1 111 1 SMITHERS USER ID XOR 11010 SMITHERS USER ID 001010 因此,XOR操作的结果是
f j k 1 m User—ID 00101 0
忽略尾部通过异或SMITHERS User—ID必需相同的两个实例而或得的 "0",结果值是00101,其对应于十进制值5,表示对元素k和m (对 GIZMO产品族的审核和账款批准)的失败权限。可选的,可以对RSDS 和GSDS结构的每个元素执行单独的XOR操作并且在结果中被设置的任 何位接着可以被存储并与其对应的失败元素相关联。最终,核心功能模块 114将不允许SMITHERS对其没有被授予任何或足够权限的安全数据资源 的尝试访问的执行,如图1中的122所示。特别是,SMITHER的访问映 射至元素标识符k和m的安全数据资源的SQL查询被拒绝执行。功能性 的,这意味着SMITHERS将不能访问与对GIZMO产品族的审核和账款批 准有关的安全数据资源。
更详细的描述,当GSDS和RSDS之间的XOR操作得到非零结果, 则至少一个元素(f,j, k, 1, m)肯定失败。也就是,在至少一个实例中,一 个元素肯定具有比特权(GSDS顶ij)更大的需求(RSDS侧)。如果两者 之间存在不同,当一个元素在XOR测试中失败其结果是该失败元素的最 高有效位置为1。
获得XOR操作的结果后,存在很多方法可以用来确定那个或那些元 素导致了逻辑l,其表示不足够的特权。对于五个元素(f,j, k, 1, m)中的 任何一个或全部都有可能失败。其组合(顺序对元素的失败不重要)是
对于单个元素失败八=5!/1!(5-1)!,(结果是5)
对于两个元素失败B=5!/2!(5-2)!,
对于三个元素失败C=5!/3!(5-3)!,
对于四个元素失败D二5!/4!(5-4)!,
对于五个元素失败E=5!/5!(5-5)!, m的失败只有一个组合)
其含意是,具有31种可能性的单元的被索引的数组可以保存这样5 个元素的集的所有失败元素的不同组合。由失败元素的每一个组合表示的
(结果是IO) (结果是IO) 而(结果是5)
(结果是1,对于所有元素f, j, k, 1,
数字可以是1和31之间的数字(请注意O表示没有失败因而不是数组的一
部分),正如范围是0至31的5位的二进制数。
任何A+3+C+D+E的数组可以保存失败的所有组合可能,数组可以在 GSDS的被排序的元素可知的任何时候被生成。接着,数组可以被标记索 引从而每个失败的单元(包含与失败元素集有关的信息)可以从通过 GSDS和RSDS异或运算所生成的唯一编号中推出。因而,包含失败元素 表示的数组的单元的索引可以从作为异或操作结果的唯一编号中导出。
其结果是核心功能114的初始可以包括生成通过作为RSDS和GSDS XOR运算结果的唯一编号来访问的失败元素组合的数组。核心功能114, 传递与哪个元素被批准有关的信息,可以允许编译器仅仅在用户被授予足 够权限的那些资源上继续执行,如图1中的116和118所示。
当核心功能114在任何元素上失败(例如,设置为逻辑1),根据本 发明的一个实施例,给SMITHERS的管理者的消息可以被描述、生成并被 发送如图1中的122和124所示。消息可以1)通知管理者对与GIZMO产 品族的审核和账款有关的安全数据资源的访问企图和/或2)如图1中的 126所示,请求授予足够使他通过例如适当的SQL查询来访问GIZMO发 票输入和批准GIZMO账款的权限。例如,DITHERS,通常处理GIZMO 产品族的管理者,可能因为生病而不在。在这种情况下,如果SMITHERS 的管理者需要信息,他或她可以联系GIZMO产品族的管理者并且请求访 问GIZMO产品族的适当权限授予给他或她。SMITHERS的管理者,现在 具有适当的权限,接着可以授予相同的或更小的访问权限给SMITHERS, 因而使SMITHERS能够访问GIZMO产品族。增加SMITHERS的权限可 以通过升级和更新模块128的功能来实现。 升级和更新
为了使SMITHERS能够访问与GIZMO产品族的审核和发票批准有关 的安全数据资源,SMITHERS的管理者,提供他或她被授予的与这些安全 数据资源有关的足够权限,可以使用升级功能128来重置SMITHERS的 GSDS结构中的元素f, j, k, 1, m从
f j k 1 m User—ID
110 10 SMITHERS

f j klm User—ID 11111 SMITHERS
请注意元素标识符k和m的位值已经从二进制数"0"被设置为二进 制数"1",表示与User—ID对应的用户被授权访问映射至这些元素标识符 的安全数据资源。在这种情况下,SMITHERS的GSDS现在为元素标识符 k存储"1 ",其授权SMITHERS审核GIZMO产品族并且为元素标识符m 存储"1",授权SMITHERS批准GIZMO产品族的账款。SMITHERS升 级后的GSDS可以被存储在授权数据库108。现在,再次循环处理步骤, SMITHERS接着可以描述被配置成访问与GIZMO产品族的审核和批准有 关的安全数据资源的(例如)SQL查询,其具有这样的SQL查询将会被 允许执行的前景。在SQL预编译器模块112执行完后,核心功能模块114 执行,比较SMITHERS升级后的GSDS从SMITHERS的SQL査询中获取 的(可以是被清除的)RSDS。这次,RSDS结构中对应于相关元素标识符 的位值完全等于SMITHES的GSDS中对应于相关元素标识符的位值。在 这种情况下,由于SMITHERS的RSDS等于他的GSDS,可以在步骤116 确定允许SMITHERS针对与GIZMO产品族的审核和批准相关的安全数据 资源的SQL查询。SMITHERS的SQL查询接着可以被编译和执行,如 118所示,其中该方法结束于步骤120。执行SQL命令的进一步尝试将全 部遵循相同的在授权数据库108中的最终RSDS和用户GSDS之间的比 较。
这个示例假设用户SMITHERS已经知道包括在其查询内的全部安全数 据资源。如果SMITHER使用盲查询、宽范围值,或幸运猜测, SMITHERS可能获得与他作为用户,SMITHERS没有特权的对象有关的信 息。本发明的实施例被配置成侦测(例如,在SQL预编译器模块112)査 询中任何这样的盲查询、宽范围,或非特定引用;并且任何这样的査询的 编译和/或查询可能不被允许并且可能导致消息被直接发送给(例如) SMITHERS的管理者如果他具有适当的特权或,如果没有,发送给SMITHERS试图访问的安全数据资源的拥有者。本发明的实施例将扩展任 一范围或打开查询为元素集,并且用户没有特权的那些被禁止访问/执行。 通过授权的元素将是与被允许的最终SQL结果中的资源数字相对应的那些 元素。该安全数据资源的拥有者接着可以自由地授予这些安全数据资源的 访问特权给SMITHERS的管理者,并且SMITHERS的管理者接着可以自 由地指派其通常拥有的特权以及特殊的特权。请注意一个人仅仅可以指派 等于或小于其当前拥有的权限级别的权限。否则,SMITHERS或 SMITHERS的管理者了解他们缺少特权的对象是对需要知道/需要完成工 作规则的违反。
这留下了幸运猜测的前景。GIZMO显然是GIZMO产品族的限定词, 并且SMITHERS已经知道GIZMO的存在。要不是纯猜测的任何实例,很 有可能是重复试验而这种试验可以被监测。根据本发明的实施例,可能构 成安全政策违反的重复失败被报告给SMITHERS的第一和第二线管理者 (例如)。本发明的实施例将决不会允许未授权访问,即使是幸运猜测以 及重复试验。
图5示出了可能实现本发明实施例的计算机系统500的框图。计算机 系统500包括总线501或其它用以传播信息的通信机制,以及与总线501 耦接的用以处理信息的一个或更多处理器502。计算机系统500进一步包 含随机存取存储器(RAM)或其它动态存储设备504 (被称为主存),耦 接至总线501以存储信息和被处理器502执行的指令。主存504还可以被 用来在处理器502的指令执行期间存储临时变量或其它中间信息。计算机 系统500还包括耦接至总线501用以为处理器502存储静态信息和指令的 只读存储器(ROM)和/或其它静态存储设备506。数据存储设备507,如 磁盘或光盘,耦接至总线501以存储信息和指令。计算机系统500还可以 经由总线501耦接至显示设备521用以为计算机用户显示信息。文数字输 入设备522,包括文数字和其它键,典型地耦接至总线501用以传播信息 和命令选择至处理器502。其它类型的用户输入设备是光标控制523,如 鼠标、轨迹球,或用以传播方向信息和命令选择给处理器502并且控制光 标在显示器521上的移动的光标方向键。麦克风还可以被用来提供语言输
入,并且摄像头可以被用来输入用户手势或手语,如525所示。
与使用计算机系统500和/或多个这样的计算机系统来实现上述的认证
和授权的方法和系统有关的本发明的实施例,在本文中被示出并需求保 护。根据一个实施例,本文中描述的方法和系统可以通过一个或更多计算
机系统500响应处理器502执行包含在存储器504的指令序列来提供。这 样的指令可以从其它计算机可读媒介,如数据存储设备507中读入存储器 504。包含在存储器504中的指令序列的执行导致处理器502执行步骤并 且具有本文中描述的功能。在一个替代实施例中,固定电路可以被用来代 替或结合到软件指令中来实现本发明。因此,本发明不限于固定电路和软 件的任何特定组合。
尽管前面的描述已经描述了本发明的最佳实施例,能够理解上面的描 述仅仅是示例并且不是对所揭露的发明的限制。本领域的技术人员可以认 识到其它替代实施例以及所有这样的实施例均被认为落入在本发明的保护 范围之内。
权利要求
1.一种计算机执行的用以控制用户对数据资源的访问的方法,包含以下步骤存储要确保安全的数据资源;生成包括映射至每个被存储的数据资源的一个元素的需求数据结构,每个元素被配置成存储根据访问被映射的数据资源所需的授权级别而设置的需求值;为具有对任何被存储的数据资源的访问权的每个用户,定义和存储包括映射至多个数据资源中的每一个的一个元素的授权数据结构,每个元素被配置成存储根据被授予给用户的用以访问被映射的数据资源的授权而设置的授权值;接收访问至少一个安全数据资源的用户请求;比较授权和需求数据结构并且不允许被接收的用户请求中对映射至需求值大于授权数据结构中相应元素的授权值的需求数据结构中的任何元素的任何安全数据资源的访问。
2. 如权利要求1所述的计算机执行的方法,其中所述比较步骤包括清 除授权和需求数据结构从而仅仅包括映射至用户请求所请求访问的被存储 的数据资源的元素的步骤。
3. 如权利要求1所述的计算机执行的方法,进一步包括允许被接收的 用户请求中对映射至需求值小于或等于授权数据结构的相应元素的授权值 的需求数据结构中的任何元素的任何安全数据资源的访问。
4. 如权利要求1所述的计算机执行的方法,其中所述接收步骤通过包 括数据库查询的用户请求来执行。
5. 如权利要求4所述的计算机执行的方法,其中所述不允许访问歩骤 包括不允许数据库查询的编译和执行的步骤。
6. 如权利要求1所述的计算机执行的方法,其中所述接收步骤通过包 括SQL査询的用户请求来执行。
7. 如权利要求1所述的计算机执行的方法,其中所述定义和生成步骤通过包括被配置成存储唯一标识用户的用户识别字段的授权和需求数据结 构来执行。
8. 如权利要求7所述的计算机执行的方法,其中所述比较步骤包括获 取授权数据结构的步骤,所述授权数据结构包括其值与生成的需求数据结 构中的用户识别字段的值相匹配的用户识别字段。
9. 如权利要求1所述的计算机执行的方法,其中所述比较步骤包括不 允许被接收的用户请求的执行除非由授权数据结构元素的值共同形成的授 权二进制数大于由需求数据结构元素的值共同形成的请求二进制数。
10. 如权利要求9所述的计算机执行的方法,进一步包括确定需求数据 结构中哪些元素具有小于授权数据结构中相应元素的值。
11. 如权利要求10所述的计算机执行的方法,其中所述确定步骤包括 对需求数据结构中元素的值和授权数据结构中相应元素的值执行XOR操 作的步骤。
12. 如权利要求1所述的计算机执行的方法,进一步包括日志记录步骤 用以对不允许访问任何数据结构的每个实例进行日志记录。
13. 如权利要求1所述的计算机执行的方法,进一步包括当对安全数据 资源的访问不被允许时生成消息以请求更大的权限的步骤。
14. 如权利要求13所述的计算机执行的方法,进一步包括当请求更大 权限的消息的回应是授予和一个被选定的元素有关的更大权限时更新授权 数据结构中所述选定元素的值的步骤。
15. 如权利要求1所述的计算机执行的方法,其中安全数据资源包括数 据结构和应用程序中的至少一个。
16. 如权利要求1所述的计算机执行的方法,其中所述定义和存储步骤 通过以目录服务标记语言(DSML)的形式来描述授权数据结构并且通过 在用户的数字证书中输入授权数据结构作为用户数据来执行。
17. —种包括存储用户访问被控制的多个安全数据资源的数据库的计算机系统,所述计算机系统包含 至少一个处理器;由所述至少一个处理器所产生的多个处理,所述处理包括处理逻辑用以存储要确保安全的数据资源;生成包括映射至每个被存储的数据资源的一个元素的需求数据结构, 每个元素被配置成存储根据访问被映射的数据资源所需的授权级别而设置 的需求值;为具有对任何被存储的数据资源的访问权的每个用户,定义和存储包 括映射至多个数据资源中的每一个的一个元素的授权数据结构,每个元素 被配置成存储根据被授予给用户的用以访问被映射的数据资源的授权而设置的授权值;接收访问至少一个安全数据资源的用户请求;比较授权和需求数据结构并且不允许被接收的用户请求中对映射至需 求值大于授权数据结构中相应元素的授权值的需求数据结构中的任何元素 的任何安全数据资源的访问。
18. 如权利要求17所述的计算机系统,其中所述比较步骤包括清除授 权和需求数据结构从而仅仅包括映射至用户请求所请求访问的被存储的数 据资源的元素的步骤。
19. 一种计算机可读媒介,其上存储了表示指令序列的数据,当所述指 令序列被计算机设备执行时,导致所述计算机设备通过执行以下步骤来控 制对多个安全数据资源的用户访问存储要确保安全的数据资源;生成包括映射至每个被存储的数据资源的一个元素的需求数据结构, 每个元素被配置成存储根据访问被映射的数据资源所需的授权级别而设置 的需求值;为具有对任何被存储的数据资源的访问权的每个用户,定义和存储包 括映射至多个数据资源中的每一个的一个元素的授权数据结构,每个元素 被配置成存储根据被授予给用户的用以访问被映射的数据资源的授权而设 置的授权值;接收访问至少一个安全数据资源的用户请求;比较授权和需求数据结构并且不允许被接收的用户请求中对映射至需求值大于授权数据结构中相应元素的授权值的需求数据结构中的任何元素 的任何安全数据资源的访问。
20. —种计算机执行的控制对企业的数据资源的用户访问的方法,所述方法包含以下步骤存储要确保安全的数据资源;为每个被存储的数据资源,指定用以定义访问数据资源所需的授权级 别的需求值;将每个被存储的数据资源的需求值存储在需求数据结构中; 为具有对任何被存储的数据资源的访问权的每个用户,定义包括每个被存储的数据资源的授权值的授权数据结构,每个授权值确定用户是否被允许访问相应的安全数据资源;当从用户那里接收到访问一个被存储的数据资源的请求时,比较需求数据结构和用户的授权数据结构并且仅当请求访问的数据资源的授权值至少和相应的需求值一样大时允许访问请求被执行。
21. 如权利要求20所述的计算机执行的方法,进一步包括使被选择的 用户能够定义和指定被指定的授权数据结构给企业中等级更低的用户的步 骤,被定义和被指定的被指定授权数据结构存储的授权值不大于定义和指 定被指定的授权数据结构的用户的授权数据结构中的授权值。
22. 如权利要求21所述的计算机执行的方法,其中使能步骤被执行从 而每个用户的授权数据结构中的每个授权值不大于被指定给等级更高的用 户的授权数据结构中的相应授权值。
23. 如权利要求20所述的计算机执行的方法,进一步包括授予增加的 授权级别给用户请求以访问被选择的数据资源并且相应增加做出请求的用 户的授权数据结构中被选择的数据资源的授权值的步骤。
24. 如权利要求20所述的计算机执行的方法,进一步包括当用户离开 企业时删除用户授权数据结构的步骤。
25. 如权利要求20所述的计算机执行的方法,进一步包括初始默认设 置每个用户的授权数据结构的授权值为表示最低可能授权级别的最低值的26.如权利要求20所述的计算机执行的方法,进一步包括重置每个用户的授权数据结构的授权值为表示用户在企业的地位以及与用户在企业的 地位的新状态相适应的值的步骤。
全文摘要
一种计算机执行的用以控制对安全数据资源的用户访问的方法包括存储要确保安全的数据资源的步骤。其后,包括映射至每个被存储的数据资源的一个元素的需求数据结构可以被生成,每个元素被配置成存储根据访问被映射的数据资源所需的授权级别而设置的需求值。对于具有对任何被存储的数据资源的访问权的每个用户,包括映射至多个数据资源中的每一个的一个元素的授权数据结构可以被定义,每个元素被配置成存储根据被授予给访问被映射的数据资源的用户的授权而设置的授权值。当访问至少一个被存储的数据资源的用户请求被接收时,一个步骤可以被执行来比较授权和需求数据结构。接着,被接收的用户请求中对映射至需求值大于授权数据结构中相应元素的授权值的请求数据结构中的任何元素的任何安全数据资源的访问可能不被允许,在比较步骤,授权和需求数据结构可以被清除从而仅仅包括映射至用户请求所请求访问的被存储的数据资源的元素。
文档编号G06F21/00GK101208702SQ200680020041
公开日2008年6月25日 申请日期2006年5月3日 优先权日2005年6月6日
发明者理查德·约翰逊 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1