首先,总的说来:整个安全性体系结构称为Flask,在 Flask 体系结构中,安全性策略的逻辑和通用接口一起封装在与操作系统独立的组件中,通用接口是用于获得安全性策略决策的。这个单独的组件称为安全性服务器,即使它只是个内核子系统而已。该服务器的 SELinux 实现定义了一种混合的安全性策略,由类型实施 (TE)、基于角色的访问控制 (RBAC) 和可选的多级别安全性 (MLS) 组成,所以广泛用于军事安全性中。
接下来是对flask体系结构的认识。
Flask有两个用于安全性标签的与策略无关的数据类型-- 安全性上下文和 安全性标识 。安全性上下文是表示安全性标签的变长字符串。安全性标识 (SID) 是由安全性服务器映射到安全性上下文的一个整数。SID 作为实际上下文的简单句柄服务于系统。它只能由安全性服务器解释。Flask 通过称为对象管理器的构造来执行实际的系统绑定。它们不透明地处理 SID 和安全性上下文,不涉及安全性上下文的属性。任何格式上的更改都不应该需要对对象管理器进行更改
安全性服务器只为包含用户、角色、类型和可选 MLS 范围合法组合的安全性上下文提供 SID。“合法性”是由安全性策略配置(将在本文的稍后部分介绍)所确定的。
一般来说,对象管理器查询安全性服务器以根据标签对(主体的和客体的)和对象的类获得访问决定。类是标识对象是哪一种类(例如,常规文件、目录、进程、UNIX 域套接字&#