随着Windows2000操作系统的普及使用,人们经常接触到它所支持的NTFS文件系统。尽管对于NTFS了解的人比较多、但真正能在实际工作生活中灵活运用的人相对较少。本文将从NTFS几大新的安全特性入手,对它进行全面介绍,并提供给读者可供参考的安全方案。
文件系统指文件命名。存储和组织的总体结构。Windows2000支持3种文件系统:FAT.FAT32和NTFS。无论哪一种文件系统,都是以簇为分配的最小单位。每个文件存储时必须以新的簇开头。先来看一下FAT分区,在这种分区下,只有当分区小于256M时,簇的大小才会小于4K,一且分区达到了2G以上。簇的大小也随之增大到64K以上。可见,这样在存放文件时非常浪费空间,因为即使你的文件大小只有2K。系统仍然要分配给你64K的大小,那么剩下的62K就不能使用了。而在FAT32的分区下,只要满足分区小于32G,簇的大小就会小于4K.NTFS的分区就更加好一些,无论你的分区有多大,它的簇最大就是4K。谁优谁劣,一看便知。
Windows2000安全性概述
Windows2000安全性具有两个方面:授权(authorization)和身份验证是操作系统所使用的一个过程,它可以检查用户的身份是否就是他所声明的身份。而操作系统之所以使用授权这个过程,是为了允许基于用户安全凭证。(security credential)来访问任务和对象。
尽管身份验证和授权是同一事物的两个方面(它们的工作联系得很紧密,但它们并不是同一事物的两个名称。身份验证只是在确认用户的身份时使用,它并不关心访问控制。与之相反,授权则只关心对一个经过身份验证的用户授予和剥夺访问的权力。
在Widows2000以前,WindowsNT使用Windows NT LAN Manager(NTLM)协议作为其惟一的网络身份验证协议。Windows2000在某种程度上对其进行了扩充。它使用工业标准的Kerberosv5协议作为默认的身份验证协议。写NTLM相比。Kerberos有很多优点,比如它有同时验证客户和服务器的能力。在NT4.0或更早的计算机上,仍然可以使用NTLM来进行身份验证。Windows2000还支持Crypto API、Secure Sockets Layer(SSL)以及公共密以及公共密要加密,把它们作为附加的身份验证工具。
在允许用户访问任何资源以前,Windows2000的登录进程必须验证用户的身份。描述用户安全性信息的访问令牌(access token)是与用户相关联的,可以用于识别计算机上或网络上的用户。验证了用户的身份以后,Windows2000将允许或拒绝用户访问安全对象。到底是允许还是拒绝,需要把安全对象相关联的访问控制列表与授予用户的访问权限进行比较,然后再做出决定。Windows2000会自动做出检查,不需要用户在代码中编程来测试访问许可。
基本安全性数据结构
(1)SID:它是安全标识符(Security identifier)的缩写,这个结构可以惟一地标识用户或组。并且一旦在系统中被使用过一次,即便与之相关联的安全对象已经被删除,这个SID也将不会分配给任何其他对象使用。
(2)ACE:它是访问控制项目(access control entry)的缩写。这个结构定义了SID怎样才能与安全对象交互。ACF可能会允许对特定SID的访问,也有可能拒绝。它还可以为SID定义安全审核(security-auditing)参数。
(3)ACL.它是访问控制列表 (access controllist)的缩写。这是一个数组,包含零个或多个ACE。ACL可能同时包含允许访问的ACE和拒绝访问的ACE.
(4)DACL:它是自选访问控制列表(discretionary access control list)的缩写。这是一个ACL,可用于允许或拒绝对某个安全对象的访问。
(5)SACL它是系统访问控制列表(system access controllist)的缩写。这个ACL用于审核对安全对象的访问。
(6)SECURITY_DESCRIPTOR:这个结构包含对象的安全性信息。这个信息包括与该对象相关联的DACL和SACL,以及它的所有者和组成员的信息。
(未完待续)