6.1 安全体系结构的含义及类型
安全体系结构的主要内容
(1) 详细描述系统中安全相关的所有方面。
(2) 在一定抽象层次上描述各个安全相关模块之间的关系。
(3) 提出指导设计的基本原理。
(4) 提出开发过程的基本框架及对应于该框架体系的层次结构。
安全体系总是按一定的层次结构进行描述,一般包括两个阶段:
① 系统开发的概念化阶段。
② 系统开发的功能化阶段。
安全体系结构在开发过程中必须扮演指导者的角色。
安全体系结构是一个概要设计,而不是系统功能的描述。
安全体系结构不应当限制不影响安全的设计方法,也就是说安全体系结构应该有模块化的特性。
安全体类型
抽象体系(abstract architecture)
抽象体系从描述需求开始,定义执行这些需求的功能函数。
定义如何选用这些功能函数及如何把这些功能有机组织成为一个整体的原理及相关的基本概念。
定义安全功能及它们提供的安全服务,确定系统实现安全的指导原则及基本概念。
通用体系(generic architecture)
通用体系的开发是基于抽象体系的决策来进行的定义了系统分量的通用类型及使用相关行业标准的,明确规定系统应用中必要的指导原则。
通用安全体系是在已有的安全功能和相关安全服务配置的基础上,定义系统分量类型及可得到的实现这些安全功能的有关安全机制。
分量与机制进行组合时因不兼容性而导致的局限性,或安全强度的退化必须在系统的应用指导中明确说明
特殊体系(specific architecture)
特殊安全体系要表达系统分量、接口、标准、性能和开销,它表明如何把所有被选择的信息安全分量和机制结合起来以满足我们正在考虑的特殊系统的安全需求。
信息安全分量和机制包括基本原则及支持安全管理的分量等。
逻辑体系(logical architecture)
逻辑体系就是满足某个假设的需求集合的一个设计,显示把一个通用体系应用于具体环境时的基本情况。
逻辑体系与特殊体系仅有的不同之处在于:
(1)特殊体系是使用系统的实际体系,而逻辑体系是假想的体系,是为理解或者其他目的而提出的。
(2)逻辑体系不是以实现为意图的,无须实施开销分析
(3)在逻辑安全体系中,逻辑设计过程往往伴随着对特殊体系中实现的安全分析的解释
6.2 安全体系结构设计的基本原则
从系统设计之初就考虑安全性
大系统开发实践经验表明,除非在系统设计的早期考虑了安全对系统的影响,否则最后设计出来的系统很少会获得有意义的安全性。
在考虑系统体系结构的同时就应该考虑相应的安全体系结构。
应尽量考虑未来可能面临的安全需求
系统要实施安全增强包括两方面的问题:
(1)改进系统原有的安全性。
(2)增加新的安全属性。
在安全体系结构的设计中考虑未来安全需求,应当注意以下3个方面:
(1) 不能把“预设的”安全问题定得太特殊,或太具体。
(2) 从适当的抽象层次来理解安全问题。
(3) 设计计划必须特别关注安全策略的定义。
隔离安全控制,并使其极小化
极小化系统内部设计中安全相关部分的复杂性及规模尺度。
设计必须注意以下几个方面:
(1) 并不是所有的从软件工程的角度看有效的设计原则都很好地适用于操作系统安全部分的设计。
(2) 尽管机制的经济性目标很难达到,但是系统中的安全相关机制还是应尽量简洁,易于确认,且相对独立。
(3) 数据隔离必须适度,不能走极端。
实施特权极小化
最小特权原理的基本点是: 无论在系统的什么部分,只要是执行某个操作,执行该操作的进程(主体)除能获得执行该操作所需的特权外不能获得其他的特权。
实施最小特权原理,可限制因错误软件或恶意软件造成的危害。
最小特权原理对于安全操作系统的主要:
(1) 与硬件机制相关的最小特权,硬件特权极小化
(2) 与软件相关的最小特权,软件特权极小化
(3) 最小特权的实施方法
(4) 最小特权总是包含用户行为及系统管理者行为
结构化安全相关功能
安全体系必须是: 安全控制是隔离的、极小化的、对安全相关的功能有一个清晰的且易于规范的接口。
使安全相关的界面友好
(1) 安全不应当对服从安全规则用户造成功能影响
(2) 给予用户访问应该是容易的
(3) 限制用户访问应该是容易的
(4) 建立合理的默认规则。
不要让安全依赖于一些隐藏的东西
系统安全体系的一个重要目标就是让安全避免依赖于系统安全机制的任何部分的保密
不能假设:系统不能被突破、用户是可信的等
6.4 Flask体系
Flask体系结构提供了策略的可变通性与广泛多样性
Flask系统的安全结构来源于以前的DTOS系统原型
Flask可变通性安全模式与访问控制通用框架(GFAC)是一致的
Flask目标:
(1)安全性(动态安全支持)
(2)保障能力(安全关键能力验证)
策略的可变通性
计算机系统抽象看成一个状态机:操完成从一个状态到另一个的转换
策略变化和动态的策略,需要撤销已有的授权
策略可变通的系统支持安全策略的广泛多样性
Flahk安全体系结构能够OS策略可变通性(微内核操作系统原型)
6.5 权能(capability)体系
权能体系的最大优点
(1)权能为访问客体和保护客体提供了一个统一的、不可绕过(noncircumventable)的方法,权能的应用对统筹设计及简化证明过程有重要的影响。
(2)权能与层次设计方法是非常协调的,从权能机制可以很自然地导致使用扩展型对象来提供抽象和保护的层次。
权能的一般概念
权能可以看成是对象(或客体)的保护名。不同的系统使用权能的方法可能差异极大,权能都具有如下的性质:
(1)权能是客体在系统范围使用的名字,也就是说它在整个系统中都是有效的,而且在整个系统范围内是惟一的。一个主体只有在具有客体所具有的权能的前提下才能访问该客体。
(2) 权能必须包含一部分用于决定该权能允许的对以它命名的客体的访问权,也就是说,这部分权能决定了对该客体进行访问必需的权利。
(3)权能只能由系统特殊的底层部分来创建,而且除了约束访问权外,权能不允许修改。拥有某个权能的主体有权把它作为参数移动、复制或传递。
(4)权能组成: 用于标识客体的标识符、定义客体类型的域及定义访问权的域。
为了阻止用户通过创建权能来获得非授权的访问权,对权能进行控制是必须的。获取这种控制的方法有两种:
(1)一直让权能存储在特殊的位置上,例如权能段和权能寄存器;
(2)在每个存储字后加上一个额外的标签比特,它必须是用户不能访问的。该方法避开了对权能如何存储、移动及拷贝的各种严格限制