没有合适的资源?快使用搜索试试~ 我知道了~
第06章 - 访问控制1
需积分: 0 0 下载量 11 浏览量
2022-08-03
13:53:40
上传
评论
收藏 111KB PDF 举报
温馨提示
试读
16页
第 6 章 访问控制SJTU, Information Security Engineering Institute, A&D Lab第 6 章 访问控制Win
资源详情
资源评论
资源推荐
第 6 章 访问控制
SJTU, Information Security Engineering Institute, A&D Lab 1
第 6 章 访问控制
Windows 2000 的安全特性通过身份验证和授权这两种相互联系的机制,来控制对系统
和网络资源的访问和使用。访问控制则是实现第二阶段的功能,即确定一个已通过验证的用
户是否具有访问资源的正确权限。
6.1 访问控制概述
访问控制的目的是为了限制访问主体用户进程服务等对访问客体(文件、系统等)的访
问权限,从而使计算机系统在合法范围内使用。决定用户能做什么,也决定代表一定用户利
益的程序能做什么。访问控制的作用是对需要访问系统及其数据的用户进行鉴别,并验证其
合法身份,这也是进行安全审核等的前提。
与 Windows NT 4.0 相同,Windows 2000 使用访问控制技术来保证已被授权的主体对客
体的使用。在 Windows 2000 系统中,安全主体(Security Principal)不仅仅包括用户,还包
括组和服务等主动的实体;而客体则包括文件、文件夹、打印机、注册表、活动目录项以及
其他对象。访问控制技术即决定安全主体能够在对象上执行何种类型的操作,如某个用户是
否能够读取、写入还是执行某个文件。
6.2 访问控制机制
首先,从访问控制的主体角度出发,Windows 2000 系统在用户登录(无论是本地登录
还是远程登录)的时候,都会为该用户创建一个访问令牌(Access Token)。该访问令牌含有
该用户的 SID,用户所属组的 SID 和用户的特权。此令牌为用户在该计算机上的任何操作提
供了安全环境。
而当用户每启动一个应用程序时,所执行的每一个线程都会得到一份该访问令牌的复
本。作为用户的代理,每当线程请求对某个受到权限控制保护的对象进行任何级别的访问时,
该线程都要把此访问令牌提交给操作系统。然后操作系统就使用该令牌针对对象的安全信息
来执行访问检查。这种检查可以确保主体是在经过授权之后才进行访问的。
另一方面,从访问控制的客体角度出发,安全描述(Security Discriptor)定义了客体(被
访问的对象)的安全信息。安全描述中除了对象所有者自身的 SID 之外,主要说明了哪些
用户和组是被允许还是被拒绝访问。这通过一个由访问控制项(Access Control Entries, ACE)
组成的自由访问控制列表(DACL)来实现。Window 2000 系统通过寻找 ACL 中的项(即
ACE)来匹配访问令牌中的用户 SID 和组 SID,以此 ACE 来确定用户是否有权限进行所请
求的访问。图 6-1 描述了访问令牌与安全描述之间的关系。
第 6 章 访问控制
SJTU, Information Security Engineering Institute, A&D Lab 2
对于配置了安全审核(后续章节中将详细叙述)的对象来说,安全描述中另外还包含了
一个系统访问控制列表(SACL),用来通知安全子系统如何对访问对象的行为尝试进行审
核和记录。
6.2.1 安全标识符
Windows 2000 使用安全标识符(SID)来标识安全主体和安全组。SID 是在主体账户或
安全组创建时生成的。SID 的创建者和作用范围依赖于账户类型。对于用户账户,就由本地
安全授权机构(LSA)生成在该系统内惟一的 SID。而对于域账户则是由域安全授权机构来
产生 SID。活动目录把域账户 SID 当作该 SID 所标识的用户或组的一个对象属性来存储,
而域账户 SID 在域内是惟一的。
SID 出现在下列一些访问控制结构中:
z 访问令牌包括一个用户的 SID 和用户所属组的 SID
z 安全描述包含与安全描述相关联对象所有者的 SID
z 安全描述中的每个 ACE 把 SID 与相应的访问权限关联起来
SID 的值是分层的,并且长度可变。像 Administrators 组、Everyone 组所用的 SID 都较
为简洁,例如 Administrators 组的 SID 值固定为 S-1-5-32-544,Everyone 组的 SID 值固定为
S-1-1-0,而其他的 SID 则更长并且更为详细。SID 值的一般格式为:S-R-X-Y
1
-Y
2
…Y
n-1
-Y
n
。
其中各部分的含义如下。
z S:表示该字符串是一个 SID
z R:表示 SID 结构的版本号。在 Windows 2000 系统中,这个值为 1。
z X:表示标识符颁发机构(Identifier Authority)。对于 Administrators 组或其他任何
特定的 Windows 2000 用户和组,这个标识符颁发机构是 NT Authority(标识符颁
发机构 5);而对于 Everyone 等一般用户和组,则由 World Authority(标识符颁发
机构 1)来颁发 SID。
z Y
1
~Y
n-1
:表示子级颁发机构。这些元素能够用来区分不同域中的 SID。如
Administrators 组的域标识符为 Builtin(32),而 Everyone 组没有域标识符。
z Y
n
:相对标识符。它用来标识域内特定的账户和组。如 Administrators 组的相对标
识符是 Administrators(544),而 Everyone 组的相对标识符为空。
6.2.2 访问令牌
访问令牌是一个受保护的对象,其中包含与用户账号有关的标识和特权信息。当用户交
图 6-1 安全描述与访问令牌
遍历每个 ACE,直到找到匹配内容
对象的安全描述
所有者 SID
组 SID
DACL
ACE
ACE
ACE
…
SACL
ACE
ACE
…
用户 SID
组 SID
特权信息
其他访问信息
用户令牌信息
第 6 章 访问控制
SJTU, Information Security Engineering Institute, A&D Lab 3
互地或通过网络连接登录到一台运行 Windows 2000 的计算机上时,登录进程会对用户的登
录资格进行认证。若认证成功,登录进程会返回该用户的 SID 和该用户的安全组的 SID 列
表。计算机上的本地安全授权机构(LSA)根据这个返回信息创建一个访问令牌,里面包含
登录进程返回的 SID 和由本地安全策略分配给用户和用户的安全组的特权列表。代表用户
执行的所有进程和线程都有访问令牌的一个复本。只要某个线程与安全对象发生作用或试图
执行一个需要特权的系统任务,操作系统就检查与该线程相关的访问令牌来确定它的授权级
别。
1. 访问令牌的内容
访问令牌包含进程或线程的安全上下文的完整描述,其中含有如下信息。
z 用户(User)。用户账号的 SID。若用户登录到本地计算机上的一个账号,则他的
SID 来自于本地 SAM 维护的账号数据库;若用户登录到一个域账号,则他的 SID
来自于活动目录里用户对象的 Object-SID 属性。
z 组(Groups)。包含该用户的安全组的 SID 列表,表中也包含代表活动目录里用户
账号的用户对象的 SID-History 属性里的 SID。
z 特权(Privileges)。用户和用户的安全组在本地计算机上拥有的特权列表。
z 所有者(Owner)。特定用户或安全组的 SID,这些用户或安全组默认成为用户所
创建或拥有的任何对象的所有者。
z 主组(Primary Group)。用户的主安全组的 SID。这个信息只由 POSIX 子系统使用,
Windows 2000 的其他部分对其忽略。
z 默认任意访问控制表(Default Discretionary Access Control List, DACL)。一组内置
许可权。在没有其他访问控制信息存在时操作系统将其作用于用户所创建的对象。
默认 DACL 向创建所有者和系统赋予完全控制(Full Control)权限。
z
源(Source)。导致访问令牌被创建的进程,例如会话管理器、LAN 管理器或远程
过程调用(RPC)服务器。
z 类型(Type)。指示访问令牌是主(primary)令牌还是模拟(impersonation)令牌。
主令牌代表一个进程的安全上下文;模拟令牌是服务进程里的一个线程,用来临时
接受一个不同的安全上下文(如服务的一个客户的安全上下文)的令牌。
z 模拟级别(Impersonation Level)。指示服务对该访问令牌所代表的客户的安全上下
文的接受程度。
z 统计信息(Statistics)。关于访问令牌本身的信息。操作系统在内部使用这个信息。
z 限制 SID(Restricting SID)。由一个被授权创建受限令牌的进程添加到访问令牌里
的可选的 SID 列表。限制 SID 可以将线程的访问限制到低于用户被允许的级别。
z 会话 ID(Session ID)。指示访问令牌是否与终端服务(Terminal Services)客户会
话相关。
2. 模拟
线程能够在与拥有它的进程的上下文不同的安全上下文里执行,这种能力称为模拟,它
是为了满足客户/服务器应用的安全需求而设计的。当在一个客户的安全上下文里运行时,
服务在某种程度上“是”客户。服务的一个线程使用代表客户资格的访问令牌来访问该客户
有权访问的对象。
模拟的主要原因是根据客户的标识执行访问检查。使用客户标识进行访问检查可以根据
该客户拥有的许可权来限制或扩展访问。例如,假设一个文件服务器上有包含秘密信息的文
件,这些文件都由一个 DACL 保护。为了防止客户未经授权就可访问这些文件中的信息,
第 6 章 访问控制
SJTU, Information Security Engineering Institute, A&D Lab 4
服务可以在访问文件之前模拟客户。
每个进程都有一个主令牌(primary token)来描述与该进程相关的用户账号的安全上下
文。与普通的应用进程相关的用户是启动该应用的人为用户,但对一个服务进程却非如此:
服务在自己的账号下运行,在自己的权限内充当用户。与操作系统一起安装的系统服务在本
地系统账号下运行,其他的服务可以配置为在这个账号下运行,也可以给予在本地系统上或
活动目录里的单独账号。一个服务的主令牌与该服务进程里的控制线程和代表该服务运行的
所有其他线程相关。它标识该服务的账号、该账号的组和特权。当服务请求访问完成工作所
需的对象时,在访问检查时使用该信息。
当服务接受一个客户时,它创建一个线程来完成这项工作并将客户的访问令牌与工作线
程相关联。客户的访问令牌是一个模拟令牌,它标识客户、客户的组和特权。当线程代表客
户请求访问资源时,在访问检查过程中使用该信息。在模拟结束后,线程重新使用主令牌并
返回到服务自己的安全上下文里操作,而不是客户的上下文。
3. 模拟级别
模拟成功意味着客户在某种程度上同意服务器“成为”客户。客户进程通过在连接到服
务时选择一个模拟级别可以控制服务在何种程度上充当客户。通过选择模拟级别,客户告知
服务它能够如何模拟自己。
模拟级别不能由用户选择,它作为服务安全质量(SQoS)信息在客户/服务器应用的代
码里加以说明。模拟有四种级别:匿名(anonymous)、标识(identify)、模拟(impersonate)
和委托(delegate)。匿名从来都不被支持。在 Windows 2000 之前的系统只支持标识和模拟,
Windows 2000 增加了对委托的支持。下面是各个级别的简要描述。
z 匿名:客户对于服务是匿名的。服务可以模拟客户,但模拟令牌不含有客户的任何
信息。
z 标识:服务可以获得客户的标识并在自己的安全机制里使用该信息,但它不能模拟
客户。
z 模拟:服务可以模拟客户。若服务与客户进程在同一台计算机上,则它可以作为客
户来访问网络资源;若服务在一台远端计算机上,它只能在访问服务所在的计算机
上的资源时模拟客户。
z 委托:服务不仅在访问自己所在的计算机上的资源时可以模拟客户,也可在访问其
他计算机上的资源时进行模拟。
6.2.3 安全描述
1. 安全描述的结构
正如访问令牌把用户权限和特权通知安全子系统一样,包含在对象安全描述中的信息也
帮助安全子系统控制哪些用户可以访问对象以及如何访问。当在授权用户安全环境中执行的
线程创建一个对象时,安全描述就会被填入访问控制信息。
虽然安全描述中的具体信息依赖于对象类型以及对象的创建方式,但是安全描述有一个
已定义的结构,包括下列部分。
z 头部(Header)。除一个修订版本号之外,这部分还包括用于描述安全描述及其组
件的一组控制标志。这些控制标志是一些说明布尔值的位,例如描述符中包含的是
DACL 还是 SACL。另外,Windows 2000 安全描述中的控制标志位还包含有关自
动传播的信息,例如可继承权限是否能够修改安全描述中的 DACL 和 SACL。
z 所有者(Owner
)。该字段包含对象所有者的 SID。
剩余15页未读,继续阅读
首席程序IT
- 粉丝: 30
- 资源: 305
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0