1.概述
最近,随着电子商务和电子政务的发展,网络安全已成为研发的重点和热点。信息的完整性、机密性、身份鉴别和不可否认性构成了信息安全的四要 素。非对称加密算法从理论和实践上都可以保证身份的有效性和不可否认性,而要保证软件系统、数据库和信息网络的完整性、和机密性,至今还没有一个行之有效 的解决方案。如公司资源的讹误,信息的未授权泄漏或者失窃,以及被非法篡改都是因为没有保证信息的机密性和完整性而引起的。它们不仅破坏了组织的操作,并 有可能涉及到金融,法律,人员安全,个人隐私和国家机密方面,而造成重大的损失。
当今最著名的美国计算机安全标准是可信计算机系统评估标准(TCSEC)。其中一个内容就是要阻止未被授权而浏览机密信息。TCSEC规定了 两个访问控制类型:自主访问控制(DAC)和强制访问控制(MAC)。DAC是指主体可以自主地将访问权限或者访问权限的某个子集授予其他主体。主要是某 些用户(特定客体的用户或具有指定特权的用户)规定别的用户能以怎样的方式访问客体。它主要满足商业和政府的安全需要,以及单级军事应用。但是由于它的控 制是自主的,所以也可能会因为权限的传递而泄漏信息。另外,如果合法用户可以任意运行一个程序来修改他拥有的文件存取控制信息,而操作系统无法区分这种修 改是用户自己的操作,还是恶意程序的非法操作,解决办法就是通过强加一些不可逾越的访问限制。因此,又提出了一种更强有力的访问控制手段,即强制访问控制 (MAC),但是它主要用于多级安全军事应用,很少用于其他方面。现今人们在MAC基础上提出基于角色的访问控制(RBAC),它是一种强制访问控制形 式,但它不是基于多级安全需求。其策略是根据用户在组织内部的角色制定的。用户不能任意的将访问权限传递给其他用户。这是RBAC和DAC之间最基本的不 同。
基于角色访问控制(RBAC)模型是目前国际上流行的先进的安全访问控制方法。它通过分配和取消角色来完成用户权限的授予和取消,并且提供角 色分配规则。安全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任和资历再被指派为不同的角色。这样,整个访问控制过程就分成两个 部分,即访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。
由于实现了用户与访问权限的逻辑分离,基于角色的策略极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉, 加入代表新职务或新任务的角色即可。研究表明,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且给用户分配角色不需要很多技术,可以由 行政管理人员来执行,而给角色配置权限的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们给用户分配角色的权限,这与现实中的情 况正好一致。
基于角色访问控制可以很好的描述角色层次关系,实现最小特权原则和职责分离原则。
2.RBAC的正式定义
基于角色访问控制(RBAC)的定义已经在第十五届国际计算机安全会议上以集合的形式给出。定义如下:
对于每一主体,激活角色是当前使用的主体:
AR(s:subject)={主体s的激活角色}
每一主体可被授权扮演一个或更多角色:
RA(s:subject)={主体s的授权角色}
每一角色可被授权执行一个或更多事务:
TA(r:role)={授权给角色r的事务}
主体可以执行事务。如果主体s可以在当前时间执行事务t,则预测exec(s,t)是真,否则为假:
exec(s: subject, t: tran) =true, 如果主体s可以执行事务t。
执行过程中的三个基本规则:
2.1 角色分配:仅当主体选择或被赋予一个角色,主体才能执行一个事务。
身份证明和鉴别过程(例如登录)不是一个事务。其他用户的所有在系统上的活动都可通过事务处理。因此要求所有激活用户具有某个激活角色。
2.2 角色授权:主体的激活角色必须是被授权的:
同上面的(1)一起,规则保证用户只能接收他们授予的角色。
2.3 事务授权:仅当事务被授权给主体激活角色时,主体才能执行该事务。
同(1)和(2)一起,本规则保证用户只可执行授权给他们的事务。注意,因为条件是“仅当(only if)”,本规则允许事务执行的出现附加限制的可能性。即,规则不保证一个事务只是因为它在TA(AR(s))中就是可执行的,TA(AR(s))是由主 体激活角色执行的潜在事务集合。例如,一个主管角色的实习生可被赋予“主管”角色,但是在运用他/她用户角色时有限制,即对一主管可正常访问的子集,实习 生可能受到限制。
上文中,“事务”的定义是变换过程(transformation procedure)加上一个由变换过程访问的数据项集。因为数据访问已被构建到事务中,所以上面规则的访问控制不要求对用户访问数据目标的权利或变换程 序访问数据项的权利作任何检查。由于在设计阶段将操作和数据绑定为一个事务,所以存在安全性问题,例如此时的在保险查询事务中提出的个人隐私的问题。
当规则中“事务”只指变换程序时,需要重新定义“事务”的含义,即不包括对目标的绑定。若要实施方式控制则需要第四个规则,即在模型中用户通 过事务程序访问目标。例如,利用事务(重新定义为变换程序),第四个规则可被定义为对象访问函数access(r, I, o, x),
它表明了是否允许角色r的主体利用事务t以x的方式来访问对象o,其中x是已经缩小的模式的集合。例如读,写,附加。
第四项规则可适用于医院配置。一位医生可被提供读/写药方的访问控制,而医院的药剂师可能只具有读的访问权力。(单独调用前三个规则,将事务过程t与t能访问的数据对象绑定在一块,并且只控制对事务的访问)。我们可以使用第四个规则替换,更有益于满足机密性的要求。
RBAC的另一个用途是支持完整性。完整性以几种不同的方式定义,但完整性的一个方面是要求数据和程序只能由授权用户以被授权的方式修改。这看起来对于很多真实的系统是一合理的安全目标,同时RBAC应适用于这样的系统。
一般来说,决定数据是否只以授权的方式修改的问题与修改事务是同样复杂的。由于这个原因,实际的方法是事务直接与另一事务合并。要求系统通过 规则(4)中的访问函数控制事务程序对对象的访问,但是要取得完整性的同时需要极大的系统开销。因此,在RBAC中包含事务对对象的访问控制函数将在一些 应用集中是有用的,但并不是所有的应用。
3.最小特权策略
最小特权原则对于满足完整性目标是非常重要的。最小特权原则要求用户只具有执行一项工作所必需的权限。要保证最小特权要求验证用户的工作是什 么,要确定执行该项工作所要求的权限最小集合,并限制用户的权限域。若拒绝了不是主体职责的事务,则那些被拒绝的权限就不能绕过阻止安全性策略。尽管最小 特权包含当前存在于TCSEC的内容当中,但仍限制系统管理员的权限。通过使用RBAC,很容易满足一般系统的用户执行最小权限。
4.职责分离
RBAC机制可被系统管理员用于执行职责分离的策略。职责分离对于反欺诈行为是非常有效的。它是在真实系统中最重要的想法。
职责分离或者是静态的,或者是动态的。符合静态职责分离要求职能由个人角色的分配和事务角色的分配决定的。最难的是动态职责分配,其中符合动态职责分离的职能在系统操作期间决定。动态职责分离目的是允许操作更灵活。
根据角色分配访问权利在定义职责分离上也是有帮助的,它由系统执行。
5.结论
虽然商业和政府组织中很多终端用户能够访问信息,但他们都不“拥有”信息。而这些组织机构恰恰是实际系统对象的“拥有者”,并且自主访问控制是不可能适合的。基于角色访问控制(RBAC)是一个非自主访问控制机制,它允许促进组织具体安全策略的中央管理。
访问控制决策通常基于角色,个人用户采取的角色作为组织的组成。一个角色规定了一个事务集合,即用户或用户集合可在组织内执行。RBAC提供命名和描述个人和权利之间的关系的方法,提供很多商业和政府组织需要的安全处理方法。
本文提到的基于角色访问控制(RBAC)的定义,已经在第十五届国际计算机安全会议上以集合的形式给出。本文的目的是让更多热爱网络安全的朋友了解RBAC,使这一新型的访问控制方案得到更多的应用。
最近,随着电子商务和电子政务的发展,网络安全已成为研发的重点和热点。信息的完整性、机密性、身份鉴别和不可否认性构成了信息安全的四要 素。非对称加密算法从理论和实践上都可以保证身份的有效性和不可否认性,而要保证软件系统、数据库和信息网络的完整性、和机密性,至今还没有一个行之有效 的解决方案。如公司资源的讹误,信息的未授权泄漏或者失窃,以及被非法篡改都是因为没有保证信息的机密性和完整性而引起的。它们不仅破坏了组织的操作,并 有可能涉及到金融,法律,人员安全,个人隐私和国家机密方面,而造成重大的损失。
当今最著名的美国计算机安全标准是可信计算机系统评估标准(TCSEC)。其中一个内容就是要阻止未被授权而浏览机密信息。TCSEC规定了 两个访问控制类型:自主访问控制(DAC)和强制访问控制(MAC)。DAC是指主体可以自主地将访问权限或者访问权限的某个子集授予其他主体。主要是某 些用户(特定客体的用户或具有指定特权的用户)规定别的用户能以怎样的方式访问客体。它主要满足商业和政府的安全需要,以及单级军事应用。但是由于它的控 制是自主的,所以也可能会因为权限的传递而泄漏信息。另外,如果合法用户可以任意运行一个程序来修改他拥有的文件存取控制信息,而操作系统无法区分这种修 改是用户自己的操作,还是恶意程序的非法操作,解决办法就是通过强加一些不可逾越的访问限制。因此,又提出了一种更强有力的访问控制手段,即强制访问控制 (MAC),但是它主要用于多级安全军事应用,很少用于其他方面。现今人们在MAC基础上提出基于角色的访问控制(RBAC),它是一种强制访问控制形 式,但它不是基于多级安全需求。其策略是根据用户在组织内部的角色制定的。用户不能任意的将访问权限传递给其他用户。这是RBAC和DAC之间最基本的不 同。
基于角色访问控制(RBAC)模型是目前国际上流行的先进的安全访问控制方法。它通过分配和取消角色来完成用户权限的授予和取消,并且提供角 色分配规则。安全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其责任和资历再被指派为不同的角色。这样,整个访问控制过程就分成两个 部分,即访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。
由于实现了用户与访问权限的逻辑分离,基于角色的策略极大的方便了权限管理。例如,如果一个用户的职位发生变化,只要将用户当前的角色去掉, 加入代表新职务或新任务的角色即可。研究表明,角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多,并且给用户分配角色不需要很多技术,可以由 行政管理人员来执行,而给角色配置权限的工作比较复杂,需要一定的技术,可以由专门的技术人员来承担,但是不给他们给用户分配角色的权限,这与现实中的情 况正好一致。
基于角色访问控制可以很好的描述角色层次关系,实现最小特权原则和职责分离原则。
2.RBAC的正式定义
基于角色访问控制(RBAC)的定义已经在第十五届国际计算机安全会议上以集合的形式给出。定义如下:
对于每一主体,激活角色是当前使用的主体:
AR(s:subject)={主体s的激活角色}
每一主体可被授权扮演一个或更多角色:
RA(s:subject)={主体s的授权角色}
每一角色可被授权执行一个或更多事务:
TA(r:role)={授权给角色r的事务}
主体可以执行事务。如果主体s可以在当前时间执行事务t,则预测exec(s,t)是真,否则为假:
exec(s: subject, t: tran) =true, 如果主体s可以执行事务t。
执行过程中的三个基本规则:
2.1 角色分配:仅当主体选择或被赋予一个角色,主体才能执行一个事务。
身份证明和鉴别过程(例如登录)不是一个事务。其他用户的所有在系统上的活动都可通过事务处理。因此要求所有激活用户具有某个激活角色。
2.2 角色授权:主体的激活角色必须是被授权的:
同上面的(1)一起,规则保证用户只能接收他们授予的角色。
2.3 事务授权:仅当事务被授权给主体激活角色时,主体才能执行该事务。
同(1)和(2)一起,本规则保证用户只可执行授权给他们的事务。注意,因为条件是“仅当(only if)”,本规则允许事务执行的出现附加限制的可能性。即,规则不保证一个事务只是因为它在TA(AR(s))中就是可执行的,TA(AR(s))是由主 体激活角色执行的潜在事务集合。例如,一个主管角色的实习生可被赋予“主管”角色,但是在运用他/她用户角色时有限制,即对一主管可正常访问的子集,实习 生可能受到限制。
上文中,“事务”的定义是变换过程(transformation procedure)加上一个由变换过程访问的数据项集。因为数据访问已被构建到事务中,所以上面规则的访问控制不要求对用户访问数据目标的权利或变换程 序访问数据项的权利作任何检查。由于在设计阶段将操作和数据绑定为一个事务,所以存在安全性问题,例如此时的在保险查询事务中提出的个人隐私的问题。
当规则中“事务”只指变换程序时,需要重新定义“事务”的含义,即不包括对目标的绑定。若要实施方式控制则需要第四个规则,即在模型中用户通 过事务程序访问目标。例如,利用事务(重新定义为变换程序),第四个规则可被定义为对象访问函数access(r, I, o, x),
它表明了是否允许角色r的主体利用事务t以x的方式来访问对象o,其中x是已经缩小的模式的集合。例如读,写,附加。
第四项规则可适用于医院配置。一位医生可被提供读/写药方的访问控制,而医院的药剂师可能只具有读的访问权力。(单独调用前三个规则,将事务过程t与t能访问的数据对象绑定在一块,并且只控制对事务的访问)。我们可以使用第四个规则替换,更有益于满足机密性的要求。
RBAC的另一个用途是支持完整性。完整性以几种不同的方式定义,但完整性的一个方面是要求数据和程序只能由授权用户以被授权的方式修改。这看起来对于很多真实的系统是一合理的安全目标,同时RBAC应适用于这样的系统。
一般来说,决定数据是否只以授权的方式修改的问题与修改事务是同样复杂的。由于这个原因,实际的方法是事务直接与另一事务合并。要求系统通过 规则(4)中的访问函数控制事务程序对对象的访问,但是要取得完整性的同时需要极大的系统开销。因此,在RBAC中包含事务对对象的访问控制函数将在一些 应用集中是有用的,但并不是所有的应用。
3.最小特权策略
最小特权原则对于满足完整性目标是非常重要的。最小特权原则要求用户只具有执行一项工作所必需的权限。要保证最小特权要求验证用户的工作是什 么,要确定执行该项工作所要求的权限最小集合,并限制用户的权限域。若拒绝了不是主体职责的事务,则那些被拒绝的权限就不能绕过阻止安全性策略。尽管最小 特权包含当前存在于TCSEC的内容当中,但仍限制系统管理员的权限。通过使用RBAC,很容易满足一般系统的用户执行最小权限。
4.职责分离
RBAC机制可被系统管理员用于执行职责分离的策略。职责分离对于反欺诈行为是非常有效的。它是在真实系统中最重要的想法。
职责分离或者是静态的,或者是动态的。符合静态职责分离要求职能由个人角色的分配和事务角色的分配决定的。最难的是动态职责分配,其中符合动态职责分离的职能在系统操作期间决定。动态职责分离目的是允许操作更灵活。
根据角色分配访问权利在定义职责分离上也是有帮助的,它由系统执行。
5.结论
虽然商业和政府组织中很多终端用户能够访问信息,但他们都不“拥有”信息。而这些组织机构恰恰是实际系统对象的“拥有者”,并且自主访问控制是不可能适合的。基于角色访问控制(RBAC)是一个非自主访问控制机制,它允许促进组织具体安全策略的中央管理。
访问控制决策通常基于角色,个人用户采取的角色作为组织的组成。一个角色规定了一个事务集合,即用户或用户集合可在组织内执行。RBAC提供命名和描述个人和权利之间的关系的方法,提供很多商业和政府组织需要的安全处理方法。
本文提到的基于角色访问控制(RBAC)的定义,已经在第十五届国际计算机安全会议上以集合的形式给出。本文的目的是让更多热爱网络安全的朋友了解RBAC,使这一新型的访问控制方案得到更多的应用。