基于行为的跨域访问控制模型
2021-03-12黄玉芬
黄玉芬
(辽宁科技学院 曙光大数据学院,辽宁 本溪 117004)
随着信息技术的不断发展,信息资源通常存储于不同的服务器,用户通过网络进行访问。在分布式信息系统中,需要细粒度、灵活、安全的访问控制和管理。作为信息安全领域核心技术之一的访问控制技术〔1〕,也受到了人们的广泛关注。近年来,访问控制技术取得了巨大的进展。从自主访问控制(Discretionary Access Control, DAC)和强制访问控制(Mandatory Access Control, MAC)到基于角色的访问控制模型,人们提出了基于信任、属性、行为等一系列新的访问控制模型。
跨域访问控制的关键问题是跨域授权,也就是当域D1中的用户u要求访问域D0中的资源O时,如何决定用户u在D0中的权限。一个基本地解决方案是将用户u在域D1中的权限映射为D0中相应的权限。目前,人们在权限映射方面做了很多工作。文献〔2〕提出了一种基于角色的跨域访问控制模型IRBAC2000,给出了两个或多个域之间的交互操作的策略框架。文献〔3〕结合角色、时态和环境的概念,给出了行为的定义,介绍了行为、时态状态和环境状态的层次结构,提出了基于行为的访问控制模型ABAC(Action-Based Access Control Model)〔4-5〕。本文在此基础上,提出了基于行为的跨域访问控制模型和跨域的行为映射原则。同时通过一个具体的应用场景,详细介绍了跨域访问控制的具体实现过程。
1 行为映射策略框架
本节我们根据文献〔3〕给出了角色、环境和行为的定义,基于ABAC模型给出了基于行为的跨域访问控制模型的行为映射策略框架。在基于行为的访问控制模型中,用户的行为由角色、环境状态和时态状态三部分组成。在每一个域中,角色、环境状态和时态状态的取值可能不同。表1和表2给出了两个虚拟公司的行为取值表。
表1 公司A行为取值表
表2 公司B行为取值表
1.1 行为层次继承
虽然两个公司中的行为有不同的取值,但是他们之间存在对应关系。下面我们参考文献〔5〕用行为的角色来说明两个域之间的行为映射。考虑图1中域D0中的角色层次H0,域D1中的角色层次H1。从角色x到y的有向箭头表示角色x是y的父角色,也就是说在角色的层次结构中,角色x高于y,表示为x>y。若域D1中的用户u想访问域D0中的资源o,而在域D0中manager角色才可以访问o。因此,为了使用户u可以访问资源o,则需要将用户u的角色映射为manager或高于manager的角色,即u应具有Director,Coo或Administrator角色。
图1 域间角色层次继承关系
当然我们也可以定义一种简单的策略框架,即域D1中的所有角色映射为域D0中的游客角色。然而,由于该方法将所有的角色映射为同一种角色,即游客角色,因此这种方法缺乏灵活性。
通过将域D1中的角色映射为域D0中的角色可以建立一个偏序关系。这样我们就可以方便的控制对特定角色的访问级别。形式化的定义如下:设R0表示域D0中角色集,R1表示域D1中的角色集。角色层次H0和H1中的偏序关系如图1所示。带有下标的角色名,例如ManagerR0表示R0中的manager角色。对于x∈R1,y∈R0我们定义rolemapping:x|→yx∈R1,y∈R0或(x,y)∈R1R0(R1R0∈R1×R0)来表示R1到R0的角色映射。
同理我们可以定义E1到E0的环境映射envmapping:x|→yx∈E1,y∈E0,T1到T0的时态映射temmapping:x|→yx∈T1,y∈T0。若域D1和D0中的行为分别表示为A1和A0,则A1到A0的行为映射可定义为:
actionmapping:(x,y,z)|→ (rolemaping(x),envmapping(y),temmapping(z))
其中:x∈R1,y∈E1,z∈T1,(x,y,z)∈A1。
1.2 行为映射规则
为了简单起见,我们将行为映射规则表示为X|→Y或(X,Y),其中X,Y分别是A1,A0中的逻辑表达式。X|→Y表示若A1中行为a1满足声明X,则a1在A0中相应的等价角色满足声明Y。下面我们给出一些行为映射规则的实例。例如:
rR11∧rR12∧eE11∧tT11|→rR01∧rR02∧eE01∧tT01
rR11∧rR12|→rR01∧rR02
rR11∧eE11|→rR01∧(eE01∨eE02)
第一个规则说明若域D1中的用户u所处的环境状态为eE11,时态状态为tT11,角色为rR11和rR12,则用户u在域D0中相应的环境状态、时态状态、角色分别为eE01,tT01,rR01,rR02。第二个规则说明若域D1中的用户u所处的角色状态为和rR11和rR12,则用户u在域D0中相应的角色为rR01,rR02。第三个规则说明若域D1中的用户u所处的环境状态为eE01,角色为rR11,则用户u在域D0中相应的环境状态为eE01或eE02,角色为rR01。
定义了相关域之间的行为映射规则。若域D1中的用户u想访问域D0中的资源o,则应用域D1和D0之间的行为映射规则,可以将用户u在域D1中的行为映射为D0中的行为,这样就可以利用用户u在域D0中相应的行为决定其对资源o的访问权限。
2 基于行为的跨域访问控制模型的实现
图2是一个基于行为的跨域访问控制模型的实例。每一个域都有一个授权中心(AC)负责提供跨域的授权和认证,一个行为映射模块(AM)负责将其他域中用户的行为映射为本地域中的行为,一个ABAC模块是该域原来的访问控制模型。
图2 基于行为的跨域访问控制模型
若域D1中的用户U想要访问域D0中的资源o,则具体步骤如图3所示:
图3 基于行为的访问控制模型实现过程
(1)域D0中的用户U将请求和认证信息(auz,action,o,mode)发给域D1的授权中心AC,其中auz表示用户U的认证信息、action表示用户的行为、O表示用户U想要访问的资源、mode表示用户的访问模式。
(2)域D1的授权中心AC将用户U的认证信息auz发给域D0的授权中心AC。
(3)域D0的授权中心AC返回认证通过allowed或认证失败refused。
(4)域D1的授权中心AC将action发给域D1的行为映射模块AM。
(5)域D1的行为映射模块AM将actionmapping(action)返回给域D1的授权中心AC,其中actionmapping(action)表示将用户在域D0中的行为action映射为域D1中的相应行为。
(6)域D1的授权中心AC将(o,mode)发给域D1的ABAC模块。
(7)域D1的ABAC模块将访问资源o所需的action(o,mode)返回给域D1的授权中心AC,其中action(o,mode)表示用户在域D0中以mode模式访问资源o所需的行为。
(8)若actionmapping(action)≥action(o,mode),则域D1的授权中心AC将授权信息allowed返回给用户,否则将refused返回给用户。
3 结 语
访问控制技术作为信息安全的核心技术之一,目的是防止信息资源被非法使用和访问,保证对信息资源的合理访问。近年来,随着分布式技术的快速发展,人们越来越关注跨域访问控制中的安全问题。本文在基于行为的访问控制模型的基础上,将其应用于跨域访问控制,提出了基于行为的跨域访问控制模型,并给出了跨域的行为映射原则。同时通过一个应用场景,详细介绍了跨域访问控制的具体实现流程。