97、基于角色的访问控制中的集合覆盖问题

基于角色的访问控制中的集合覆盖问题

在基于角色的访问控制(RBAC)中,集合覆盖问题有着重要的应用。下面我们将探讨几个相关的问题及其计算复杂性。

1. 基础概念
  • 对于 RBAC0 模型的实例 $(R, P, PA)$ 和集合覆盖问题的实例 $(X, C)$,这里规定 $P$ 等同于 $X$,${Prms(r, PA) : r ∈R}$ 等同于 $C$。前提是每个角色至少被分配了 $P$ 中的一个权限,且每个权限至少被分配给了 $R$ 中的一个角色。当 $PA$ 从上下文可知时,我们会简单地写成 $Prms(r)$ 和 $Prms(S)$。
  • 给定 $Q ⊆P$,$K(Q)$ 包含那些包含在 $Q$ 内的权限集合,即 $K(Q)$ 等同于那些仅被授权访问 $Q$ 中权限的角色。类似地,$S(Q)$ 等同于那些被授权访问 $Q$ 中至少一个权限的角色。
2. 跨域角色映射问题(Inter - domain Role Mapping Problem)
  • 问题定义
    • IDRM 问题 :给定 $R$、$P$、$PA ⊆P × R$ 和 $Q ⊆P$,找到 $S ⊆R$ 使得 $Prms(S) = Q$ 且 $|S|$ 最小。不过很多情况下该问题可能无解。
    • 初步 IDRM 问题 :给定 $R$、$P$、$PA$ 和 $Q ⊆P$,是否存在 $RQ ⊆R$ 使得 $Prms(RQ) = Q$?此问题可在多项式时间内判定,通过判断 $Q = ker(Q)$ 来回答,若成立则 $RQ = K(Q)$。
    • 精确 IDRM 决策问题 :给定 $R$、$P$、$PA$、$Q ⊆P$、$RQ ⊆R$ 使得 $Prms(RQ) = Q$ 以及一个整数 $k$,是否存在 $S ⊆RQ$ 使得 $Prms(S) = Q$ 且 $|S| ⩽k$。
    • 精确 IDRM 优化问题 :给定 $R$、$P$、$PA$、$Q ⊆P$ 和 $RQ ⊆R$ 使得 $Prms(RQ) = Q$,找到 $S ⊆RQ$ 使得 $Prms(S) = Q$ 且 $|S|$ 最小。
  • 计算复杂性
    • 精确 IDRM 决策问题与集合覆盖决策问题相同,所以它是 NP - 完全问题,精确 IDRM 优化问题是 NP - 难问题。而且,最小化 $|S|$ 似乎没有充分的理由。
  • 衍生问题
    • IDRM - 安全问题 :给定 $P$、$R$、$PA$ 和 $Q ⊆P$,找到 $S ⊆R$ 使得 $Prms(S) ⊆Q$ 且 $|Prms(S)|$ 最大。该问题的目标是确保 $S$ 中的角色不被授权访问 $Q$ 之外的权限,同时尽可能多地授权 $Q$ 中的权限。
    • IDRM - 可用性问题 :给定 $P$、$R$、$PA$ 和 $Q ⊆P$,找到 $S ⊆R$ 使得 $Prms(S) ⊇Q$ 且 $|Prms(S)|$ 最小。此问题要保证 $Q$ 中的所有权限至少被 $S$ 中的一个角色授权,同时最小化 $S$ 被授权的额外权限数量。
    • 定理 3 :IDRM - 安全问题属于 $P$ 类,IDRM - 可用性问题是 NP - 难问题。这是因为根据命题 1,存在完美覆盖的 $Q$ 的最大子集是 $ker(Q)$,可在多项式时间内计算,所以 IDRM - 安全问题属于 $P$ 类。对于 IDRM - 可用性问题,我们可以将最小覆盖问题在多项式时间内转化为 IDRM - 可用性问题。
3. 用户授权查询问题(User Authorization Query Problem)
  • 问题定义 :给定 $P$、$R$、$PA$ 和 $(Pl, Pu, obj)$,其中 $Pl, Pu ⊆P$ 且 $obj ∈{max, min}$,找到 $S ⊆R$ 满足:
    • 若 $obj = max$,则 $Pl ⊆Prms(S) ⊆Pu$ 且 $|Prms(S)|$ 最大。
    • 若 $obj = min$,则 $Pl ⊆Prms(S) ⊆Pu$ 且 $|Prms(S)|$ 最小。
  • 问题分析
    • 我们可以把问题重述为找到 $Q ⊆P$ 使得 $Q$ 能被完美覆盖且 $Pl ⊆Q ⊆Pu$,然后通过计算 $S = K(Q)$ 找到解决 UAQ 问题的 $S$。
    • 我们能在多项式时间内计算 $ker(Pu)$,并且对于任何解 $Q$,根据命题 1 有 $Q ⊆ker(Pu)$。此时需要考虑三种情况:
      • $Pl ⊆ker(Pu)$ 且 $obj = max$,此时可直接取 $Q = ker(Pu)$。
      • $Pl ⊆ker(Pu)$ 且 $obj = min$。
      • $Pl \nsubseteq ker(Pu)$,这种情况下找不到满足条件的 $Q$。
    • 实际上,只有 $(Pl, Pu, min)$ 形式的问题不能在多项式时间内回答。
  • 定理 4 :UAQ 问题和容器优化问题是多项式时间图灵等价的。证明步骤如下:
    • 从 UAQ 到容器优化的多项式时间图灵归约:我们要找到最小的 $Q$ 使得 $Q$ 被完美覆盖且 $Pl ⊆Q ⊆ker(Pu)$。定义 $Rnew = {r ∈R : Prms(r) ⊆Pu}$ 和 $Pnew = ker(Pu)$,那么回答 UAQ 实例只需回答 $X = Pnew$、$V = Pl$ 和 $C = {Prms(r) : r ∈Rnew}$ 的容器优化实例。
    • 从容器优化到 UAQ 的多项式时间图灵归约:使用之前在定理 3 证明中用过的明显转换即可。
4. 职责分离问题(Separation of Duty)
  • 问题定义
    • SSoD 可执行性决策问题 :给定 $P$、$R$、$PA$、$Q ⊆P$ 和一个整数 $k$,是否存在 $S ⊆R$ 使得 $Prms(S) ⊇Q$ 且 $|S| ⩽k$?
    • SSoD 可执行性优化问题 :给定 $P$、$R$、$PA$ 和 $Q ⊆P$,找到 $S ⊆R$ 使得 $Prms(S) ⊇Q$ 且 $|S|$ 最小。
    • RSSoD 生成问题 :给定 $P$、$R$、$PA$ 和 $Q ⊆P$,找到所有 $S ⊆R$ 使得 $Prms(S) ⊇Q$ 且对于任何 $S′ ⊂S$,$Prms(S′) \nsubseteq Q$。
  • 问题分析
    • 这些问题只关注 $Q$ 的覆盖情况,我们可以简单地令 $X = Q$ 和 $C = {Prms(r) ∩Q : r ∈S(Q)}$。
    • SSoD 可执行性决策问题 :等同于集合覆盖决策问题,所以是 NP - 完全问题。
    • SSoD 可执行性优化问题 :有两个重要原因值得关注。一是我们想知道集体授权访问 $Q$ 的最小用户数量,以评估是否违反企业安全策略或法定要求;二是该问题之前被 Zhang 和 Joshi 研究过。此问题等同于集合覆盖优化问题,是 NP - 难问题。
    • RSSoD 生成问题 :等同于不可约覆盖枚举问题,是 NP - 难问题。
  • 定理 5 :SSoD 可执行性决策问题是 NP - 完全问题;SSoD 可执行性优化问题和 RSSoD 生成问题是 NP - 难问题。
5. 问题复杂度总结
问题名称 等效集合覆盖问题 复杂度类别
初步 IDRM $V ∈PCov? (即 V = ker(V)?)$ $P$
精确 IDRM 决策 集合覆盖决策 NP - 完全
精确 IDRM 优化 集合覆盖优化 NP - 难
IDRM - 安全 计算 $ker(V)$ $P$
IDRM - 可用性 最小覆盖 NP - 难
SSoD 可执行性决策 集合覆盖决策 NP - 完全
SSoD 可执行性优化 集合覆盖优化 NP - 难
UAQ 容器优化 NP - 难
RSSoD 生成 不可约覆盖枚举 NP - 难

下面我们来看这些问题在算法层面的一些探讨。

6. 算法相关探讨
  • 最小覆盖问题 :该问题是 NP - 难的,不太可能存在能在多项式时间内计算出精确解的算法。不过我们可以设计一个简单的算法,考虑 $C$ 的每个可能子集来计算最小覆盖问题的精确解。
  • 贪心算法 :有一个著名的“贪心”算法可以在多项式时间内为集合覆盖优化问题计算出一个较好的近似解。该迭代算法按顺序从 $C$ 中选择元素,在第 $i$ 次迭代时选择 $Ci ∈C$ 使得 $|Ci ∩Vi−1|$ 最大,其中 $Vi−1$ 是在第 $(i - 1)$ 次迭代后仍未被覆盖的 $V$ 的成员。这里 $|Ci ∩Vi−1|$ 是选择 $Ci$ 的“收益”度量。该方法的扩展可用于计算加权集合覆盖问题的近似解。
  • IDRM - 可用性问题的近似算法 :我们之前基于加权集合覆盖问题的贪心算法提出了一个近似算法。给定 $X$、$C$ 和 $V ⊆X$,定义了“成本”函数 $\gamma : C →R+$ 和“收益”函数 $\beta : C →R+$,其中:
    • $\gamma(C) = |C| · |C \ V | + \frac{1}{|V|}$
    • $\beta(C) = |Vi−1 ∩C|$
    • 然后定义了一个迭代算法,在第 $i$ 次迭代时选择 $Ci ∈C$ 使得 $\gamma(Ci)/\beta(Ci)$ 最小。不过我们没有为该算法提供理论依据,也未进行实验来验证其近似解的质量。
  • 算法扩展 :对上述算法的一个自然扩展是在每次迭代时重新计算成本函数 $\gamma_i$。具体来说,定义 $\gamma_i(C, Ti−1) = |C| · |C \ Ti−1|$,并将“目标”$T0$ 初始化为 $V$。在第 $i$ 次迭代时:
    1. 选择 $Ci ∈C$ 使得 $\gamma_i(Ci, Ti−1)/\beta_i(Ci)$ 最小。
    2. 将目标 $Ti$ 扩展为包含 $Ci$ 中的新元素,即 $Ti = Ci ∪Ti−1$。
      这种方法的优势在于选择 $C$ 时将 $V$ 扩展到 $V ∪C$,可能可以选择 $C′$ 来覆盖 $V$ 的其他元素而不包含 $V ∪C$ 之外的元素。

我们计划使用上述不同的成本函数开发不同的算法,并进行实验来测试这些算法生成的近似解的质量。之后希望为实验中得到的最佳算法建立一个近似比率。具体来说,设 $D ⊆C$ 是近似算法返回的 $V$ 的一个覆盖,我们将 $D$ 的质量定义为 $|UD|$。算法的近似比率表明该算法返回的近似解的质量与精确解的质量之比受 $|C|$ 和 $|V|$ 的某个函数的限制。

基于角色的访问控制中的集合覆盖问题

7. 算法实验与优化展望

我们计划开展一系列实验来评估不同算法生成的近似解质量。以下是具体的实验规划和优化思路:
- 实验设计
1. 算法选择 :使用前面提到的贪心算法、IDRM - 可用性问题的近似算法以及其扩展算法。
2. 数据集准备 :准备不同规模和特征的数据集,包括不同的 $X$、$C$ 和 $V$ 组合,以模拟各种实际场景。
3. 指标设定 :以近似解的质量 $|UD|$ 作为主要评估指标,同时记录算法的运行时间。
- 实验流程
mermaid graph LR A[准备数据集] --> B[选择算法] B --> C[运行算法] C --> D[记录结果] D --> E{是否完成所有数据集?} E -- 否 --> B E -- 是 --> F[分析结果]
- 优化方向
- 成本函数优化 :尝试不同形式的成本函数,以找到能更好平衡覆盖效果和额外覆盖元素数量的函数。
- 迭代策略调整 :探索更智能的迭代策略,例如根据已覆盖元素的分布动态调整选择标准。

8. 不同问题的解决思路总结

为了更清晰地展示不同问题的解决思路,我们将相关信息整理如下:
| 问题类型 | 解决思路 | 复杂度 |
| — | — | — |
| 初步 IDRM 问题 | 判断 $Q = ker(Q)$,若成立则 $RQ = K(Q)$ | $P$ |
| 精确 IDRM 决策问题 | 与集合覆盖决策问题等价,通过转换问题求解 | NP - 完全 |
| 精确 IDRM 优化问题 | 与集合覆盖优化问题等价,可使用贪心算法求近似解 | NP - 难 |
| IDRM - 安全问题 | 计算 $ker(Q)$,找到最大子集 | $P$ |
| IDRM - 可用性问题 | 可使用基于加权集合覆盖问题的贪心算法及其扩展算法求近似解 | NP - 难 |
| 用户授权查询问题(UAQ) | 分情况讨论,根据 $Pl$、$Pu$ 和 $obj$ 的关系求解,与容器优化问题等价 | NP - 难 |
| SSoD 可执行性决策问题 | 等同于集合覆盖决策问题 | NP - 完全 |
| SSoD 可执行性优化问题 | 等同于集合覆盖优化问题,关注最小用户数量 | NP - 难 |
| RSSoD 生成问题 | 等同于不可约覆盖枚举问题 | NP - 难 |

9. 实际应用中的考虑因素

在实际应用基于角色的访问控制中的集合覆盖问题解决方案时,需要考虑以下因素:
- 性能要求 :对于实时性要求较高的系统,如在线交易系统,需要选择复杂度较低的算法,如贪心算法,以保证系统的响应速度。
- 数据规模 :当数据规模较大时,精确求解可能会导致性能瓶颈,此时应优先考虑近似算法。
- 安全策略 :不同的安全策略可能对问题的求解产生影响,例如某些安全策略可能要求最小化授权的角色数量,这就需要在算法选择和优化时加以考虑。

10. 总结与未来工作

本文深入研究了基于角色的访问控制中的集合覆盖问题,包括跨域角色映射问题、用户授权查询问题和职责分离问题等。通过分析这些问题的计算复杂性,我们发现大部分问题属于 NP - 完全或 NP - 难问题,这意味着在实际应用中很难找到精确解。因此,我们介绍了一些近似算法,并计划通过实验进一步优化这些算法。

未来工作主要集中在以下几个方面:
- 算法优化 :继续探索更高效的近似算法,通过调整成本函数和迭代策略提高算法性能。
- 实验验证 :进行大规模实验,验证算法在不同场景下的有效性和稳定性。
- 近似比率建立 :为实验中得到的最佳算法建立近似比率,以便更好地评估算法的性能。

总之,基于角色的访问控制中的集合覆盖问题在实际应用中具有重要意义,通过不断优化算法和实验验证,我们有望找到更合适的解决方案,满足不同场景的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值