《武汉工程大学学报》  2009年09期 53-54   出版日期:2009-09-28   ISSN:1674-2869   CN:42-1779/TQ
基于逻辑式的NTFS用户角色计算模型


0引言RBAC (RoleBased Access Control)[12]的安全思想是分离用户和资源,采用的方法是在用户和资源之间引入角色层,资源的访问权限被组织成不同的角色,需要特定权限的用户被指配到合适的角色.这种用户权限管理方法特别适合于那些资源的访问权限相对固定,而用户经常发生变化的环境,比如网络文件服务器与各类管理信息系统[34].Windows NT及以上版本的操作系统都支持NTFS(New Technology File System)[5],NTFS又是支持RBAC的[6],因此,在运行上述操作系统的服务器上可直接利用这个便利进行文件(夹)资源安全管理而无需额外的投入.RBAC的实现过程包括两部分,即定义角色和用户角色指派.第一部分通常与应用环境密切相关并且角色一旦定义就具有相对稳定性,后一部分则是系统管理员维护的重点,因为用户以及用户的任务变化较多.本文试图建立NTFS环境下用户角色指派的数学模型,结合逻辑公式计算机求解算法[78],快速准确地根据用户的任务来计算合适的角色.1NTFS文件(夹)权限与角色对每一个文件对象,NTFS提供了13个特别访问权限:1)执行文件,2)读取数据,3)读取属性,4)读取扩展属性,5)写入数据,6)添加数据,7)写入属性,8)写入扩展属性,9)删除子文件夹和文件,10)删除,11)读取权限,12)更改权限,13)获得所有权.对每一个文件夹对象,NTFS提供了13个特别访问权限:1)遍历文件夹,2)列出文件夹,3)读取属性,4)读取扩展属性,5)创建文件,6)创建文件夹,7)写入属性,8)写入扩展属性,9)删除子文件夹和文件,10)删除,11)读取权限,12)更改权限,13)获得所有权.系统管理员可通过对象的属性→安全页来设置上述权限.对象的这些访问权限被组织成各种角色,每个角色都是一个多元组的集合,多元组描述了对象标识以及相应的权限列表.一般的,假设系统有n个对象,分别记为o1,…,on,定义了m个角色,记为r1,…,rm,再用pijk∈{0,1,2}表示角色ri对对象oj的第k种权限的值,i=1,…,m,j=1,…,n,k=1,…,s,取值0表示没有权限,取值1表示有权限,取值2表示拒绝该权限.角色与对象及其权限的关系如表1所示.表1角色示意表
Table 1Definition of Roles
色色对象权限r1o1p111…p11sr2o1p211…p21s……………rmo1pm11…pm1s……………rmonpmn1…pmns2用户角色分配设新用户u为完成某项任务所需要的操作权限表示为矩阵U,且U=u11u12…u1s
u21u22…u2s
…………
un1un2…uns(1)
其中,ujk∈{0,1,2}表示新用户u对对象oj的第k种权限的值,j=1,…,n,k=1,…,s,取值含义同pijk.下面介绍指派u到角色的计算方法.定理仞然用ri表示命题:u∈ri,i=1,…,m,对表1中定义的角色和(1)中给定的权限,u到角色的指派(r1,…,rm)是逻辑式f(r1,…,rm)=∧nj=1∧sk=1∨ujk=pijk≠0i∈{1,…,m}ri∧∨ujk+pijk=3i∈{1,…,m}┐ri=1的解.其中,∧,∨,┐分别表示合取、析取和非运算.证明任意给定的ujk(j=1,…,n,k=1,…,s)与pijk(i=1,…,m)的取值有如下情况:(1)ujk=0,pijk∈{0,1,2},或ujk=1∈{1,2},pijk=0.表明用户不需要对象oj的第k种权限,从而无需指派操作,或角色ri不具备对象oj的第k种权限,从而指派与ri无关;(2) ujk=pijk=1,或ujk=pijk=2. 表明用户需要对象oj的第k种权限,且角色ri具备对象oj的第k种权限,因此用户可以指派到ri,或用户拒绝对象oj的第k种权限,且角色ri也拒绝对象oj的第k种权限,因此用户也可以指派到ri;(3) ujk=1,pijk=2,或ujk=2,pijk=1,即ujk+pijk=3. 此时用户的需要与角色正好相反,因此用户不能指派到角色ri. 综上分析,对权限ujk来说,用户与角色的指派关系应满足∨ujk=pijk≠0i∈{1,…,m}ri∧∨ujk+pijk=3i∈{1,…,m}┐ri. 所以,对全部的权限U来说,用户与角色的指派关系应满足f(r1,…,rm)=1.当逻辑式f(r1,…,rm)=1无解时,表示没有合适的角色组合满足用户操作权限,需要添加新的角色,或者是用户权限设置不相容.第9期戴祖旭:基于逻辑式的NTFS用户角色计算模型
武汉工程大学学报第31卷
2实验结果某高校有一个成绩管理系统,共有5个文件或文件夹对象,3种角色.角色定义如表2所示.新用户所需权限矩阵为:
U=1100000000000
2120001000000
0011000010102
0001210000201 表2高校成绩管理系统角色表
Table 2Roles accessing score database of college
角色操作对象权限(13种具体权限见本文第2节)r1o1(1,1,1,1,0,0,2,0,0,0,1,0,0)r2o1(1,1,1,1,0,0,2,0,0,0,1,0,0)r3o1(2,1,1,1,0,0,2,0,0,0,1,0,0)r1o2(0,1,0,1,0,0,1,0,0,0,1,0,0)r2o2(2,1,2,1,0,0,0,0,0,0,1,0,0)r3o2(1,1,1,1,0,0,2,0,0,0,1,0,0)r1o3(1,1,1,1,0,0,2,0,1,0,1,0,0)r2o3(1,1,0,1,0,0,2,0,0,0,1,0,2)r3o3(0,0,0,0,1,1,1,1,0,0,1,0,1)r1o4(0,1,2,1,0,0,0,0,0,0,2,0,0)r2o4(0,1,0,0,1,1,1,1,0,1,1,0,0)r3o4(1,0,1,0,0,0,0,0,2,2,0,0,0)r1o5(1,1,1,1,0,0,2,0,0,0,2,0,1)r2o5(1,1,1,1,0,1,2,0,0,0,0,0,0)r2o5(0,1,1,2,0,0,0,0,1,0,1,0,0)逻辑式f(r1,…,rm)=((r1∨r2)∧┐r3)∧(r1∨r2∨r3)∧(r2∧┐r3)∧(r1∧┐r3)∧r1∧(r1∨r2)∧r2.
求得成真赋值为r1=r2=1,r3=0,即用户应指派到角色r1和r2,不能指派到r3.