基于角色的加密访问控制的制作方法

文档序号:6568917阅读:172来源:国知局
专利名称:基于角色的加密访问控制的制作方法
基于角色的加密访问控制相关申请申请人要求2005年9月16日递交的第60/718,180号临时申请的 优先权。本系统涉及安全系统领域,具体涉及用于提供对受保护数据主要 基于角色的选择性访问的一种方法和系统。越来越频繁地对数据进行编码,使之成为电子形式,己经显著地 增大了保护机密信息的需求。通常都对医疗记录、财务记录、违法纪 录等等进行编码,使它们成为数据文件,常常使这些数据的多个被授 权"用户"能够获得这些数据文件,这些"用户"有例如医生、会计、 律师等等。随着收集的数据越来越多,越来越多的用户获得访问许可,访问 控制的管理变得越来越复杂。例如,个人的全科医师很可能能够访问 这个人的全部医疗记录。安排这个人进行手术时,外科医生和麻醉师 应该能够访问这些记录,但有可能不是所有记录。同样,与公司的审 计员相比,公司的税务会计对公司的财务数据可能有不同的访问权。不同用户对数据拥有不同访问权的需求导致了"基于角色的"访 问控制这样一个概念,这种控制根据用户的角色来给予这些用户访问 权。在基于角色的典型系统中,数据所有人给每个数据项分类,并且 规定哪一群用户能够获得哪一种数据项分类,其中的群是按照角色划 分的。例如,可以将特定的财务数据划分成"与税务相联系的",允 许税务角色的用户访问与税务相联系的数据。在教育环境中,可以将 学生记录中的特定数据划分成"学业的",将其它数据划分成"表现", 对这些数据的访问可以基于用户的角色来加以控制(教师、管理员、 导师等等)。在医疗领域,如上所述,与全科医师相比,外科医生可能对患者数据记录的不同部分拥有访问权;与抢救室工作人员相比, 全科医师可能拥有不同的访问权;等等。2004年2月26日递交的Huang等等的公布的第2005/0193196 号美国专利申请"CRYPTOGRAPHICALLY ENFORCED, MULTIPLE ROLE, POLICY-ENABLED OBJECT DISSEMINATION CONTROL MECHANISM"给出了基于角色的访问控制系统的启示,在这里将其 引入作为参考。在被引用的这个申请中,执行实体从具有角色的用户 接受访问请求,将这一角色信息和请求转发给决策实体,以确定这个 角色是否满足能够访问被请求信息的条件,如果满足条件,就将授权 信息传递给执行实体。采用了加密技术来确保每个用户的身份可靠。 通过提供中心决策实体,能够降低基于可能正在改变的角色来维护每 个用户的授权记录的管理成本。所引用的这个申请依赖于与每个数据 源相联系的执行实体来保护数据,而不是数据源利用例如加密技术来 自己保护数据。为了提供更高程度的安全性,受保护数据应该以加密形式储存, 只有获得授权的用户能够对这些数据进行解密。但是,对于有可能的 成百上千的被授权用户,必须考虑密钥管理问题。在加密数据可以用每个授权用户都知道的共用密钥来进行访问 的情况下,因为密钥被无意泄漏出去而导致失去安全性的可能性很 大。另外,如果这些用户中有一个用户成为未授权用户,就必须用新 密钥对数据重新加密,还必须将这个新密钥发送给每个用户。与基于角色的访问控制概念一致,也可以换成维护数据的加密集 合,每一加密都基于不同的"角色密钥",每个角色中的每个用户都 得到对应的解密密钥。在这种情况下,如果一个密钥出现了问题,以 出现了问题的这个角色密钥为基础所进行的加密都用以这个角色的 一个不同密钥为基础的加密来代替,只需要给这个角色群中的用户提 供新密钥。但是, 一些角色群可能很大,和/或每个群的成员可能经 常改变,每次成员改变的时候给群中的每个成员发送新密钥的负担可 能很大。2004年3月10曰递交的Germano Caronni的公布的第2005/0204161号美国专利申请"METHOD AND APPARATUS FOR HYBRID GROUP MANAGEMENT"给出了利用分层树结构来支持对 受保护数据的群访问的启示,当成员身份发生变化时,它不需要重新 发送密钥给每个成员,在这里将其引入作为参考。如同这个参考申请 给出的启示一样,受保护数据是利用共用"根"密钥加密的,群内的 每个授权用户都能够通过沿着从这个用户到根的路径对密钥进行解 密来获得这个根密钥。每个节点都有密钥,这个密钥允许访问朝向根 的路径上的下一个节点,由此使所有节点都能够与根节点联通。因为 树中的所有节点都能够到达分层树中的根节点,因此,让用户能够访 问数据是通过让用户能够访问树中任意一个节点来实现的。用户访问 节点要通过这个用户和这个节点专用的密钥;当用户成为未授权用户 时,就改变这个密钥,从而拒绝这个用户对树的随后访问。为了提高 安全性,还改变这个用户访问根节点所使用过的节点,以防用户储存 了到达根节点所使用的一个或多个中间密钥。但是,因为不在用户到 根的路径中的其它节点没有被这个用户使用,这个用户也无法到达这 些节点,因此不必改变那些节点。同样,由于根节点包含用于对数据 解密的根密钥,这个用户曾经能够访问它,因此,要用新的根密钥对 这些数据重新加密,并随后储存在根节点中。现有基于角色-基于加密的系统的问题是,虽然它们对于处理对 受保护数据基于群的访问控制非常有效,但是它们不能有效地支持在 不同时刻属于不同群成员的用户,并且它们还不能有效地包括或排除 特定用户,而不管他们的角色/群。需要特别注意,在引用的上述专 利申请中,能够访问根节点的所有用户都能够访问受保护数据;改变 访问权需要新的分层树,即使部分树维持不变。在医疗环境中,在不同时刻,医生可以具有不同的角色。因此, 医生基于角色对信息的受权访问会发生改变,虽然医生能够作为多个 群的成员进入,但是将医生包括在两个群将与预期的或希望的访问权 许可背道而驰。例如,既是全科医师(GP)又是抢救室(ER)专家 的医生可能属于两个群。作为GP来访问特定患者的数据,医生需要 获得特定的访问权;作为同一个患者的ER专家,同一个医生会获得尤其不同的访问权。当这个医生在这个患者的抢救室内值班的时候, 患者会认为这个医生只能访问与抢救室相关的材料。另外,关于哪些用户能够访问特定信息,数据所有人可能有特殊 偏好,而不管他们的角色。例如,如果某个用户是所有人的邻居或朋 友,与这个邻居或朋友共享某些数据会不舒服和/或难堪。或者是关 于特定数据,所有人可能不信任某些用户,或者仅仅是更希望某些数 据对一些用户保密。也有可能是所有人更希望允许特定用户(家庭成 员或朋友)访问特定信息而不管他们是什么角色。弓l用的上述专利申请的另一 个局限性是受到不同程度保护的每 个数据组都需要对于这个数据组专用的访问树。例如,在医疗环境中, 患者可能有各种不同类别的记录,例如一组记录包括有患者的身份信 息/联系信息、保险信息等等,另一组记录包括一般的医疗信息,例 如患者的过敏反应、病历、综合健康信息,以及与不同的医疗领域(眼 科、心脏病学、听力学等等)有关的不同的记录组。这些组记录中的每一组很有可能具有不同组的访问权;例如,可以允许所有用户(医 生、管理人员等等)访问患者的身份数据和保险数据,但是只有医生 和护士能够访问测试结果。类似地,根据与数据有关的领域,医生能 够访问不同组医疗数据。对于这些组数据中的每一组,通常要使用不 同的访问树。本系统的一个目的是提供一种方法和系统,这种方法和系统支持 在动态环境中对信息访问进行有效的管理。本系统的另一个目的是提 供一种方法和系统,这种方法和系统支持在基于角色的访问系统中所 有人专用的访问权。本系统的另一个目的是支持利用同一分层树结构 来控制对不同数据组的不同访问权。本系统的一个目的是克服现有技术中的上述缺点和其它缺点。 上述目的和其它目的是通过一种方法和系统来达到的,这种方法 和系统利用分层树结构将加密密钥传递给对树具有访问权的特定用 户。所有用户都与根节点连通,但是根节点处材料的信息内容只能由 这一信息的目标用户解密。用数据专用的各种数据密钥对受保护数据 进行加密。利用特定用户或特定用户群专用的节点密钥的组合来对这些数据密钥进行加密。能够访问与特定已加密数据密钥相联系的节点 密钥的用户能够对与数据密钥相联系的数据进行解密;由于没有对数 据密钥解密所必需的节点密钥,能够访问根节点处的这些已加密数据 密钥的其它用户不能对这些数据解密。这种分层树最好是按照用户之 间访问权的相似性来构建,以减少与提供用户专用访问权相联系的系 统开销。应该明白,给出附图的目的是进行说明,而不是代表本系统的范围。下面将详细描述本系统,并且参考附图,将它们作为实例,。在这 些附图中

图1说明本系统中用于传播对数据进行加密的密钥来选择用户 的示例性分层树结构;图2是本系统中对传播数据密钥以选择用户进行管理的示例性 流程图;图3说明本系统中的示例性数据访问控制系统。在所有附图中,相同的标号表示相同的单元,或者具有基本相同功能的单元。将附图包括进来的目的是进行说明,而不是要限制本发明的目的。在以下描述中,为了进行说明而不是进行限制,给出了具体细节, 例如特定体系结构、接口、技术等等,以便帮助全面理解本系统。但 是,对于本领域技术人员而言显而易见,本系统可以用不同于这些具 体细节的其它实施方式实现。为了简单和清楚起见,省去了对众所周 知的装置、电路和方法的详细描述,以免喧宾夺主。在这里利用对医疗记录的选择性访问这样的术语来描述本系统, 但是,本领域技术人员明白这里给出的原理可以应用于各种访问控制 应用,并且不限于医疗记录的保护。同样,在这里将本系统描述成通 过密钥利用加密和解密来保护数据,但是本领域技术人员明白,可以 将密钥用于利用加密以外的技术来控制对数据的访问,例如,禾U用密 钥来控制到数据的通信信道,基于密钥控制对访问数据的应用的访问。通过这种方式,在这里将"密钥"这个术语用来表示支持对信息 进行选择性访问,如果没有就不能访问这些信息的任何信息项,为了 容易理解,不区分用于对数据进行加锁的密钥和用于对受保护信息解 锁的密钥,即使本领域技术人员明白,只要条件合适,就可以使用非 对称密钥, 一个用于加锁, 一个用于解锁。图1说明本系统中传播用于对数据加密的密钥来选择用户的示例性分层树结构。用各种数据密钥kl k5,通常是利用这些密钥对数 据加密,来保护数据组101-105。虽然图中画出了五组数据和对应的 数据密钥,但是还可以把数据划分成具有相联系的数据密钥的任意数 量的数据组。这些数据组一般都是相关数据项的组,例如包括患者个 人数据、保险信息、例行测试结果、特殊测试结果、已知过敏反应等 等的数据组。在公司环境中,数据组可以包括例如个人数据、存货清 单、资本资产、供应商、股东等等。根据本系统的一个方面,利用与 树的节点相联系的密钥("节点密钥"),通过分层树结构以一种受保 护的形式将上述数据密钥传递给用户,这个分层树结构具有根节点r。图1中画出了连接到根节点r的三个节点rl、 r2、 r3,但是耦合 到根节点r的这些节点的数量可以比图中的多或少。在本系统的一个 优选实施例中,这些节点rl、 r2、 r3中的每一个都对应于与数据 101-105的访问相联系的不同角色。每个节点rl、 r2、 r3都具有相联 系的其它节点构成的组,但是在这个示例中只详细画出了节点rl下 的节点。这些节点最好是以分层的方式排列,例如二叉树结构或N 元树结构,尽管可以使用任意结构,只要能够标识每个用户和根节点 之间的路由就行。将示例性树结构中的每个节点配置成以一种分层方式支持对其 每个相邻节点的访问。例如,将图1中的节点nl配置成允许访问节 点rl处的信息,并且将其配置成允许访问其来自节点n3和b的信息。 这种分层访问结构使得每个节点都能到达根节点r。例如,节点b访 问节点nl来获得访问节点rl所需要的信息,从节点rl能够获得访 问节点r所需要的信息。根据本发明的一个方面,将节点r配置成包 括对数据密钥kl kn的选择性加密,因此,树中所有节点都能够访问经过了加密的数据密钥kl kn。本领域技术人员明白,图1所示的通信方案可以用各种形式实 现。例如,在一个替换实施例中,可以将信息广播给所有树叶节点, 并且可以将树叶节点配置成包含它们到根节点的路径上的所有密钥。 不管信息和密钥实际上保存在什么地方,这两种替换实施例在逻辑上 是等效的,基本前提是树叶节点能够访问与它们的路径上的每个节点 对应的密钥,利用这些密钥能够访问树中所有节点都能够获得的受保 护形式的信息。己知有广播访问密钥和已加密内容的在前系统。Amos Fiat等等 在"Advances in Cryptology" CRYPTO,93, 1993年8月上第480~491 页上发表的文章"BroadcastEncryption"给出了如下技术启示向第 一成员子组的每个成员广播多个密钥,从而使不属于第一子组的第二 成员子组不能访问给第一成员子组的安全传输;在这里将其引入作为 参考。如同在这一参考文件里给出的启示一样,每个成员储存的密钥 的数量与成员总数和第二子组中的成员数有关,而不管第一子组的大 小。Dalit Naor等等在"Advances in Cryptology" CRYPTO,Ol, 2001 年上第41~62页上发表的文章"Revocation and Tracing Schemes for Stateless Receivers"给出了如下技术启示撤回无状态接收机对已加 密内容的解密权,在这里将其引入作为参考。如同这一参考文献所讨 论的一样,无状态接收机不能记录以前传输的以往历史。因此,无状 态接收机的工作过程建立在(所有潜在接收机收到的)当前广播发射 和初始配置的基础之上,其中的初始配置包含对于每个接收机而言独 一无二的访问授权。广播消息所需要的长度与被撤回接收机的数量和 接收机的总数有关,而用于对消息解密的广播密钥的数量则只与被撤 回接收机的数量有关。拥有合适的密钥使得拥有这一密钥的节点能够访问受保护信息/ 对受保护信息解密,如同下面详细描述的一样。通常利用下式来定义项目的加密[k(nodel), k(node2),等等)](item), 其中"nodel、 node2等等"表明能够找到用于对"item"进行解密的密钥(k(node),以后称为节点密钥)的节点。如上所述,在整个本说 明书中,"加密"这个术语用于表示提供"保护",防止对项目的未授 权访问这样一个广泛的含义,而"解密"这个术语则用于表示提供对 受保护项目的访问这样一个广泛的含义。如果所有节点能够访问所有数据,那么在节点r处应该能够获得 如下信息[k(r)](kl),[k(r)](k2),[k(r)](k3),[k(r)](k4),[k(r)](k5)。于是,能够访问节点r的任意节点能够访问任意数据,因为能够访问 节点r的任意节点能够访问节点密钥k(r),利用这个节点密钥k(r)能 够访问每一个数据密钥kl k5,利用这些数据密钥kl k5,能够访问 对应数据101~105。换句话说,在密钥储存在用户所在地的一个实施 例中属于根节点r的子孙的所有用户节点都有k(r)的一个拷贝,因 此能够访问每一个密钥kl k5/对每一个密钥kl k5进行解密,因此能 够访问每一组数据101~105/对每一组数据101~105解密。根据本发明的这个方面,如果只有角色rl中的用户得到授权访 问由kl保护的数据101,那么节点r处的信息将是[柳(kl),[k(r)](k2),[k(r鹏,[k(r)](k4),[柳(k5)。 也就是说,只有能够访问节点rl的那些节点能够获得支持访问数据 密钥kl的节点密钥k(rl),利用这个数据密钥kl能够访问数据101。 由于图1所示树的分层访问结构,通过节点r2和r3只能访问节点r, 而不能访问节点rl。在更加复杂的访问情形下,考虑以下访问规则-角色1用户能够访问所有数据组(101、 102、 103、 104、 105);-角色2用户能够访问数据组102和104;以及-角色3用户能够访问数据组101、 102和103。在这个实例中,节点r包含以下信息 [k(rl),k(r3)](kl),[k(r)](k2),[k(rl),k(r3)](k3),[k(ri),k(r2)](k4),[k(ri)](k5)。也就是说,在这棵树中能够到达根节点r的每个用户(也就是所 有用户)能够收到上述信息,但是只有能够访问节点密钥k(rl)或k(r3) 的那些能够访问数据组101 (通过数据密钥kl);能够访问节点密钥k(r)的用户(也就是能够访问这棵树的所有用户)能够访问数据组102 (通过数据密钥k2);等等。注意,通过选择性地对保护数据的数据密钥进行保护,可以维持 建立在给定的基于角色的规则的基础之上多个角色rl r3中多个数据 组101-105的保护安全和有效。还要注意,因为将这些规则应用于一 些特定的节点并且应用于能够到达这个特定节点的所有节点,因此, 通过仅仅允许新用户访问给定角色中的任意节点就能够非常容易地 支持给现有角色增加这些新用户。与此类似,通过将角色增加为能够 访问根节点r的角色节点,对与授权给这个角色中的用户的数据相对 应的数据密钥进行加密,并且允许能够访问这个新角色节点的所有用 户访问对应的解密密钥,就能够很容易地支持增加额外角色和有关用 户。对数据密钥的选择性保护还允许有效地支持所有人专用的包括 和排除访问权,而不考虑授予的基于角色的访问权。例如,考虑对上 述规则的如下修改-角色1用户能够访问所有数据组(101、 102、 103、 104、 105), 除了用户e不能访问数据103以外;-角色2用户能够访问数据组102和104;以及-角色3用户能够访问数据组101、 102和103。在这个实例中,节点r包含如下信息[k(rl),卿](kl),[k(r)](k2),[k(nl),k(n4),卿](k3), 鹏,鹏](k4),[卿(k5)。也就是说,对用于访问数据103的数据密钥k3的访问仅限于能 够访问节点密钥k(nl)、 k(n4)和k(r3)的用户。用户a和b能够访问节 点nl,因此能够访问k(nl),用户c和d能够访问节点n4,因此能够 访问k(n4);于是除了用户e以外所有角色rl用户都能够访问数据 103,这与上述规则一致。注意,当用户的访问权改变的时候,例如在拒绝用户e对数据组 103的访问权的这个实例中,不必将这个用户从树中去掉,就象公布 的上述申请US 2005/0204161中一样。反过来,仅仅将数据密钥的保护改变成拒绝这个用户访问这个数据密钥。最好是在被去除的这个用 户保留这个用户曾经拥有访问权的一个或多个密钥的情况下,用新的数据密钥(在这个实例中是k3)对这个数据组重新加密,正是这个 新的数据密钥被利用修改后的被授权节点密钥(在这个实例中是节点 nl、 n4和r3的节点密钥k(nl)、 k(n4)和k(r3))重新加密。特别要注 意,改变用户的访问权不需要替换用户和根节点之间的所有节点密 钥,如同公布的上述申请中所要求的一样。从树中将用户彻底去除的时候,用新的数据密钥对以前能够访问 的数据重新加密,最好是使用公布的申请US 2005/0204161中详细说 明的过程,包括替换以前能够访问的所有节点密钥,从而拒绝这个用 户访问整个树。图2是基于与数据组相联系的访问规则标识和保护数据密钥的 流程图。在210中,用数据密钥保护数据组,如同上面讨论的一样, 通常是利用与每个数据组相联系的数据密钥对它们加密。在220中,创建用户的分层树, 一般是基于每个用户的角色,如 同下面将进一步讨论的一样。每个角色中树的结构最好是二叉树或N 元树,尽管这一结构可以采用任意形式。在230中,处理所述规则来标识授予的访问权,并且利用本领域 中表述逻辑关系常用的技术,确保这些规则一致。规则的形式和结构 一般都依赖于特定应用。例如,在一些应用中,假设所有角色中的所 有用户都得到授权访问所有数据,将这些规则构成为能够很容易地标 识这种访问权的例外。在其它应用中,不给任何用户授予访问权,将 规则构成为很容易地标识访问权的授予。在其它应用中,可以将数据 组的类型定义为默认规则是全部用户还是无用户,并且可以使用规则 形式的混合。规则处理的目的是定义每个用户和每个用户组之间独一 无二的访问权/无访问权映射。在240中,处理用户和数据组之间的访问权映射来定义与每个用 户相联系的"最共用访问(GCA, Greatest Common Access)节点"。 在一个直截了当的实施例中,假设将树中所有节点配置成支持访问, 将访问权映射处理成标识拒绝访问权的节点。对于每一个数据组,基本上将被授权用户到达根节点的路径上的每个节点都标为"无访问 权"节点。在标记了 "无访问权"节点以后,将每个"无访问权"节点的每个"有访问权"子节点标识为最共用访问(GCA)节点。在上述实例中,除了用户e以外,给图1中角色rl中的所有用 户授予对数据组103的访问权,如同角色r3中的所有用户一样。一 开始,将所有节点标为"有访问权"节点。从用户e往上追踪,将节 点e、 n2、 rl和r标记为数据组103的"无访问权"节点,如同r2中 的所有节点一样,包括r2。在标记了与数据组103相联系的所有"无 访问权"节点以后,将节点n4,也就是"无访问权"节点n2的"有 访问权"子节点,标识为数据组103的GCA节点。同样,将"无访 问权"节点rl的"有访问权"子节点nl,"无访问权"节点r的"有 访问权"子节点r3,标识为GCA节点。因此,在这个实例中与数据 组103相联系的GCA节点的组都被标识为节点nl、 n4和r3。同样, 数据组101的GCA节点是节点rl和r3;数据组102的是节点r; 数据组104的是节点rl和r2;数据组105的是节点rl。在250中,只是针对对与其对应数据组相联系的每个GCA节点 来保护每个数据密钥。利用上述实例,在利用加密的一个实施例中, 利用每个节点密钥k(rl)和k(r3)对数据密钥kl进行加密;利用节点密 钥k(r)对数据密钥k2进行加密;利用节点密钥k(nl)、 k(n4)和k(r3) 对数据密钥k3进行加密;利用节点密钥k(rl)和k(r2)对数据密钥k4 进行加密;利用节点密钥k(rl)对数据密钥k5进行加密。这样,能够 访问拥有能够对数据密钥进行解密的节点密钥的节点的任何用户都 能够访问用这个数据密钥保护的数据组;不能访问与给定数据组相联 系的数据密钥的用户不能访问这个数据组。为了使上述密钥管理过程有效地进行,最好在分层树中将具有相 似访问权的用户组在一起。如果根据访问权将用户笼统地组成群,那 么GCA节点将很可能包括所有这些用户,因此减少每个数据组中 GCA节点的数量。根据角色将用户组成群,如上所述, 一般都能够 提供有效的分层,特别是在角色中很少有例外的情况下。在一些情况下, 一些用户在不同的时刻拥有不同的角色。例如,在医疗领域,医生可能主要是履行全科医师的职责,但是在某些日子, 可能履行抢救室医生的职责。在用户是全科医师的日子中,这个用户 不应该拥有授予抢救室医生的基于角色的访问权,反过来也一样。在一个优选实施例中,将具有单一角色的所有用户分配到他们的 角色子树中的树叶节点。对于具有多个角色的用户,存在许多可能性, 可以分析额外的信息,例如关于用户到一个或另一个角色的分配统计 特性,来确定每个用户合适的子树。如果一个用户主要拥有给定的一 个角色,那么一般就为这个用户选择这个角色。如果一个用户没有主 要角色,但是这个用户的角色与另一个用户的角色密切相关,并且这 两个用户通常都获得同样的访问权,就将未分配的用户分配给另一个 用户的角色子树。另一方面,如果用户没有主要角色,并且不与另一 个用户相关,就将这个用户分配给这个用户经常在的节点中任意一个 节点的子树下面的树叶节点,最好是靠近根节点,从而使这个用户和 根节点之间标为"无访问权"的节点的数量最小。也可以换成创建一 个新的子树,用来管理通常不与任何现有角色的用户一致的访问权。 同样,在角色子树中,被发现频繁地不和与角色相联系的基本访问权 一致的用户,例如频繁地脱离角色的多角色用户,最好是组在一起, 与通常一致的用户隔离开,最好是靠近根节点。对于本领域普通技术人员而言显而易见,考虑到本公开,如果例 如随着使用系统的时间变迁获得更多信息,就可以在任意时刻将这一 新信息用于重构树。图3说明示例性的访问控制系统300。配置数据加密器310,通 过提供只能通过对应数据密钥315访问的受保护数据组311来保护一 个或多个数据组301。最好是破坏掉原始数据组301,或者在物理上 将它与远程访问隔离。配置规则处理器320来处理访问规则302,在数据的潜在用户之 间分配受保护数据组311的访问权,不同的访问权可以基于特定数据 组来分配,也可以基于不同用户或者用户群,如同上面讨论的一样。配置树发生器330来产生访问树332,支持在用户303或用户群 304之间访问权的传递。用户组成群通常是基于请求访问数据的时候每个用户303所履行的角色304,尽管也可以使用其它的组群方法。 如上所述,可以选择让用户的组群基于以往的或者当前的访问权340, 来减少通过树332传递用户专用访问权带来的系统开销。树发生器330还产生与树的每个节点相联系的节点密钥335,这 些节点密钥335可以与用来沿着节点到树根节点的路径,获得从节点 到节点的访问权的密钥相同,或者可以根据密钥加密器350对每个节 点密钥的需要,按需产生专用密钥,这些将在后面讨论。配置密钥加密器350基于规则处理器320确定的访问权来对每个 数据密钥315加密。从规则处理器320传递这些访问权,作为树332 中的节点清单325,为每个受保护数据组311授予对树332的访问权。 在一个优选实施例中,虽然这个清单325可能是拥有对每个数据组 311的访问权的每个用户节点的一个穷尽性清单,但是这个清单325 标识对每个数据组311拥有访问权的"最共用访问"(GCA)节点。 如上所述,每个GCA节点都是这样一个节点,在这个节点的下面每 个节点都拥有到给定数据组的访问权。这样,能够到达GCA节点的 任意节点都获得到给定数据组的访问权,而没有明确列出树325中的 节点。利用每个数据组311的树332中授权节点清单325,密钥加密器 350利用与这个数据组311的每个授权节点相联系的节点密钥335对 与每个数据组311相联系的数据密钥315加密。将得到的一组已加密 数据密钥355提供给树332的根节点。虽然将密钥加密器350和数据加密器310画成分开的加密单元, 但是本领域技术人员明白可以用一个加密器来实现两项加密功能。如上所述,树332支持树中每个节点访问根节点处的信息(通常 称为让每个节点与根节点连通)。但是,因为根节点处的信息项是利 用与选择节点325相联系的节点密钥335对数据密钥355的加密,因 此只有选择节点325能够利用根节点处的信息来访问每个受保护数 据组3U。前面仅仅说明了本系统的原理。因此本领域技术人员能够想出各 种方式,尽管这里没有明确说明,这些方式能够实现本系统的原理,因此属于本发明的实质范围之中。例如,虽然示例性分层树的组织是 在基于角色的访问控制系统环境中说明的,但是本领域技术人员明 白,这种分层结构最好是基于共享访问权,而不管这种访问权是否基 于角色。同样,可以单纯基于与访问控制相联系的统计特性来构建这 一结构,而不考虑与被观察相关性的原因相联系。考虑到这些公开, 这些和其它系统配置和优化特征对于本领域技术人员而言是显而易 见的,包括在下面的权利要求的范围之中。 在解释这些权利要求时,应当明白 (1 )"包括"这个词不排除权利要求中给出的以外其它单元或部 件的存在;(2) 单元前面的"一个"不排除多个这种单元的存在;(3) 权利要求中的标号不限制它们的范围;(4) 几个"模块"可以用相同的项或者硬件或软件实现的结构 或功能来表示;(5) 公开的单元中的每一个都可以包括硬件部分(例如包括离 散的和集成的电子电路)、软件部分(例如计算机程序)以及它们的 任意组合;(6) 硬件部分可以由模拟和数字部分中的一个或两者组成;(7) 可以将公开的任意装置或部分结合在一起或者分开成更多 部分,除非有相反的说明;(8) 不必包括操作的任何特定顺序,除非专门说明;以及(9) "多个"单元包括两个或更多的这种单元,而没有限定单元 数量;也就是说,多个单元可能是只有两个单元。
权利要求
1.一种方法,包括用数据密钥保护数据组;创建有可能访问所述数据组的用户的分层结构;处理一个或多个规则来定义每个用户对所述数据组的访问权;确定所述分层结构中的一个或多个访问节点,在这些节点下所有用户都能够访问所述数据组;以及利用与所述一个或多个访问节点中的每一个相联系的节点密钥保护所述数据密钥。
2. 如权利要求l所述的方法,包括 所述数据组所属的多个数据组;利用多个数据密钥中对应的其它数据密钥保护所述多个数据组 中的每一个其它数据组;处理所述一个或多个规则来定义每个用户对所述其它数据组中 每一组的访问权;确定所述分层结构中的一个或多个访问节点,在这些节点下所有 用户都能够访问所述其它数据组中的每一组;以及利用与所述对应的其它数据组的所述一个或多个访问节点中的 每一个相联系的节点密钥保护每一个其它数据密钥。
3. 如权利要求l所述的方法,其中 保护每个其它数据组包括对每个其它数据组进行加密。
4. 如权利要求3所述的方法,其中保护每个其它数据密钥包括对每个其它数据密钥进行加密。
5. 如权利要求l所述的方法,其中保护每个其它数据密钥包括对每个其它数据密钥进行加密。
6. 如权利要求l所述的方法,其中创建所述分层结构包括将所述分层结构内具有相似访问权的用 户组成群。
7. 如权利要求6所述的方法,其中将用户组成群包括在将访问权分配给至少一些所述用户的已有 分配的基础之上确定统计特性。
8. 如权利要求6所述的方法,其中将用户组成群建立在与至少一些所述用户相联系的一个或多个 角色的基础之上。
9. 如权利要求8所述的方法,其中所述一个或多个规则中的至少一个规则建立在所述一个或多个 角色中至少一个角色的基础之上。
10. 如权利要求9所述的方法,其中 所述至少一个角色与多个所述用户相联系;以及 所述至少一个规则包括给与所述至少一个角色相联系的所述多个用户中不同的用户授予不同的访问权。
11. 如权利要求6所述的方法,包括根据在将访问权分配给至少一些所述用户的已有分配的基础之 上的统计特性修改所述分层结构。
12. —种系统,包括数据保护器,配置成在对应的一个或多个数据密钥的基础之上保 护一个或多个数据组;树生成器,配置成产生与多个用户对应的分层树结构,所述树上的每个节点与对应的节点密钥相联系;规则处理器,配置成处理访问规则来标识每个用户对每个数据组 的访问权,并且标识所述分层树结构中的访问节点,这些访问节点与 所述多个用户中能够访问所述一个或多个数据组中每一组的选择用 户相对应;以及密钥保护器,配置成在与所述访问节点中每一个相对应的所述节 点密钥的基础之上保护所述一个或多个数据密钥。
13. 如权利要求12所述的系统,其中所述数据保护器在所述对应数据密钥的基础之上通过对所述数 据组进行加密来保护所述一个或多个数据组。
14. 如权利要求12所述的系统,其中所述密钥保护器在与所述一个或多个数据组中每一组的所述访 问节点对应的所述节点密钥的基础之上,通过对所述数据密钥进行加 密来保护所述一个或多个数据密钥。
15. 如权利要求12所述的系统,其中所述树发生器被配置成在所述多个用户内共用访问权的基础之 上产生所述分层树结构。
16. 如权利要求12所述的系统,其中所述树发生器被配置成在与所述多个用户相联系的一个或多个 角色的基础之上产生所述分层树结构。
17. 如权利要求12所述的系统,其中所述树发生器被配置成至少部分地在授予所述多个用户的已有 访问权的基础之上修改所述分层树结构。
18. 如权利要求12所述的系统,其中所述访问节点与最共用访问(GCA)节点相对应。
19. 一种方法,包括利用对应的数据密钥对多个数据组进行加密;定义多个用户中每个用户对所述多个数据组中每个数据组的访 问权;创建表示所述多个用户的分层树结构;利用与所述分层树结构相联系的多个节点密钥基于所述访问权 对所述数据密钥进行加密,形成多组已加密数据密钥;以及通过所述分层树结构将所述组己加密数据密钥传递给所述用户 中的每一个。
20. 如权利要求19所述的方法,其中 创建所述分层树结构包括将每个用户与所述树的树叶节点联系起来;以及 形成所述树的分支节点来创建从每个树叶节点到根节点的路径。
21. 如权利要求19所述的方法,其中 形成所述分支节点包括标识所述多个用户中的共用访问权;以及 基于所述共用访问权形成所述分支节点。
22. 如权利要求21所述的方法,其中标识所述共用访问权至少部分地建立在与所述多个用户相联系 的一个或多个角色的基础之上。
23. 如权利要求21所述的方法,其中标识所述共用访问权至少部分地建立在所述多个用户中访问权 的一个或多个己有标识的基础之上。
24.如权利要求19所述的方法,其中所述已加密数据密钥中的每一组与每一个数据组对应。
全文摘要
用一种分层树结构来传递已加密密钥给对树具有访问权的特定用户。所有用户都与根节点连通,但是根节点处材料的信息内容只能由这一信息的目标用户解密。利用数据专用的各种数据密钥对受保护的数据加密。利用特定用户或用户群专用的节点密钥的组合对这些数据密钥加密。能够访问与特定已加密数据密钥相联系的节点密钥的用户能够对与数据密钥相联系的数据解密;不能访问所述特定节点密钥的用户不能对这个数据密钥解密。分层树最好是根据用户间访问权的相似性来建立,以便使提供用户专用访问权的系统开销最小。
文档编号G06F21/24GK101263504SQ200680033470
公开日2008年9月10日 申请日期2006年9月14日 优先权日2005年9月16日
发明者C·V·孔拉多, M·佩特科维奇, M·哈穆特讷 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1