7.7实例研究: Windows2000的安全性 7.7.1 Windows2000安全性概述 Windows2000提供了一组全面的、可配置的安 全性服务,这些服务达到了美国政府用于受托 操作系统的国防部C2级要求 Windows NT Server /H Windows NT Workstation3.51的独立和网络配置都通过了 英国信息技术安全评估和认证( UK Information Technology Security Evaluation and Certification,ISEC)委员会的FC2/E3级认证
7.7 实例研究:Windows2000的安全性 7.7.1 Windows2000安全性概述 Windows2000提供了一组全面的、可配置的安 全性服务,这些服务达到了美国政府用于受托 操作系统的国防部C2级要求。 Windows NT Server和Windows NT Workstation 3.51的独立和网络配置都通过了 英国信息技术安全评估和认证(UK Information Technology Security Evaluation and Certification,ITSEC)委员会的F-C2/E3级认证
以下是安全性服务及其需要的基本特征: ●安全登录机构:要求在允许用户访问系统之前 输入唯一的登录标识符和密码来标识自 ●谨慎访问控制:允许资源的所有者决定哪些用 户可以访问资源和他们可以如何处理这些资源。 所有者可以授权给某个用户或一组用户,允许他 们进行各种访问。 ●安全审核:提供检测和记录与安全性有关的任 何创建、访问或删除系统资源的事件或尝试的能 力。登录标识符记录所有用户的身份,这样便于 跟踪任何执行非法操作的用户 ●内存保护:防止非法进程访问其他进程的专用 虚拟内存。另外, Windows2000保证当物理内 存页面分配给某个用户进程时,这一页中绝对不 含有其他进程的脏数据
以下是安全性服务及其需要的基本特征: l 安全登录机构:要求在允许用户访问系统之前, 输入唯一的登录标识符和密码来标识自己。 l 谨慎访问控制:允许资源的所有者决定哪些用 户可以访问资源和他们可以如何处理这些资源。 所有者可以授权给某个用户或一组用户,允许他 们进行各种访问。 l安全审核:提供检测和记录与安全性有关的任 何创建、访问或删除系统资源的事件或尝试的能 力。登录标识符记录所有用户的身份,这样便于 跟踪任何执行非法操作的用户。 l内存保护:防止非法进程访问其他进程的专用 虚拟内存。另外,Windows2000保证当物理内 存页面分配给某个用户进程时,这一页中绝对不 含有其他进程的脏数据
Windows2000引进了一系列安全性术语,例 如活动目录、组织单元、用户、组、域、安 全ID、访问控制列表、访问令牌、用户权限 和安全审核。 与 WindOws Nt4比较,为适应分布式安全性 的需要, Windows2000对安全性模型进行了 相当的扩展。包括: 活动目录:为大域提供了可升级、灵活的 账号管理,允许精确地访问控制和管理委托 ● Kerberos5身份验证协议:它是一种成熟的 作为网络身份验证默认协议的 IInternet安全性 标准,为交互式操作身份验证和使用公共密 钥证书的身份验证提供了基础 ●基于 Secure Sockets Layer3.0的安全通道 ● CryptoAPI2.0:提供了公共网络数据完整 性和保密性的传送工业标准协议
Windows2000引进了一系列安全性术语,例 如活动目录、组织单元、用户、组、域、安 全ID、访问控制列表、访问令牌、用户权限 和安全审核。 与Windows NT4比较,为适应分布式安全性 的需要,Windows2000对安全性模型进行了 相当的扩展。包括: l活动目录:为大域提供了可升级、灵活的 账号管理,允许精确地访问控制和管理委托。 lKerberos 5身份验证协议:它是一种成熟的 作为网络身份验证默认协议的Internet安全性 标准,为交互式操作身份验证和使用公共密 钥证书的身份验证提供了基础。 l基于Secure Sockets Layer 3.0的安全通道。 lCryptoAPI 2.0:提供了公共网络数据完整 性和保密性的传送工业标准协议
7.7.2 Windows2000安全性系统组件 实现 Windows2000的安全性系统的一些组件和 数据库如下: ●安全引用监视器(SRM):是 WindowsNT执行体 ( NTOSKRNL EXE)的一个组件,该组件负责执行 对对象的安全访问的检查、处理权限(用户权限) 和产生任何的结果安全审核消息 ●本地安全权限(LSA)服务器:是一个运行映像 LSASS.EXE的用户态进程,它负责本地系统安 全性规则(例如允许用户登录到机器的规则、密 码规则、授予用户和组的权限列表以及系统安 全性审核设置)、用户身份验证以及向“事件日 志”发送安全性审核消息
7.7.2Windows2000安全性系统组件 实现Windows2000的安全性系统的一些组件和 数据库如下: l安全引用监视器(SRM):是WindowsNT执行体 (NTOSKRNL.EXE)的一个组件,该组件负责执行 对对象的安全访问的检查、处理权限(用户权限) 和产生任何的结果安全审核消息。 l本地安全权限(LSA)服务器:是一个运行映像 LSASS.EXE的用户态进程,它负责本地系统安 全性规则(例如允许用户登录到机器的规则、密 码规则、授予用户和组的权限列表以及系统安 全性审核设置)、用户身份验证以及向“事件日 志”发送安全性审核消息
●安全账号管理器服务器:是一组负责管理数据库的子例程,这 个数据库包含定义在本地机器上或用于域(如果系统是域控制器) 的用户名和组。SAM在 LSASS进程的描述表中运行。 ●SAM数据库:是一个包含定义用户和组以及它们的密码和属性 的数据库。该数据库被保存在 HKEY-LOCAL-MACHINE SAM下的 注册表中。 ●默认身份认证包:是一个被称为MS10.DLL的动态链接库 (DLL),在进行 WIndows身份验证的 LSASS进程的描述表中运行 这个DLL负责检查给定的用户名和密码是否和SAM数据库中指定 的相匹配,如果匹配,返回该用户的信息 ●登录进程:是一个运行 WINLOGON. EXE的用户态进程,它负责 搜寻用户名和密码,将它们发送给LSA用以验证它们,并在用户 会话中创建初始化进程。 ●网络登录服务:是一个响应网络登录请求的 SERVICES. EXE进程 内部的用户态服务。身份验证同本地登录一样,是通过把它们发 送到 LSASS进程来验证的
l安全账号管理器服务器:是一组负责管理数据库的子例程,这 个数据库包含定义在本地机器上或用于域(如果系统是域控制器) 的用户名和组。SAM在LSASS进程的描述表中运行。 lSAM数据库:是一个包含定义用户和组以及它们的密码和属性 的数据库。该数据库被保存在HKEY-LOCAL-MACHINE\SAM下的 注册表中。 l默认身份认证包:是一个被称为MSV1_0.DLL的动态链接库 (DLL),在进行WIndows 身份验证的LSASS进程的描述表中运行。 这个DLL负责检查给定的用户名和密码是否和SAM数据库中指定 的相匹配,如果匹配,返回该用户的信息。 l登录进程:是一个运行WINLOGON.EXE的用户态进程,它负责 搜寻用户名和密码,将它们发送给LSA用以验证它们,并在用户 会话中创建初始化进程。 l网络登录服务:是一个响应网络登录请求的SERVICES.EXE进程 内部的用户态服务。身份验证同本地登录一样,是通过把它们发 送到LSASS进程来验证的
7.7.3 Windows2000保护对象 保护对象是谨慎访问控制和审核的基本要素 Windows2000上可以被保护的对象包括文件、 设备、邮件槽、己命名的和未命名的管道、进 程、线程、事件、互斥体、信号量、可等待定 时器、访问令牌、窗口站、桌面、网络共享、 服务、注册表键和打印机
保护对象是谨慎访问控制和审核的基本要素。 Windows2000上可以被保护的对象包括文件、 设备、邮件槽、己命名的和未命名的管道、进 程、线程、事件、互斥体、信号量、可等待定 时器、访问令牌、窗口站、桌面、网络共享、 服务、注册表键和打印机。 7.7.3Windows2000保护对象
所有可安全的对象在它们被创建时都 将被分配“安全描述体”( security descriptor) 安全描述体控制哪些用户可以对访问的对象做 什么,它包含下列主要属性: ●所有者SID:所有者的安全ID ●组SID:用于对象主要组的SID(只有POS使 用)。 ●谨慎访问控制列表(DACL):指定谁可以对访 问的对象做什么 ●系统访问控制列表(SACL):指定哪些用户的 哪些操作应登录到安全审核日志中
所有可安全的对象在它们被创建时都 将被分配“安全描述体”(security descriptor)。 安全描述体控制哪些用户可以对访问的对象做 什么,它包含下列主要属性: l 所有者SID:所有者的安全ID。 l 组SID:用于对象主要组的SID(只有POSIX使 用)。 l谨慎访问控制列表(DACL):指定谁可以对访 问的对象做什么。 l系统访问控制列表(SACL):指定哪些用户的 哪些操作应登录到安全审核日志中
访间控制列表(ACL) 包括一个ACL头和零个或多个“访问控制 项”(ACE)结构。具有零个ACE的ACL被 称为“空ACL”,表示没有用户可以访问 该对象
访问控制列表(ACL) 包括一个ACL头和零个或多个“访问控制 项”(ACE)结构。具有零个ACE的ACL被 称为“空ACL” ,表示没有用户可以访问 该对象
在DACL中,每个ACE都包含一个安全标 识和访问掩码。DACL中可能存在两种类 型的ACE:访问允许和访问拒绝
在DACL中,每个ACE都包含一个安全标 识和访问掩码。DACL中可能存在两种类 型的ACE:访问允许和访问拒绝
分配ACL: 要确定分配给新对象的ACL,安全系统将应用三种互斥 的规则之一,步骤如下: (1)如果调用者在创建对象时明确提供了一个安全描述 体,则安全系统将把该描述体应用到对象中 (2)如果调用者没有提供安全描述体,而对象有名称 则安全系统将在存储新对象名称的目录中查看安全描 述体。一些对象目录的ACE可以被指定为可继承的,表 示它们可以应用于在对象目录中创建的新对象上。如 果存在可继承的ACE,安全系统将它们编入ACI,并与 新对象连接。(单独的标志表明ACE只能被容器对象继 承,而不可能被非容器对象继承。) (3)如果以上两种情况都没有出现,安全系统会从调用 者访问令牌中检索默认的ACL,并将其应用到新对 象。操作系统的几个子系统有它们在创建对象时分配 一的硬性编码DACL(例如,服务、LSA和SAM对象)
分配ACL: 要确定分配给新对象的ACL,安全系统将应用三种互斥 的规则之一,步骤如下: (1)如果调用者在创建对象时明确提供了一个安全描述 体,则安全系统将把该描述体应用到对象中。 (2)如果调用者没有提供安全描述体,而对象有名称, 则安全系统将在存储新对象名称的目录中查看安全描 述体。一些对象目录的ACE可以被指定为可继承的,表 示它们可以应用于在对象目录中创建的新对象上。如 果存在可继承的ACE,安全系统将它们编入ACI,并与 新对象连接。(单独的标志表明ACE只能被容器对象继 承,而不可能被非容器对象继承。) (3)如果以上两种情况都没有出现,安全系统会从调用 者访问令牌中检索默认的 ACL,并将其应用到新对 象。操作系统的几个子系统有它们在创建对象时分配 的硬性编码DACL(例如,服务、LSA和SAM对象)