一、GFAC(广义存取控制框架)的主要特点

1. 设计目标与核心思想

GFAC的设计目标是为多安全策略提供一个统一的表达与支持框架。其核心思想是将访问控制的实施(AEF)与决策(ADF)分离,从而实现策略的模块化与可配置性。这样用户可以根据需要选择并组合不同的安全策略模块,而无需修改系统底层实施逻辑。

2. 结构组成
  • AEF(访问控制实施部分):负责接收访问请求,并依据ADF的决策结果执行“允许”或“拒绝”操作。
  • ADF(访问控制决策部分):负责根据安全策略和元策略进行访问决策,参考ACI(访问控制信息)和ACR(访问控制规则)。
  • ACI(访问控制信息):包括主体与客体的安全属性,如用户身份、安全等级、角色等。
  • ACR(访问控制规则):形式化描述安全属性之间的关系,由权威机构制定。
3. 主要特点总结
  • 策略中立性:AEF与具体策略解耦,支持策略的动态添加与替换。
  • 多策略支持:可同时支持保密性、完整性等多种安全目标。
  • 形式化与可验证性:每个策略均可形式化描述,并可验证其正确实施。
  • 权威驱动:安全属性与规则由“权威”定义与管理,确保策略的集中控制。
  • 缺点:由于决策与实施的分离及多策略并行处理,系统性能开销较大,特别是在策略复杂时更为明显。

二、FLASK安全体系结构的主要特点

1. 设计背景与目标

FLASK是在DTOS基础上发展而来的多策略安全框架,旨在支持动态安全策略细粒度访问控制,特别强调权限实时撤回策略一致性维护

2. 核心架构

FLASK体系结构由两部分组成:

  • 客体管理器(Object Manager, OM):负责安全策略的执行与实施。
  • 安全服务器(Security Server, SS):负责安全策略的决策与策略逻辑维护。
3. 主要特点总结
  • 策略与实施分离:延续GFAC思想,但更强调动态性与实时性。
  • 支持细粒度访问控制:可控制到文件、进程、网络端口等系统资源。
  • 支持动态策略更新与权限撤回:系统能在运行时更新策略并实时撤销已授权限。
  • 支持多实例化:可根据用户安全级别动态创建资源的不同实例(如不同安全级别的/tmp目录)。
  • 标识机制灵活:使用SID(安全标识符)与安全上下文分离,既保证效率又支持策略语义。
  • 缓存机制高效:通过AVC(访问向量缓存)缓存决策结果,减少对SS的频繁查询。
  • 广泛应用于SELinux:FLASK成为SELinux等现代安全系统的核心架构。

三、FLASK体系结构中OM与SS的基本组成与作用

1. 客体管理器(OM)的组成与作用

OM是策略的执行者,负责在系统调用级别实施访问控制。其基本组成包括:

组成部分 功能说明
访问决策接口 接收客户端访问请求,向SS或AVC查询是否允许访问。
标记决策接口 为新创建客体请求安全标识(SID),由SS决策后绑定。
多实例化决策接口 为多实例化资源选择对应安全级别的实例。
访问向量缓存(AVC) 缓存访问决策结果,提升系统性能,减少SS负载。
策略变更通知处理 接收SS发出的策略变更通知,更新本地状态并确保策略一致性。
2. 安全服务器(SS)的组成与作用

SS是策略的决策者与管理中心,其基本组成与作用如下:

组成部分 功能说明
策略决策引擎 根据策略逻辑(访问规则、标记规则、多实例化规则)进行访问控制决策。
SID与上下文映射表 维护SID与可变长安全上下文之间的映射关系。
新客体SID分配 为OM创建的新客体分配合适的SID。
成员客体SID分配 为多实例化资源中的成员分配合适的SID。
AVC控制机制 可向OM发送指令以清除或更新AVC缓存,确保策略一致性。
策略加载与更新接口 支持动态加载、更新安全策略数据库,并通知所有OM。
自身缓存机制 SS也可缓存决策结果,以提升响应速度。
3. OM与SS的协作流程示例

以创建文件为例:

  1. 用户请求创建文件 → OM向SS请求SID。
  2. SS根据标记规则确定安全上下文,返回对应SID。
  3. OM将SID绑定到新文件,后续访问时先查AVC,若无缓存则向SS发起访问决策请求。
  4. 若策略变更,SS通知OM更新AVC,确保后续访问符合新策略。

四、总结对比:GFAC vs FLASK

特性 GFAC FLASK
核心架构 AEF + ADF 分离 OM + SS 分离
策略支持 多策略静态组合 多策略动态支持
权限撤回 未强调 支持实时撤回
标识机制 属性与规则分离 SID + 安全上下文
缓存机制 未明确 AVC + SS缓存
典型应用 早期多策略系统 SELinux、现代安全操作系统
Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐