《Windows Internals》第六版 Chapter 6 Security 笔记
《Windows Internal》是一本好书,以前读过这本书的第四版,而如今 Windows 10 都要正式发布了。在之前写《我所理解的马》这篇博客时,我发现自己无法回答自己提出的一些问题。原因很简单那,就是对 Microsoft 在 Windows 中新引入了一些机制不太清楚,所以重读了这本书第6本这一章,做了一些笔记。
下面的笔记一方面是对书中相关内容的记录,但更多的是还是自己对一些新引入的一些安全机制(如 UAC)的理解,还有就是对书上一些讲解不太清楚的地方(比如,Windows 的完整性机制)的解释及相关知识的补充。
另外,这本书第6版的的本章内容是可以免费得到的,只不过是英文的。
第 6 章 安全性我们一直在学习 Windows 操作系统的安全机制,但好像从没思考过为什么操作系统需要安全机制或者操作系统的安全机制要保护的是什么?正所谓,不识庐山真面目,只缘身在此山中。应该说这个问题并不难回答。首先操作系统的安全机制要保护的是操作系统自身,防止用户无意间破坏系统,恶意程序破坏系统;其次操作系统的安全机制能够要保护一个用户的资源不会在这个用户没有对其他用户授予许可权的情况下被另一个用户访问。这两点就是操作系统的安全机制实现要达到终极目标。
另外,我们可以基于以上两点来比较下 Windows XP 和 Windows 7 在安全性方面的差距。
6.1 安全等级Windows 满足的 TCSEC 标准 C2 安全等级的关键需求:
安全的登录设施
自主的访问控制
安全审计
它提供相应的能力来检测和记录安全相关的事件,或者任何想要创建、访问或删除系统资源的意图。
对象重用保护
Windows 满足的 TCSEC 标准 B 类安全等级中的两个需求:
可信路径功能
它防止特洛伊木马程序在用户登录的时候能够截取到用户的用户名称和口令。
可信设施管理
它要求针对各种管理功能有单独的账户角色作为支持。
这些安全标准一方面是 Windows 安全机制(或者所有操作系统的安全机制)实现的基础,另一方面其实也说明了 Windows 操作系统安全机制的核心机制和思想。
另外,没事时可以深入了解下这些安全标准。
6.2 安全系统组件这小节,只能说看看就好,看不懂,记不住都没关系。
6.3 保护对象对象保护和访问日志记录是自主访问控制和审计功能的本质所在。这句话说的很精髓。
关于 Windows 的完整性机制,现在感觉不太清楚的一点是它的使用情景。虽然书上说它用来实现同一用户内的隔离,但感觉还是很模糊。但我觉得,我们也可以先不用关心这点,而是先明白它是如何发挥作用的。关于这点很简单,就是在系统确定调用者对一个对象的访问权时,除了进行原来的自主访问检查外,首先还要进行强制完整性检查,并且只有在强制完整性检查和自主访问检查都通过的情况下,调用者才能获取对对象的访问权。在搞清楚这一点的基础上,在考虑它的使用情景。
访问检查这小节涉及到的一些细节信息,即使不太明白,我们暂时也可以先不用关心。目前明白下面这一点就够了。
SRM 安全模型的本质是一个包含三项输入的等式。这三项输入是:一个线程的安全身份、该线程想要获得的对一个对象的访问权,以及该对象的安全设置。输出是“是”或“否”,表明了此安全模型是否授予该线程它所期望的访问权。
安全标示符(SID)Windows 使用 SID 来标识系统中执行各种动作的实体,如用户、本地用户组、域中的用户组、本地计算机、域、域成员和服务。
完整性级别下面这段话是 Windows 完整性机制实现的基本思想吧。
强制完整性控制(MIC,mandatory integrity contorl)机制通过把调用者关联到一个完整性级别,让 SRM 能够得到调用者自身属性的更详细信息。它给要访问的对象定义了一个完整性级别,从而指出了要访问该对象的调用者必须拥有的信任信息。
下面是关于 Windows 完整性机制的其他信息:
每个进程都在它的令牌中有一个完整性级别。
对象在它们的安全描述符中,也有一个完整性级别,保存在一个名为强制标签(mandatory label)的结构中。
所有的对象都有一个隐含的完整性级别,以避免要求用户手动指定。这个隐含的完整性级别是“中(medium)”级别。这样做,一方面是为了支持从老版本 Windows(它们的注册表键和文件都没有包含完整性级别信息)向新版本的迁移,另一方面也是为了方便应用程序开发人员。
什么是 强制策略(mandatory policy)?
感觉书上关于这部分的翻译太渣,下面是原文和我的翻译:
Apart from an integrity level, objects also have a mandatory policy, which defines the actual level of protection that’s applied based on the integrity-level check
除了拥有一个完整性级别,对象还有一个强制策略。强制策略定义了基于完整性级别检查的实际保护等级。
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68844.html
- 上一篇:C# string Spilt
- 下一篇:RESTful API设计实践