ABACα的安全性是可判定的
摘要
最近定义了ABACα模型,其动机是展示基于属性的访问控制(ABAC)所需的最小能力集合,该模型能够配置三种主要传统访问控制模型的典型形式:自主访问控制(DAC)、强制访问控制(MAC)和基于角色的访问控制(RBAC)。ABACα表明,属性可以表示身份(用于DAC)、安全标签(用于MAC)以及角色(用于RBAC)。安全性分析是任何访问控制模型的一个基本问题。最近研究表明,具有有限属性域的预授权使用控制模型(UCONfinite preA)的安全性是可判定的。ABACα是一种预授权模型,且要求属性域为有限,但在其他方面与UCONfinite preA有很大不同。本文给出了从ABACα到UCONfinite preA的状态匹配归约。状态匹配归约的概念由特里普尼塔拉和李提出,指能够保持包括安全性在内的安全属性的归约方法。由此可得,ABACα的安全性是可判定的。
关键词
ABACα · Safety
1 引言
基于属性的访问控制(ABAC)因其通用的结构和在策略定义方面的灵活性,近年来受到越来越多的关注[2]。已有大量研究工作,并提出了多种ABAC的正式模型[3–6,8,10]。其中,UCONABC[6]和ABACα[4]是两个流行的基于属性的访问控制模型。UCONABC被定义用于持续控制数字资源的使用,涵盖授权、义务、条件、连续性和可变性;而ABACα被定义用于配置自主访问控制、强制访问控制和基于角色的访问控制,表明属性可以表达身份、安全标签和角色。
UCONfinite preA是UCONABC模型家族的成员,涵盖具有有限属性域的基于属性的预授权使用控制。
安全性是任何访问控制模型的一个基本问题。哈里森等人在保护系统中引入了安全性问题,即询问主体s是否可以获得对象o的权限r。他们证明了这一问题在一般情况下是不可判定的。安全性分析器可以回答可判定的安全性问题。最近的一项结果表明UCONfinite preA 的安全性是可判定的[7]。由于UCONfinite preA允许主体和对象的无限制创建,通常情况下UCONfinite preA系统可以无限增长。
ABACα与UCONfinite preA具有一些相似的特征。这两种模型都将属性限制在有限常量域内,并且都允许主体和对象的无界创建。尽管如此,这两种模型之间仍存在显著差异,如第2和第3节所述。本文的核心结果是ABACα的安全性问题可以归约到UCONfinite preA的安全性问题,因此是可判定的。我们的归约遵循状态匹配[9]的概念,并保持安全属性,包括安全性。
本文的其余部分组织如下。第2节综述了ABACα模型,并相对于其原始定义提供了一个略有重新表述但实质上相同的正式定义[4]。第3节综述了UCONfinite preA模型的形式化描述。第4节提出了从ABACα到UCONfinite preA的归约。第5节证明了第4节的归约是状态匹配的,由此得出ABACα的安全性是可判定的。第6节总结了全文。
2 ABACα形式化模型(综述)
ABACα是一种基于属性的访问控制模型,具有“足够”的特性,可以“简单且自然地”配置为实现自主访问控制、强制访问控制和基于角色的访问控制 [4]。该模型的核心组件包括:用户(U)、主体(S)、对象(O)、用户属性(UA)、主体属性(SA)、对象属性(OA)、权限(P)、授权策略、创建与修改策略以及策略语言。基于属性的访问控制模型的结构如图1所示。表1给出了基于属性的访问控制模型的形式化定义α。
2.1 用户、主体、对象及其属性
用户(U)表示ABACα系统中创建和修改主体并通过主体访问资源的人类。主体(S)是由用户创建的用于在系统中执行某些操作的进程。ABACα资源表示为对象(O)。用户、主体和对象彼此互不相交。
在ABACα中,用户、主体和对象统称为实体。NAME是系统中各类实体名称的集合。属性是集合值或原子值函数,它接受一个实体(用户、主体或对象),并返回一个来自原子值有限集的值。每个用户、主体、对象分别关联一个用户属性(UA)、主体属性(SA)和对象属性(OA)的有限集。每个属性都是一个集合值或原子值函数。SCOPE表示一个属性的域,即一个原子值的有限集。诸如位置、年龄等可能具有无限域的属性被表示为较大的有限域。对于每个属性att,SCOPE(属性)可以是无序集、全序集或偏序集。Range(att)是属性att所有可能的原子值或集合值的有限集。每个属性接收一个用户、主体或对象,并从其Range中返回一个值。SubCreator是一个系统函数,用于指定主体的创建者。SubCreator在主体创建时由系统分配,且不可更改。UAVT、SAVT、OAVT分别是用户、主体和对象的所有可能的属性值元组的集合。函数uavtf、savtf和oavtf分别返回特定用户、主体或对象的当前属性值元组。
2.2 授权策略
ABACα授权策略为每个权限包含一个单独的授权策略。权限是用户在对象上通过主体持有的特权,可通过特定模式(如读取或写入)实现主体对对象的访问。P ={p1, p2,… pn}是一个有限集的权限。每个授权策略是一个布尔函数,与某个权限相关联,以主体和对象作为输入,并根据该主体和对象的属性构成的布尔表达式返回真或假。
2.3 创建和修改策略
用户创建、用户创建时的属性值分配、用户删除以及用户属性值的修改由安全管理员执行,不在ABAC的SCOPE内α主体创建以及创建时为主体分配属性值受用户属性值的约束。只有创建者被允许终止和修改主体的属性。主体属性的修改受创建用户的属性值、相关主体的现有属性值和新属性值的约束。1对象由主体创建。客体创建以及创建时的属性值分配受创建主体的属性值和为该对象提议的属性值的约束。对象属性的修改值受主体和对象的现有属性值以及对象的拟议属性值的约束。ABACα具有主体删除功能,但没有对象删除功能。现有主体只能由其创建者删除。
2.4 策略语言
每项策略都使用特定语言表示。CPL 是每种语言的通用策略语言部分。每种语言都是 CPL 的实例化,具有不同的 set和 atomic值。CPL 在表2中定义。
表2. CPL定义
| CPL ϕ ::= | ϕ ∧ ϕ | ϕ ∨ ϕ | (ϕ) | ¬ ϕ | ∃ x ∈ set.ϕ | ∀ x ∈ set.ϕ | set集合比较 set | atomic ∈ set | atomic原子比较 atomic |
|---|---|
| 集合比较 ::= | ⊂ | ⊆ | ⊆ |
| 原子比较 ::= | < | = | ≤ |
授权策略:授权策略的布尔表达式使用语言LAuthorization定义,该语言是CPL实例化,其中set和 atomic分别指相关主体和对象的集合和原子值属性。
创建与修改策略:主体创建、主体属性修改、对象创建和对象属性修改策略均为布尔表达式,分别使用LConstrSub、LConstrSubMod、LConstrObj和LConstrObjMod定义。LConstrSub是一个CPL实例化,其中 set和atomic分别指创建用户以及被创建主体的提议属性值中的集合和原子值属性。LConstrSubMod是一个CPL实例化,其中 set和 atomic分别指相关用户和主体的集合和原子值属性值以及主体的提议属性值。LConstrObj是一个CPL实例化,其中 set和 atomic分别指创建主体的集合和原子值属性值以及被创建对象的提议属性值。LConstrObjMod是一个CPL实例化,其中 set和 atomic分别指相关主体和对象的集合和原子值属性值以及对象的提议属性值。
2.5 功能规范
ABACα功能规范包含六种操作:主体访问客体、主体与客体的创建、主体删除、主体与客体属性的修改。每种ABACα操作包含两个部分:条件部分和更新部分。表3展示了ABACα操作的条件部分与更新部分的规范。
表3。 ABACα操作的功能规范
| 操作 | 条件 | 更新 |
|---|---|---|
| 访问p(主体s, 客体o) | 主体s∈ S ∧客体o∈ O ∧授权p(s, o) | |
| 创建主体 (u, s: 名称, savt: savt) | u∈U ∧ s∈/S ∧约束子条件(u, s, savt) | S′=S∪{s} SubCreator(s) = u savtf(s) = savt |
| 删除主题 (u, s: 名称) | s∈S ∧ u∈U ∧ SubCreator(s)= u | S′=S{s} |
| 修改主题属性 (u, s: 名称, savt: savt) | u∈U ∧主体s∈S ∧ SubCreator(s)= u ∧约束子修改(u, s, savt) | savtf(s) = savt |
| 创建对象 (s, o: 名称, oavt: OAVT) | s∈主体s ∧ o∈/客体o ∧约束对象(s, o, oavt) | 客体o′=客体o∪{o} oavtf(o) = oavt |
| 修改对象属性 (s, o: 名称, oavt: OAVT) | s∈S ∧ o∈客体o ∧ 约束对象修改(s, o, oavt) | oavtf(o) = oavt |
3 使用控制命令集finite预A 模型(综述)
在使用控制授权模型实体中,主体和对象是对象的子集。每个对象都有一个唯一标识符和一个有限属性集。属性可以是可变的或不可变的。使用控制预授权模型(UCONpreA)在命令执行之前评估权限的授权决策。图2展示了UCON preA模型的组件。
UCONfinite preA模型,即具有有限属性的预授权UCON,通过使用控制方案[7],定义如下。
- 对象模式 OSΔ 的形式为 {a1: σ1, . . . , an: σn},其中每个 ai 是属性的名称,而 σi 是指定属性 ai 域的有限集。UCONfinite preA 针对不同对象考虑单一对象模式,并且每个域 σi 仅考虑原子值。
- 使用权限集 UR ={r1, r2, . . . rk},是一组使用权限,其中 ri 定义了由使用控制命令启用的权限。
- 使用控制命令集 UC ={UC1, UC2, . . . UCl},是一组使用控制命令。
- 对象属性集 ATT = {a1, a2, . . . an},是一个有限的对象属性集合。
- 属性值元组集 AVT = σ1 ×… × σn,是所有可能的属性值元组的集合。
- avtf: O → AVT,返回一个对象现有的属性值元组。
- UC 中的每条命令都关联一个权限,并具有两个形式参数 s 和 o,其中 s 是试图以权限 r 访问对象o的主体。单个权限可与多条命令相关联。命令的数量 (l) ≥ 权限的数量 (k)。使用控制命令有两种类型:非创建命令和创建命令。每条命令都有一个条件部分和一个更新部分。表4 显示了 UCONfinite preA 中非创建命令和创建命令的结构。
(a) 在 UCONfinite preA 的非创建命令中, fb(s, o) 是一个布尔函数,它获取主体s和对象o的属性值并返回真或假。如果结果为真,则执行预更新,独立地将主体s和对象o的一个或多个属性更新为通过命令执行前其属性值计算出的新值,同时授予使用权限r;否则,命令终止且不授予权限r。 f1 和 f2 是用于计算新值的计算函数。
(b) 在 UCONfinite preA 的创建命令中, fb(s) 是一个布尔函数,它获取主体s的属性值并返回真或假。如果结果为真,则预更新会将主体s的零个或多个属性更新为根据主体s的属性值计算出的新值。新创建的对象o的所有属性都将被赋予计算出的属性值。同时,授予使用权限r。否则,该命令在不授予使用权限r的情况下终止。 f1和 f2是用于计算新值的计算函数。
表4. UCONfinite preA命令结构
| 非创建命令 | 创建命令 |
|---|---|
| 命令 名称r(s,o) 前置条件:fb(s,o)→{true,false}; 预更新: 主体s.ai1:=f1,a i 1 (主体 s, 客体 o); .. . ai p := f1,a i p ( 主体s,客体 o ) ; 客体o.a j1:= f2,a j1 (主体 s,客体 o); . . . o.a j q := f 2,a j q (主体 s,客体 o); | 命令 名称r(s,o) 前置条件:fb(主体s)→{true,假}; 预更新:创建 o; 主体s.ai 1:= f1,a i 1(s); . . . s.ai p := f1,a i p (s); 客体o.a j1:= f2,a j1 (s); . . . o.a j q := f 2 , a j q (s); |
| ## 4 从ABAC的归约α到UCONfinite预A |
在本节中,我们定义了从ABACα到UCONfinite preA的归约。为了方便起见,我们引入了用于ABACα中主体和对象的创建与修改的策略评估函数以及合格属性值元组集。我们还引入了将在下一节中使用的UCONfinite preA的前置条件评估函数。这些附加的符号有助于我们关联这两种模型的机制。
4.1 ABACα的策略评估函数
每个策略评估函数都会评估相应的策略,并返回真或假。
授权策略评估函数 :ChkAuth(p, savtf(s),oavtf(o)) 返回真或假。该函数评估授权策略 Authorizationp(s, o),以确定主体 s 是否被允许在对象 o 上拥有权限 p。
创建和修改策略评估函数
:
- ChkConstrSub(uavtf(u),savt) 返回真或假。它根据主体创建策略 ConstrSub(u, s, savt) 判断具有属性值元组 uavtf(u) 的用户 u 是否被允许创建具有属性值元组 savt 的主体 s。
- ChkConstrSubMod(uavtf(u) savtf(s) savt) 返回真或假。它根据主体修改策略 ConstrSubMod(u, s, savt) 判断具有属性值元组 uavtf(u) 的用户 u 是否被允许将具有属性值元组 savtf(s) 的主体 s 修改为 savt。
- ChkConstrObj(savtf(s) oavt) 返回真或假。它根据对象创建策略 ConstrObj(s, o, oavt) 判断具有属性值元组 savt 的主体 s 是否被允许创建具有属性值元组 oavt 的对象 o。
- ChkConstrObjMod(savtf(s) oavtf(o) oavt) 返回真或假。它根据对象修改策略 ConstrObjMod(s, o, oavt) 判断具有属性值元组 savtf(s) 的主体 s 是否被允许将具有属性值元组 oavtf(o) 的对象 o 修改为 oavt。
4.2 合法属性值元组集合
使用ABACα的策略评估函数,我们定义了4个属性值元组的合格集合如下。
定义 1. 用户-主体可创建元组集合 UAVTCrSAVT ⊆ UAVT × SAVT
UAVTCrSAVT = {〈i, j〉 | i ∈ UAVT ∧ j ∈ SAVT ∧ ChkConstrSub(i,j)}
定义 2. 用户-主体可修改元组集合 UAVTModSAVT ⊆ UAVT × SAVT × SAVT
UAVTModSAVT = {〈i, j, k〉 | i ∈ UAVT ∧ j ∈ SAVT ∧ k ∈ SAVT ∧ ChkConstrSubMod(i, j, k)}
定义 3. 主体-对象可创建元组集合 SAVTCrOAVT ⊆ SAVT × OAVT
SAVTCrOAVT = {〈i, j〉 | i ∈ SAVT ∧ j ∈ OAVT ∧ ChkConstrObj(i, j)}
定义 4. 主体-对象可修改元组的集合 SAVTModOAVT ⊆ SAVT × OAVT × OAVT
SAVTModOAVT = {〈i, j, k〉 | i ∈ SAVT ∧ j ∈ OAVT ∧ k ∈ OAVT ∧ ChkConstrObjMod(i,j,k)}
4.3 UCFinite前A的前置条件评估函数
UCONfinite preA的前置条件评估函数用于检查UCON finite preA命令的前置条件,并返回真或假。
- CheckPCNCR(ucr, avtf(s) avtf(o) avt1, avt2) 返回真或假。它评估非创建命令ucr(s, o)的前置条件 fb(s, o)和预更新,以判断主体 s是否被允许在对象 o 上执行命令 ucr,以及若允许,是否将 s的属性值元组从avtf(s)修改为 avt1,并将 o的属性值元组从avtf(o)修改为 avt2。
- CheckPCCR(ucr, avtf(s) o, avt1, avt2) 返回真或假。它评估创建命令 ucr(s, o) 的前置条件 fb(s) 和预更新,以判断主体 s 是否被允许执行具有权限 r 的命令 uc,以及若允许,是否创建具有属性值元组 to avt2 的对象 o,并将其自身的属性值元组从 avtf(s) 修改为 avt1。
4.4 从ABACα到UCON finite preA的归约
归约展示了UCON的配置finite preA 对象模式、权限和用于ABAC的命令α。表5展示了该归约。
表5. 从ABACα到UCONfinite preA的归约
对象模式(OSΔ):
[实体 类型:{用户, 主体, 对象}, 用户名: UABACα, SubCreator: UABACα, 已删除:{真,假},主体ua1:Range(ua1),…,主体uam:Range(uam) sa1:Range(sa1),…,san:Range(san),oa1:Range(oa1),…,oap: Range(oap)]
属性:
ATT={实体类型、用户名、SubCreator、已删除} ∪UAABACα ∪ SAABACα ∪ OAABACα
使用权限:
使用权限集=PABACα ∪{d}
命令:
使用控制命令集finite preA命令在表6和表7中定义
每个ABACα实体(用户、主体、对象)都被表示为一个UCONfinite preA对象,且属性实体类型指定某个UCONfinite preA对象是否为ABACα用户、主体或对象。ABACα中的用户、主体和对象属性表示为UCONfinite preA对象属性。ABACα中没有用户创建,因此U ABACα是一个有限集。此处配置了ABACα函数SubCreator,其具有一个强制性的UCONfinite preA对象属性,该属性的域为用户的有限集(U ABACα)。为了确定哪个用户是ABACα主体的创建者,UCONfinite preA对象需要具有另一个强制性属性“用户名”,其Range也是用户的有限集(UABACα)。ABACα具有主体删除操作。在[7]中表明,主体的删除可以通过使用一个特殊的布尔属性 isDeleted来模拟,该属性具有布尔域。我们将“NULL”视为任何原子或集合值属性的特殊属性值,用于不适用于特定实体的属性。为了实现此归约,我们需要在UA、SA和OA的Range中添加“NULL”。由于ABACα中没有用户删除和对象删除,因此对于用户和对象而言,isDeleted均为“NULL”。UCON finite preA属性集ATT = {实体类型、用户名、SubCreator、已删除} ∪ UA ABACα ∪ SAABACα ∪ OAABACα。
使用控制命令集finite preA 使用权限 UR:在此归约中,每个ABACα权限被视为UCONfinite preA中的一个使用权限,并额外引入一个虚拟权限 d。每个UCONfinite 命令与一个权限相关联。我们使用虚拟权限 d与那些定义用于配置ABACα操作的命令进行关联。使用权限 URUCON finite 预A = PABACα ∪{d}。
UCONfinite preA commands: ABACα操作被简化为特定的UCON finite preA命令。我们使用合格属性值元组集来定义UCONfinite preA 命令。它为UAVTCrSAVT和 SAVTCrOAVT中的每个元素定义一个创建命令,为UAVT‐ModSAVT和 SAVTModOAVT中的每个元素定义一个非创建命令。例如,考虑一个ABACα主体创建策略,其中具有属性值元组 uavt的用户 u被允许创建一个主体 s其属性值元组为 savt,因此根据定义 〈uavt, savt〉∈ UAVTCrSAVT。对于每个元素 〈i, j〉 ∈ UAVTCrSAVT,此归约有一个名为 CreateSubject ij(s, o) 的命令,用于创建一个对象o,其
表6. UCONfinite preA非创建命令
| 对于每个 r ∈ 使用权限集UCONfinite preA{d} | 删除主题d(s, o) | 访问r(s, o) |
|---|---|---|
| 前置条件:s.实体类型 =用户 | 前置条件:ChkAuth(r,avtf(s),avtf(o)) ∧o.实体类型 =主体 | 预更新:N/A ∧ o.子创建者= s.用户名 ∧ o.已删除=假 |
| 预更新:o.已删除 =true |
| 对于每个 i, j, k UAVTModSAVT | 对于每个 i, j, k SAVTModOAVT |
|---|---|
| 修改主题属性 ijkd(s,o) | 修改对象属性 ijkd(s,o) |
| 前置条件:s.实体类型 =用户 | 前置条件:s.实体类型 =主体 ∧o.实体类型 =对象 ∧ o.已删除=假 ∧s.已删除 =假 ∧ o.子创建者= s.用户名 ∧ s.sa1, …, s.san= i1, …, in ∧ s.ua1, …, s.uam= i1, …, im ∧ o.oa1, …, s.oap= j1,…, jp ∧ o.sa1,…, s.san= j1,…, jn |
| 预更新:客体o.sa1=k1 … o.san= kn | 预更新:客体o.oa1=k1 … o.oap= kp |
表 7. UCONfinite preA创建命令
| 对于每个 i, j UAVTCrSAVT | 对于每个 i, j SAVTCrOAVT |
|---|---|
| 创建主体 ij d(s, o) | CreateObject ij d(s,o) |
| 前置条件:s.实体类型 =用户 ∧ s.ua1,…, s.uam= i1,…, im ∧ s.已删除=假 ∧ s.sa1,…, s.san= i1,…, in | 前置条件:s.实体类型 =主体 ∧ s.已删除=假 |
| 预更新:创建 o o.实体类型=主体 o.用户名=空 o.子创建者= s.用户名 o.已删除=假 o.ua1=空 … 客体o.uam =空 客体o.sa 1 =j1 … 客体o.sa n =jn 客体o.oa1 =空 … o.oa p =空 | 预更新:创建 o o.实体类型=对象 o.用户名=空 o.子创建者=空 o.已删除=空 客体o.ua1=空 … 客体o.uam =空 客体o.sa1 =空 … 客体o.san =空 客体o.oa 1 =j1 … 客体o.oa p =j p |
每个AccessUCONfinitepreAr(s, o) 配置 AccessABACα (s, o),其中 r= p。此处 AccessUCONfinite preAr 是一个仅包含前置条件部分的非创建命令,且前置条件检查 ABACα 的授权评估函数。每个 DeleteSubject UCONfinitepreAd(s, o) 配置 DeleteSubjectABACα(u, s),该命令也是一个非创建命令,并将 o.已删除 设置为 = true。表6和表7展示了此构造中非创建命令和创建命令的配置。
5 ABACα的安全性
在本节中,我们证明ABACα的安全性是可判定的。我们证明前一节给出的归约是状态匹配的,因此它保留了包括安全性在内的安全属性。由此,根据UCONfinite preA的安全性可判定性,可得ABACα的安全性也是可判定的。特里普尼塔拉和李[9]将访问控制模型定义为一组访问控制方案。一个访问控制方案是一个状态转换系统 〈Γ, Ψ, Q, ⊨〉,其中 Γ是状态集合, Ψ是状态转换规则集合,Q是一组查询,且 ⊨: Γ × Q →{true, false}是蕴含关系。状态匹配归约的概念定义如下。
定义5. 状态匹配约简:
给定两个方案A和B以及从A到B的映射, σ:(Γ A × Ψ A) ∪ QA →(Γ B × Ψ B) ∪ QB,我们说当对于每个 qA ∈ Q A, γA ⊨A qA当且仅当 γB ⊨B σ(qA)时, 两个状态 γA和 γB在映射 σ下是等价的。从A到B的映射 σ被称为状态匹配归约,如果对于每个γA ∈ Γ A和每个 ψA ∈ Ψ A,〈γB, ψB〉= σ(〈γA, ψA〉)具有以下两个性质:
1. 对于方案A中的每个 γ1A,若满足 γA ∗ →−ψ γ1A,则存在一个状态 γB 1,使得 γB ∗ →−ψ γB 1、 γ1A和 γB 1在 σ下等价。
2. 对于方案B中的每个γB 1,若满足 γB ∗ →−ψ γB 1,则存在一个状态 γ1A,使得 γA ∗ →−ψ γ1A、 γB 1和 γ1A在 σ下等价。
为了证明从ABACα和UCON finite preA的归约是状态匹配的,我们必须证明以下内容:
1. 将ABACα和UCON finite preA模型表示为ABACα和UCON finite preA方案
2. 构造一个 σABACα 将ABAC映射到UCON的映射。
3. 证明从ABACα到UCON finite preA的映射满足状态匹配约简的以下两个要求:
(a) 对于在映射σABACα下从 γABACα可达的每一个状态 γ ABAC α 1 ,在UCONfinite preA 方案中存在一个等价的可达状态(以相同方式回答所有查询);
(b) 对于在映射σABACα下从 γUCON finite preA可达的每一个状态 γ UCON finite 1 preA,在ABACα方案中存在一个等价的可达状态(以相同方式回答所有查询)
5.1 ABACα方案
An ABACα方案由 〈Γ ABACα、 Ψ ABACα、 QABACα、 ⊨ABACα〉组成。其中
- Γ ABACα是所有状态的集合。其中每个状态 γABACα ∈ Γ ABACα 由 〈Uγ、Sγ、Oγ、UA、SA、OA、uavtf、savtf、oavtf、P、SubCreator〉 表征,Uγ、Sγ、Oγ分别表示在状态 γ 中的用户集合、主体集合和对象集合。
- Ψ ABACα 是状态转换规则的集合,这些规则均为表3中定义的 ABACα 操作。
- QABACα 是查询集合,类型如下:
1. 授权查询 Authorizationp(s, o),其中 p ∈PABACα,s ∈SABACα, o ∈OABACα。
2. 约束子条件 ConstrSub(u, s, savt),其中 u ∈UABACα, s∈/S ABACα, savt ∈SAVTABACα。
3. 约束子修改 ConstrSubMod(u, s, savt),其中 u ∈UABACα, s ∈SABACα, savt ∈SAVTABACα。
4. 约束对象 ConstrObj(s, o, oavt),其中 s ∈SABACα, o∈/OABACα, oavt ∈OAVTABACα。
5. 约束对象修改 ConstrObjMod(s, o, oavt),其中 s ∈SABACα, o ∈OABACα, oavt ∈OAVTABACα。
- 蕴含 ⊨ 表示给定一个状态 γ ∈ Γ ABACα 和一个查询 q ∈QABACα, γ ⊨ q 当且仅当 q 在状态 γ 中返回真。
5.2 UCONfinite preA方案
一个UCONfinite preA方案由 〈Γ UCONfinite 预A、 Ψ UCON finite 预A、 QUCON finite 预A、 ⊨UCONfinite 预A 〉组成,如下所示。
- Γ UCONfinite preA 是所有状态的集合,其中每个状态 γUCON finite preA ∈ Γ UCON finitepreA 由 〈OSγ Δ, UR, AT T, AV T, avtf〉 表征。这里 OSγΔ 是状态 γ 中的对象模式。
- Ψ UCON finite preA 是状态转换规则的集合,这些规则是表6和表7中定义的UCONfinite preA的创建命令和非创建命令的集合。
- QABACα 是查询的集合,包含以下类型:
1. CheckPCNCR(ucr, avtf(s) avtf(o), avt1, avt2),其中 ucr ∈UC, r ∈UR, s 和 o 是 UCONfinite preA 对象。
2. 检查 PCCR(ucr, avtf(s) avt1, avt2),其中 ucr ∈UC, r ∈UR, s 是一个 UCON finite preA 对象。
- 蕴含 ⊨ 指定在给定状态 γ ∈ Γ UCON finite preA 和查询 q ∈Q UCON finite preA 的情况下, γ ⊨ q 当且仅当 q 在状态 γ 中返回真。
5.3 从ABACα到UCON finite preA(σABACα)的映射
-
将 Γ ABAC α映射到 Γ UCON finite 预A
• 对象模式(OSΔ)、对象属性集(ATT)和使用权限集(UR)的映射见表5 -
ΨABAC α到 Ψ UCONfinite 预A 的映射
• σ(访问p) = 访问UCON有限预A r其中 r = p.
• σ(CreateSubject(u, s, savt))= CreateSubject ijd(s, o), i= uavtf(u) 且 j = savt。
• σ(删除主题(u, s)) = DeleteSubjectd(主体s, 客体o).
• σ(ModifySubjectAtt(u, s, savt)) =ModifySubjectAtt ijkd(s, o),其中 i = uavtf(u) 且 j = savtf(s) 且 k = savt。
• σ(创建对象(s, o, oavt)) = CreateObject ij d(s, o), i = savtf(s) 且 j = oavt。
• σ(ModifyObjectAtt(s, o, oavt)) =修改对象属性 ijkd(s, o),其中 i = savtf(s) 且 j = oavtf(o) 且 k = oavt。 -
QABACα到 QUCON finite preA的映射如下所示
• σ(授权p(s, o)) =检查PCNCR( 访问p, avtf(s), avtf(o), avtf(s), avtf(o))。
• σ(ConstrSub(u, s, savt)) =检查PCCR( 创建主体 ij d, avtf(s), 客体o, avtf(s), 〈主体, 空, u, 假, 空,…, 空, savt1, … savtn, 空,…, 空 〉) 其中 i = uavtf(u) 且 j = savt。
• σ(ConstrSubMod(u, s, savt))=检查PCNCR( 修改主题属性 ijkd, avtf(s), avtf(o), avtf(s), 〈savt1, … savtn〉),其中 i = uavtf(u),j = savtf(s) 且 k = savt。
• σ(ConstrObj(s, o, oavt)) =检查PCCR( 创建对象 ij d, avtf(s), 客体o, avtf(s), 〈对象, 空, 空, 空, 空,…, 空, 空,…, 空, oavt1, … oavtp〉) 其中 i = savtf(s) 且 j = oavt。
• σ(ConstrObjMod(s, o, oavt))=检查PCNCR(ModifyObjectAtt ijkd, savtf, avtf(o), savtf, 〈oavt1, … oavtp〉),其中 i = savtf(s),j = oavtf(o) 且 k = oavt。
5.4 证明σABACα是状态匹配的
证明上述映射是状态匹配约简的过程冗长且繁琐。在此,我们给出主要论证的概要。
引理1。
σABACα满足定义5中状态匹配约简的断言1。
证明.(概要):
断言1要求,对于每个 γABACα ∈ Γ ABAC α 和每个 ψABACα ∈ Ψ ABACα, 〈γABACα, ψABACα〉= σ(〈γABACα, ψABACα〉) 具有以下性质:
对于方案ABACα中的每一个 γABACα 1 ,若满足 γABACα ∗ →−ψ ABAC α γABACα 1 ,则存在一个状态 γ UCON finite 1 preA使得
1. γUCON finite 预A (=σ(γABACα)) ∗ →−ψ UCON finite preA (=σ(ψ ABAC α)) γ UCON finite 1 预 A。
2. 对于每个查询 q ABAC α ∈ Q ABAC α, γ ABAC α 1 ⊨ABACα q ABAC α当且仅当 γ UCON finite 预A 1 ⊨UCON finite 预A σ(q ABAC α)。
它可以分解为两个方向:(a)“如果”方向:γ UCON finite 预A 1 ⊨UCON finite 预A σ(q ABAC α) => γ ABAC α 1 ⊨ABACα q ABAC α。
(b) “当且仅当”方向: γABACα 1 ⊨ABACα qABACα=> γUCON finite preA 1 ⊨UCONfinite preA σ(qABACα)。
证明通过对γABACα →−∗ψABACα γABACα 1中的步骤数n进行归纳法完成。
引理2。
σABACα满足定义5中状态匹配约简的断言2。
证明.(概要):
断言2要求,对于每个γABACα ∈ Γ ABACα和每个 ψABACα ∈ Ψ ABACα, 〈γABACα,ψABACα〉= σ(〈γABACα,ψABACα〉)具有以下性质:
对于方案UCONfinite preA中的每个 γUCON finite 1 preA ,若 γUCONfinite pre A(=σ(γABACα)) ∗ →−ψUCON finite preA(=σ(ψABACα)) γUCON finite 1 , preA成立,则存在一个状态 γABACα 1 ,使得
1. γABACα →−∗ψABACα γABACα 1 。
2. 对于每个查询 qABACα ∈ QABACα, γABACα 1 ⊨ABACα qABACα当且仅当γUCON finite preA 1 ⊨UCONfinite preA σ(qABACα)。
它可以分解为两个方向:(a)“如果”方向:γUCON finite preA 1 ⊨ABACα σ(qABACα) => γABACα 1 ⊨ABACα qABACα。
(b)“仅当”方向:γABACα 1 ⊨ABACα qABACα=> γUCON finite preA 1 ⊨UCONfinite preA σ(qABACα)。
证明通过对 γUCON finite preA(= σ(γABACα)) 中的步骤数 n 进行归纳完成 ∗ →−ψ UCONfinitepreA(=σ(ψABACα)) γUCONfinite preA 1.
定理1.
σABACα是一个状态匹配约简。
证明。
引理1表明 σABACα满足定义5中的断言1,且引理2表明 σABACα满足定义5中的断言2。根据定义5, σABACα是状态匹配约简。
定理2.
ABACα的<安全性>是<可判定的>。
证明。
UCON的finite preA安全性是可判定的[7]。定理1证明了存在一个从ABACα到UCONfinite preA的状态匹配约简。状态匹配约简保持安全属性[9]包括安全性。
6 结论
本文给出了从ABACα到UCON finite preA 的状态匹配约简。UCONfinite preA 的安全性是可判定的[7],且状态匹配约简保持包括安全性在内的安全属性[9]。因此,ABACα的安全性是可判定的。
5

被折叠的 条评论
为什么被折叠?



