【学习笔记】网络安全设计权威指南(三)
第9章 可信赖的硬件:基石


9.1 信任的基础
可信赖性需要关键的安全功能和保证,以便功能正常运行。该功能必须创建一种分离计算和内存访问的方法。指令集架构至少分为两种独立模式:普通用户模式和监管模式。必须标记内存,以便限制对该内存的访问。
访问监测的三个属性:完整性、防篡改的和不可绕过的。
9.4 内存控制:映射、能力和标记
9.4.1 内存映射: 监管模式的进程对其专有内存进行单独和排他的访问。
9.4.2 能力:当程序需要共享内存时,可要求OS为该内存创建一个不可伪造的票据,该票据命名此内存段并说明允许的访问类型。程序可将该票据传递给另一个程序,授权访问该页面。此票据称为能力。
9.4.3 标记:名义上存储器可用元数据标记,该数据指示如何控制对该存储器中数据内容的访问。
9.5 硬件中的软件
9.5.1 微代码:实际上是一种小型操作系统和集成的应用程序,位于处理器的核心。
9.5.2 固件:处理器外有代码可帮助下协调计算机主板上其他集成电路和洗牌,这种代码有时称为固件。固件代表了系统的软肋,并可能以令人惊讶的方式受到攻击并破坏系统安全。
9.5.3 安全引导
供应商对内部低级软件进行签名,然后可在加载和执行该低级系统软件前通过硬件检查。
9.6 总线和控制器
每个设备控制器都有自己的处理器,这些处理器由自己的微代码驱动执行嵌入式操作系统和嵌入式应用系统,从而真正控制设备。
9.7 总结如下:
(1)如果不能信任硬件,则信任软件所需的任何工作都是徒劳的。
(2)复杂和精简的指令集架构都支持可信赖性。
(3)处理器不间断的特权模式构成可信赖的软件的基础。
(4)必须使用内存映射和能力之类的技术保护内存。
(5)硬件使用一些软件驱动运行,引发了鲜为人知的网络安全风险。
(6)在计算机内部,设备通常在称为主总线的小型网络上自由通信。
第10章 密码术:锋利而脆弱的工具
小结:
(1)密码术使用密钥保护数据,只有预期的用户才能读取。
(2)密码强度和密钥空间大小有关,密钥空间大小和密钥长度相关。
(3)密钥必须从密钥空间随机生成,这是非常困难的。
(4)密钥必须安全分发给加密数据预期的接收者。
(5)公钥加密使实时生成和使用密钥成为可能。
(6)公私密钥对使获得公钥而不泄露私钥成为可能。
(7)拥有私钥是证明身份的有效方式。
(8)密码术使用数字签名在传输或存储时保护数据完整性。
(9)技术的进步会使密码术变弱并产生不确定性。
(10)密码术是有用的工具,但若使用不当,比不用更糟糕。
嵌入弱保护系统中的强密码术是浪费时间。
(11)密码算法设计的高复杂度决定了生手无法完成。
第11章 身份验证
身份验证包括六个阶段:
(1)实体身份标识 -->(2) 身份认证 -->(3)身份识别-->(4)身份声明-->(5)身份证明-->(6) 身份注销

11.1 实体身份标识(Entity Identification):是一个注册过程。系统注册员是一个特别任命、受过训练并拥有特权的岗位,通过生成每个人独有的识别数据证明人员的身份。唯一标识可以是秘密口令,也可以是私钥。
11.2 身份认证(Identity Certification):
有三种唯一标识模式:
(1)你所知道的(口令、私钥)
(2)你所拥有的(物理身份验证令牌)
(3)你是什么(生物特征)。每种方法都有其弱点。
存在三个弱点:
(1) 容错率必须设置的足够高;
(2)重放攻击
(3)注册问题。生物识别装备可能遭到欺骗。
11.3 身份识别(Identity Resolution)
前三个步骤可以称为初始化、设置或注册流程。
11.4 身份声明(Identity Assertion)和身份证明(Identity Proving)(代表身份运营阶段)
11.5 身份注销(Identity Decertification )
11.6 机器间身份验证链
用户进程代表用户操作,称为用户代理(Proxy)。
代理链存在一定的风险。
小结:
(1)人机身份验证(登录)与机器间身份验证相连,在用户和系统服务之间建立信任链。
(2)拥有私钥的证据证明与私钥关联的身份。
(3)六个身份验证阶段是实体身份标识、身份认证、身份识别、身份声明、身份证和身份注销。
(4)实体身份标识使用三种唯一识别模式:“你所知道的”(如口令)、“你所拥有(如身份验证令牌)和“你是什么”(如生物特征)。
(5)“你所知道的”模式用口令表示,较弱。
(6)多因素身份验证结合了多种模式,提高了身份验证的强度。
(7) 证明身份就是证明通过质询-响应操作拥有私钥。
(8)当人员离开组织时,必须迅速且彻底地完成身份注销。
第12章 授权
12.1 访问控制
12.1.1 自主访问控制 Discretionary Access Control, DAC
访问控制矩阵项由对客体具有所有权的用户自行决定,称为DAC。
Unix系统实现的一个解决方案时创建三类访问:User、Group和World
DAC有个问题就是无法控制敏感数据的传播。所以容易受到木马攻击。
12.1.2 强制访问控制 Mandatory Access Control, MAC
MAC针对DAC的弱点而引入。首先要求所有数据都用适当的敏感度标记。这些敏感性标签(Sensititivity Label)称为元数据,是关于其他数据的数据。敏感性是一种元数据。
预定水平的用户不能创建比敏感度标签低的客体。此规则防止自主访问控制中存在的敏感数据传播问题。
多级安全是强制访问控制策略的一个示例,和多级完整性和类型强制一样。
在多级安全中,不下写(No write down)防止用户将机密信息暴漏给未经许可的用户。
不上读(No read up)防止用户读取超过安全许可水平的机密信息。
MAC的问题是其并非具有很细的力度。可将敏感度标签从严格层次结构扩展至安全网格。

12.1.4 基于身份的访问控制
| 访问规则基于什么 | 谁决定访问 | |
| 用户/所有者 | 系统 | |
| 身份 | 基于身份的DAC | 基于身份的MAC |
| 属性 | 基于属性的DAC | 基于属性的MAC |
12.1.5 基于属性的访问控制
与用户的属性关联必须具有高度完整性,因此属性和关联都不能由用户自行修改。
12.2 属性管理
向用户分配和收回属性的授权是一项高特权功能,授予对大量敏感数据集的访问权限。
属性数据及其与每个用户的关联必须具有最高的完整性,对属性数据的成功攻击可能让攻击者完全访问系统资源。
所以属性分配系统必须:
(1)高度可靠正确履行职责
(2)不可绕过
(3)防篡改
(4)需要对创建属性的用户进行强身份认证
(5)需要对分配属性的用户进行强身份认证
(6)在于其他可信赖的实体通信时,需要强大的身份认证和高度的完整性
(7)确保其属性数据的语法正确
(8)确保其属性数据的语义正确
12.2.4 属性验证
属性验证包括 1)语法有效性;2)语义有效性 3)时效性
12.2.5 属性分发 公钥可被看作时用户属性
12.3 数字策略管理
必须证明总是调用策略决策
12.4 授权使用方案
授权服务必须集成到保护所有需要保护的系统资源的所有子系统重,这意味这组织必须:
(1)确定需要保护的资源
(2)用保护子系统封装这些资源
(3)证明该保护子系统的访问监测属性
(4)适当整合远程或本地决策
(5)正确设计和实施策略执行
(6)确保身份来源可靠、渠道安全。
授权过程再失败时应有后备机制。
12.5 小结
总结如下:
(1)自主访问控制有用,但无法有效防止敏感数据泄露。
(2)强制访问控制基于用户和数据属性的规则确定访问,但也可能需要更细粒度的控制。
(3)基于身份的访问控制提供细粒度的控制,但可能无法管理。
(4)基于属性的访问控制以牺牲粒度为代价提供可扩展的访问控制。
(5)属性管理是一项安全关键功能,因为属性驱动策略决策。
(6)时效性确保分布式属性和策略数据保持最新。
(7)数字策略是一套管理资源访问的规则。
(8)与属性一样,策略也有一个需要管理的生命周期。
(9)将数字策略的运行分为决策过程和执行过程。
(10)这种分离有助于在不必更改软件的情况下更新策略。
(11)策略决策和执行至关重要,必须符合访问监测属性。
(12)将授权集成到保护子系统中有很多选择。
更多推荐
所有评论(0)