Windows安全原理内容•Windows安全原理篇•Windows安全管理篇Windows安全原理篇•Windows系统的安全架构•Windows的安全子系统•Windows的密码系统•Windows的系统服务和进程•Windows的日志系统Windows系统的安全架构WindowsNT的安全包括6个主要的安全元素:Audit(审计),Administration(管理),Encryption(加密),AccessControl(访问控制),UserAuthentication(用户认证),CorporateSecurityPolicy(公共安全策略)。WindowsNT系统内置支持用户认证、访问控制、管理、审核。Windows系统的安全组件访问控制的判断(Discretionaccesscontrol)按照C2级别的定义,Windows支持对象的访问控制的判断。这些需求包括允许对象的所有者可以控制谁被允许访问该对象以及访问的方式。•对象重用(Objectreuse)当资源(内存、磁盘等)被某应用访问时,Windows禁止所有的系统应用访问该资源。•强制登陆(Mandatorylogon)与WindowsforWorkgroups,Windwows95,Windows98不同,Windows2K/NT要求所有的用户必须登陆,通过认证后才可以访问资源。•审核(Auditing)WindowsNT在控制用户访问资源的同时,也可以对这些访问作了相应的记录。•对象的访问控制(Controlofaccesstoobject)WindowsNT不允许直接访问系统的某些资源。必须是该资源允许被访问,然后是用户或应用通过第一次认证后再访问。强制访问控制Windows安全子系统的组件•安全标识符(SecurityIdentifiers):SID永远都是唯一的,由计算机名、当前时间、当前用户态线程的CPU耗费时间的总和三个参数决定以保证它的唯一性。例:S-1-5-21-1763234323-3212657521-1234321321-500•访问令牌(Accesstokens):。访问令牌是用户在通过验证的时候有登陆进程所提供的,所以改变用户的权限需要注销后重新登陆,重新获取访问令牌。第一项S表示该字符串是SID第二项是SID的版本号,对于2000来说,这个就是1然后是标志符的颁发机构(identifierauthority),对于2000内的帐户,颁发机构就是NT,值是5然后表示一系列的子颁发机构,前面几项是标志域的最后一个标志着域内的帐户和组Windows安全子系统的组件•安全描述符(Securitydescriptors):WindowsNT中的任何对象的属性都有安全描述符这部分。它保存对象的安全配置。•访问控制列表(Accesscontrollists):在NT系统中,每当请求一个对象或资源访问时,就会检查它的ACL,确认给用户授予了什么样的权利。每创建一个对象,对应的ACL也会创建。ACL包含一个头部,其中包含有更新版本号、ACL的大小以及它所包含的ACE数量等信息。•访问控制项(Accesscontrolentries):访问控制项(ACE)包含了用户或组的SID以及对象的权限。访问控制项有两种:允许访问和拒绝访问。拒绝访问的级别高于允许访问。当你使用管理工具列出对象的访问权限时,列表的排序是以文字为顺序的,它并不象防火墙的规则那样由上往下的,不过好在并不会出现冲突,拒绝访问总是优先于允许访问的。Windows安全子系统–Winlogon–GraphicalIdentificationandAuthenticationDLL(GINA)–LocalSecurityAuthority(LSA)–SecuritySupportProviderInterface(SSPI)–AuthenticationPackages–Securitysupportproviders–NetlogonService–SecurityAccountManager(SAM)Windows子系统实现图Winlogon,LocalSecurityAuthorit以及Netlogon服务在任务管理器中都可以看到,其他的以DLL方式被这些文件调用。Windows安全子系统•WinlogonandGina:Winlogon调用GINADLL,并监视安全认证序列。而GINADLL提供一个交互式的界面为用户登陆提供认证请求。GINADLL被设计成一个独立的模块,当然我们也可以用一个更加强有力的认证方式(指纹、视网膜)替换内置的GINADLL。Winlogon在注册表中查找\HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon,如果存在GinaDLL键,Winlogon将使用这个DLL,如果不存在该键,Winlogon将使用默认值MSGINA.DLLWindows安全子系统•本地安全认证(LocalSecurityAuthority):–调用所有的认证包,检查在注册表–重新找回本地组的SIDs和用户的权限。–创建用户的访问令牌。–管理本地安装的服务所使用的服务账号。–储存和映射用户权限。–管理审核的策略和设置。–管理信任关系。Windows安全子系统•安全支持提供者的接口(SecuritySupportProvideInterface):微软的SecuritySupportProvideInterface很简单地遵循RFC2743和RFC2744的定义,提供一些安全服务的API,为应用程序和服务提供请求安全的认证连接的方法。•认证包(AuthenticationPackage):认证包可以为真实用户提供认证。通过GINADLL的可信认证后,认证包返回用户的SIDs给LSA,然后将其放在用户的访问令牌中。Windows安全子系统•安全支持提供者(SecuritySupportProvider):安全支持提供者是以驱动的形式安装的,能够实现一些附加的安全机制,默认情况下,WindowsNT安装了以下三种:–Msnsspc.dll:微软网络挑战/反应认证模块–Msapsspc.dll:分布式密码认证挑战/反应模块,该模块也可以在微软网络中使用–Schannel.dll:该认证模块使用某些证书颁发机构提供的证书来进行验证,常见的证书机构比如Verisign。这种认证方式经常在使用SSL(SecureSocketsLayer)和PCT(PrivateCommunicationTechnology)协议通信的时候用到。Windows安全子系统•网络登陆(Netlogon):。•安全账号管理者(SecurityAccountManager):安全账号管理者,也就是我们经常所说的SAM,它是用来保存用户账号和口令的数据库。Windows2000本地登陆过程GINALSASSPIKerberosNTLMWindows的密码系统•windowsNT及win2000中对用户帐户的安全管理使用了安全帐号管理器(securityaccountmanager)的机制,安全帐号管理器对帐号的管理是通过安全标识进行的,安全标识在帐号创建时就同时创建,一旦帐号被删除,安全标识也同时被删除。安全标识是唯一的,即使是相同的用户名,在每次创建时获得的安全标识都时完全不同的。Windows的密码系统•安全账号管理器的具体表现就是%SystemRoot%\system32\config\sam文件。•在正常设置下仅对system是可读写的。用户权利、权限和共享权限网络安全性依赖于给用户或组授予的能力:•权力:在系统上完成特定动作的授权,一般由系统指定给内置组,但也可以由管理员将其扩大到组和用户上。•权限:可以授予用户或组的文件系统能力。•共享:用户可以通过网络使用的文件夹。Windows系统的用户权利权利适用于对整个系统范围内的对象和任务的操作,通常是用来授权用户执行某些系统任务。当用户登录到一个具有某种权利的帐号时,该用户就可以执行与该权利相关的任务。下面列出了用户的特定权利:–Accessthiscomputerfromnetwork可使用户通过网络访问该计算机。–Addworkstationtoadomain允许用户将工作站添加到域中。–Backupfilesanddirectories授权用户对计算机的文件和目录进行备份。–Changethesystemtime用户可以设置计算机的系统时钟。–Loadandunloaddevicedrive允许用户在网络上安装和删除设备的驱动程序。–Restorefilesanddirectories允许用户恢复以前备份的文件和目录。–Shutdownthesystem允许用户关闭系统。Windows系统的用户权限•RWXDPOWindows系统的用户权限•权限适用于对特定对象如目录和文件(只适用于NTFS卷)的操作,指定允许哪些用户可以使用这些对象,以及如何使用(如把某个目录的访问权限授予指定的用户)。权限分为目录权限和文件权限,每一个权级别都确定了一个执行特定的任务组合的能力,这些任务是:Read(R)、Execute(X)、Write(W)、Delete(D)、SetPermission(P)和TakeOwnership(O)。下表显示了这些任务是如何与各种权限级别相关联的。Windows系统的用户权限权限级别RXWDPO允许的用户动作NoAccess用户不能访问该目录ListRX可以查看目录中的子目录和文件名,也可以进入其子目录ReadRX具有List权限,用户可以读取目录中的文件和运行目录中的应用程序AddXW用户可以添加文件和子录AddandReadRXW具有Read和Add的权限ChangeRXWD有Add和Read的权限,另外还可以更改文件的内容,删除文件和子目录FullcontrolRXWDPO有Change的权限,另外用户可以更改权限和获取目录的所有权如果对目录有Execute(X)权限,表示可以穿越目录,进入其子目。Windows系统的用户权限权限级别RXWDPO允许的用户动作NoAccess用户不能访问该文件ReadRX用户可以读取该文件,如果是应用程序可以运行ChangeRXWD有Read的权限,还可用修和删除文件FullcontrolRXWDPO包含Change的权限,还可以更改权限和获取文件的有权Windows系统的共享权限•共享只适用于文件夹(目录),如果文件夹不是共享的,那么在网络上就不会有用户看到它,也就更不能访问。网络上的绝大多数服务器主要用于存放可被网络用户访问的文件和目录,要使网络用户可以访问在NTServer服务器上的文件和目录,必须首先对它建立共享。共享权限建立了通过网络对共享目录访问的最高级别。Windows系统的共享权限共享权限级别允许的用户动作NoAccess(不能访问)禁止对目录和其中的文件及子目录进行访问但允许查看文件名和子目录名,改变共享Read(读)目录的子目录,还允许查看文件的数据和运行应用程序Change(更改)具有“读”权限中允许的操作,另外允许往目录中添加文件和子目录,更改文数据,删除文件和子目录Fullcontrol(完全控制)具有“更改”权限中允许的操作,另外还允许更改权限(只适用于NTFS卷)和获所有权(只适用于NTFS卷)共享点一定要小心地分配。因为权限仅仅是分配给共享点的,任何共享点下的文件:或目录都足以和共享点本身相同的权限被访问的。Windows的系统服务单击“开始”,指向“设置”,然后单击“控制面板”。双击“管理工具”,然后双击“服务”。在列表框中显示的是系统可以使用的服务。Windows2k下可以在命令行中输入services.msc打开服务列表。Windows的系统服务服务包括三种启动类型:自动,手动,已禁用。自动-Windows2000启动的时候自动加载服务手动-Windows2000启动的时候不自动加载服务