1、,Windows NT系统内置支持用户认证(User Authentication),访问控制(Access Control),管理(Administration),审核(Audit)。,Windows系统的安全组件,作为C2级别的操作系统中所包含的安全组件:访问控制的判断(Discretion access control)按照C2级别的定义,Windows 支持对象的访问控制的判断。这些需求包括允许对象的所有者可以控制谁被允许访问该对象以及访问的方式。对象重用(Object reuse)当资源(内存、磁盘等)被某应用访问时,Windows 禁止所有的系统应用访问该资源,这也就是为什么Win
2、dows NT禁止undelete已经被删除的文件的原因。强制登陆(Mandatory log on)与Windows for Workgroups,Windwows 95,Windows 98不同,Windows2K/NT要求所有的用户必须登陆,通过认证后才可以访问资源。由于网络连接缺少强制的认证,所以Windows 作为C2级别的操作系统必须是未连网的。审核(Auditing)Windows NT 在控制用户访问资源的同时,也可以对这些访问作了相应的记录。对象的访问控制(Control of access to object)Windows NT不允许直接访问系统的某些资源。必须是该资源允
3、许被访问,然后是用户或应用通过第一次认证后再访问。,Windows系统的对象,为了实现自身的安全特性,Windows2K/NT把所有的资源作为系统的特殊的对象。这些对象包含资源本身,Windows2K/NT提供了一种访问机制去使用它们。由于这些基本的原因,所以我们把Windows2K/NT称为基于对象的操作系统。Microsoft的安全就是基于以下的法则:用对象表现所有的资源只有Windows2K/NT才能直接访问这些对象对象能够包含所有的数据和方法对象的访问必须通过Windows 2K/NT的安全子系统的第一次验证存在几种单独的对象,每一个对象的类型决定了这些对象能做些什么Windows 中
4、首要的对象类型有:文件 文件夹 打印机 I/O设备 窗口 线程 进程 内存这些安全构架的目标就是实现系统的牢固性。从设计来考虑,就是所有的访问都必须通过同一种方法认证,减少安全机制被绕过的机会。,Windows安全子系统的组件,Windows NT安全子系统包含五个关键的组件:安全标识符(Security identifiers)访问令牌(Access tokens)安全描述符(Security descriptors)访问控制列表(Access control lists)访问控制项(Access Control Entries),Windows安全子系统的组件,安全标识符(Security
5、 Identifiers):就是我们经常说的SID,每次当我们创建一个用户或一个组的时候,系统会分配给改用户或组一个唯一SID,当你重新安装Windows NT后,也会得到一个唯一的SID。SID永远都是唯一的,由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。例:S-1-5-21-1763234323-3212657521-1234321321-500访问令牌(Access tokens):用户通过验证后,登陆进程会给用户一个访问令牌,该令牌相当于用户访问系统资源的票证,当用户试图访问系统资源时,将访问令牌提供给Windows NT,然后Windows
6、NT检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,Windows NT将会分配给用户适当的访问权限。访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。,Windows安全子系统的组件,安全描述符(Security descriptors):Windows NT中的任何对象的属性都有安全描述符这部分。它保存对象的安全配置。访问控制列表(Access control lists):访问控制列表有两种:任意访问控制列表(Discretionary ACL)、系统访问控制列表(System ACL)。任意访问控制列表包含了用户和
7、组的列表,以及相应的权限,允许或拒绝。每一个用户或组在任意访问控制列表中都有特殊的权限。而系统访问控制列表是为审核服务的,包含了对象被访问的时间。访问控制项(Access control entries):访问控制项(ACE)包含了用户或组的SID以及对象的权限。访问控制项有两种:允许访问和拒绝访问。拒绝访问的级别高于允许访问。当你使用管理工具列出对象的访问权限时,列表的排序是以文字为顺序的,它并不象防火墙的规则那样由上往下的,不过好在并不会出现冲突,拒绝访问总是优先于允许访问的。,Windows安全子系统,安全子系统包括以下部分:WinlogonGraphical Identificatio
8、n and Authentication DLL(GINA)Local Security Authority(本地安全认证,LSA)Security Support Provider Interface(安全支持提供者的接口,SSPI)Authentication Packages(认证包)Security Support Providers(安全支持提供者)Netlogon Service(网络登陆)Security Account Manager(安全账号管理者,SAM),Windows子系统实现图,Winlogon,本地安全认证LSA以及Netlogon服务在任务管理器中都可以看到,其他
9、的以DLL方式被这些文件调用。,Windows安全子系统,Winlogon and GINA:Winlogon调用GINA DLL,并监视安全认证序列。而GINA DLL提供一个交互式的界面为用户登陆提供认证请求。GINA DLL被设计成一个独立的模块,当然我们也可以用一个更加强有力的认证方式(指纹、视网膜)替换内置的GINA DLL。Winlogon在注册表中查找 HKLMSoftwareMicrosoftWindows NTCurrentVersionWinlogon 如果存在GinaDLL键,Winlogon将使用这个DLL,如果不存在该键,Winlogon将使用默认值MSGINA.DL
10、L,Windows安全子系统,本地安全认证(Local Security Authority):本地安全认证(LSA)是一个被保护的子系统,它负责以下任务:调用所有的认证包,检查在注册表HKLMSYSTEMCurrentControlSetControlLSA下AuthenticationPAckages下的值,并调用该DLL进行认证(MSV_1.DLL)。在4.0版里,Windows NT会寻找HKLMSYSTEMCurrentControlSetControlLSA 下所有存在的SecurityPackages值并调用。重新找回本地组的SIDs和用户的权限。创建用户的访问令牌。管理本地安装
11、的服务所使用的服务账号。储存和映射用户权限。管理审核的策略和设置。管理信任关系。,Windows安全子系统,安全支持提供者的接口(Security Support Provide Interface):微软的Security Support Provide Interface很简单地遵循RFC 2743和RFC 2744的定义,提供一些安全服务的API,为应用程序和服务提供请求安全的认证连接的方法。认证包(Authentication Package):认证包可以为真实用户提供认证。通过GINA DLL的可信认证后,认证包返回用户的SIDs给LSA,然后将其放在用户的访问令牌中。,Window
12、s安全子系统,安全支持提供者(Security Support Provider):安全支持提供者是以驱动的形式安装的,能够实现一些附加的安全机制,默认情况下,Windows NT安装了以下三种:Msnsspc.dll:微软网络挑战/反应认证模块Msapsspc.dll:分布式密码认证挑战/反应模块,该模块也可以在微软网络中使用Schannel.dll:该认证模块使用某些证书颁发机构提供的证书来进行验证,常见的证书机构比如Verisign。这种认证方式经常在使用SSL(Secure Sockets Layer)和PCT(Private Communication Technology)协议通信
13、的时候用到。,Windows安全子系统,网络登陆(Netlogon):网络登陆服务必须在通过认证后建立一个安全的通道。要实现这个目标,必须通过安全通道与域中的域控制器建立连接,然后,再通过安全的通道传递用户的口令,在域的域控制器上响应请求后,重新取回用户的SIDs和用户权限。安全账号管理者(Security Account Manager):安全账号管理者,也就是我们经常所说的SAM,它是用来保存用户账号和口令的数据库。保存了注册表中HKLMSecuritySam中的一部分内容。不同的域有不同的Sam,在域复制的过程中,Sam包将会被拷贝。,Windows 2000 本地登陆过程,当从Windows 2000 Professional or Server登录时,Windows 2000 用两种过程验证本地登录.Windows 2000尝试使用 Kerbe
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1