和Flask的对比
框架名称 结果 对比内容 |
GFAC |
Flask |
DAC |
支持 |
不支持 |
MAC |
支持 |
支持 |
多安全策略 |
支持 |
支持 |
动态安全策略 |
不支持 |
支持 |
框架实现的难度 |
较复杂 |
一般 |
策略对决策实施的影响 |
无 |
无 |
对系统性能的影响 |
影响较大 |
影响较小 |
详细分析
Flask体系结构主要用于实现动态安全策略,其主要的操作包括决策检索、对象标记及策略的更新。对于这三部分,下文会依次进行详细介绍。
Flask体系结构支持动态安全策略,然而无论采用何种安全策略,目的均是为了限制主体对客体的访问,所以该体系结构中最重要的操作为对象的标记和决策的检索。图2-1描述了这两个操作的实现过程,下面对该过程分别进行简单的描述:
1. 对象的标记
当主体创建客体时,对象管理器会将创建客体的主体的SID、相关客体的SID和客体的类型传递给安全服务器,安全服务器在接收到这些数据后对其进行处理,从而为新建的客体生成一个安全上下文并将其转化为SID,然后将其返回给对象管理器,对象管理器获得该SID后将其与相应的客体进行绑定。
2. 决策的检索
当主体对客体进行访问时,客体管理器会收集主体的SID、客体的SID以及客体类别,并根据其在AVC中进行查找,如果找到,则根据相应的安全决策进行处理;反之客体管理器会将主体的SID、客体的SID以及客体的类别传递给安全服务器,安全服务器根据这些数据及相应的安全策略进行计算,从而得到相应的访问向量,然后将其返回给客体管理器,同时将该访问向量存放到AVC。

图2-1 动态安全策略内部函数调用关系图返回搜狐,查看更多