Windows Server 2003的信任增强功能

| 简介 | |
| 相同而又不同:引入森林信任(又名:联合森林) | |
| 技巧:尝试使用路由 | |
| 防止“特权提升”攻击 | |
| “选择性身份验证”选项 | |
| 其它技巧! | |
| 相关链接 |
审校:
Microsoft以色列公司解决方案安全性设计师Tal Sarid和
Microsoft公司Windows安全性项目经理JK Jaganathan
当回想起参与Windows NT 3.x/4.0开发的那段日子里,我特别记得在Windows NT的安全管理中有一个特性不能很好地进行配置和维护:信任关系。而且,我认为有此想法的不止我一人——这或许是系统管理员确实不大喜欢的Windows NT的最早的特性之一,对维护而言尤其如此。当Windows 2000推出并引入基于Kerberos身份验证协议的可传递信任关系时,事情看起来发生了很大的变化,Windows平台中的信任关系管理得到了极大的改进。
Windows Server 2003包括了许多信息安全方面的增强功能,并带来了实现安全管理组织的基础结构的新方法。Windows Server 2003中的信任关系管理同时包括您将会真正喜欢上的改进特性和新增特性。
本专栏假设您熟悉Active Directory术语和体系结构。如要阅读关于Active Directory技术的更多内容,请参考以下链接: http://www.microsoft.com/windows2000/technologies/directory/default.asp
如果体验过Windows 2000的Active Directory MMC,那么Windows Server 2003的信任管理初看起来显然没有多大的变化。然而,进一步的观察会揭示出相同的表面之下的一种非常不同的方法:Windows Server 2003家族支持域信任和森林信任。我们知道域信任是什么:它们允许用户向其他域中的资源执行验证身份。与以往一样,所有域信任关系在关系中都只有两个域:信任域和被信任域。信任关系有单向信任和双向信任两种,Windows Server 2003域可以在相同或不同森林中的其他Windows 2000/2003域、Windows NT 4.0域和Kerberos V5领域(realm)之间建立信任关系。在Windows 2000中,如果一个森林中的用户需要访问第二个森林中的资源,管理员可以创建这两个域之间的外部信任关系,这种信任关系是单向的且具有不可传递性。这意味着为了将信任扩展到森林中的其它域,您必须明确配置位于其中的每个域。
Windows Server 2003提供了一种森林信任:Windows Server 2003森林之间基于双向Kerberos的可传递信任关系,从而允许两个森林中的所有域之间存在可传递的信任关系。森林信任是在两个森林的根域之间建立的,并且可以是单向或者双向的。需要记住的一些事情有:确保两个森林中的所有域控制器均运行Windows Server 2003,都具有正确配置的DNS基础结构,并且都将森林功能级设置为Windows Server 2003模式。
下面让我们考察一个简单的例子:在一个企业环境中,公司可能拥有针对不同业务需求的不同森林。因此在这个例子中,我们将一个森林用于外部客户,一个用于我们的业务伙伴和内部公司森林;业务伙伴可能要更新某些类型的业务流程应用程序数据库(参见图1)。
跨森林的传递性有两个需要注意的不同方面:第一点是所有域在两个森林之间都是可传递的(正如我在前面已经提到过的)。同样,根据需要,可以是完全可传递的,或者具有不同等级划分的信任。
要注意的第二点是,传递性并不跨越各个森林,这意味着如果客户森林和我们的公司森林之间存在某种信任关系,这种信任关系不会传递到我们的伙伴森林,因此信任在客户森林和伙伴森林之间是不可传递的。
两个Windows Server 2003森林之间的森林信任带来了一种有助于简化森林之间的资源访问和消除对快捷信任的需要的新机制。假设一个森林中有一个工作站尝试访问另一个森林中的某台计算机上的数据:Kerberos联系域控制器,以获得用于访问目标计算的的SPN的服务权证(ticket),域控制器查询全局目录,发现该SPN与域控制器不在同一个森林中,于是将其父域的一个参考发回工作站。现在就是我们对工作站使用“技巧”的时候了:“工作站查询父域以获得服务权证,沿着一个参考链直至到达目标资源所在的域。这称为‘路由提示’,如图2所示:
在这个过程结束时,发起工作站将拥有一个用于访问目标计算机的服务权证。”
如今,只要凭证得到验证,信任的另一方可能向您发送非法的SID。然而在Windows Server 2003中,我们总是过滤SID以确保它们与受信任的森林中的某个域相关联。这种检查有助于防止“特权提升”攻击。这样还确保了其他森林仅对经授权的域颁发授权信息,而不会传入任何未经授权的SID。
SID过滤是通过“森林信任”自动启用的。
我们都大致知道网络防火墙的运作原理,即仅允许某些网络访问请求。这正是Windows Server 2003信任中的“选择性身份验证”选项所做的工作:其仅允许特定的身份验证请求。
假设某个用户从一个受信任的森林向我们发出身份验证请求:他在其令牌中给出“经过身份验证的用户”SID,因而能够尝试和访问我们的森林中的任何资源。那么我们能做些什么呢?当然,我们让域控制器决定是否在允许该用户访问特定资源之前对其进行身份验证。一旦启用“选择性身份验证”选项,您就需要配置来自信任的另一方的哪些用户能够向您的域中的哪些资源进行身份验证。这种实施是由对象上的一个名为“允许身份验证”的新增控制访问权限来执行的,这个权限可在您切换到Windows Server 2003森林模式时加以使用。这样有助于您获得对谁能够通过森林信任访问什么资源拥有更细致的控制。
此外还有其他一些信任方面的增强功能,虽然它们和新的森林信任及其出色的机制相比只是相对较小的变化,但是仍然对我们中的有些人具有意义。这些变化包括:
| • | 用于监控域控制器之间是否正在顺利地复制Active Directory信息的Windows管理规范(Windows Management Instrumentation,WMI)类。由于Active Directory复制像其他许多组件一样依赖域间信任,这个特性还提供了一种用于监控信任是否正常发挥作用的方法。 |
| • | 一个新增的“信任向导”:只要为双方提供正确的凭证,它就会在一个操作中同时创建双方的信任关系。这适用于Windows 2000和Windows Server 2003。 |
| • | 一个名为“传入森林信任构建器(Incoming Forest Trust Builders)”的新组:属于该组成员的域用户能够创建传入森林信任。这样我们就能支持委托以便部署资源森林。默认情况下,这个组中没有成员。 |
| • | 现在我们能够通过仅打开特定的端口来设置防火墙上的信任。有一个当前正在编写的关于“联合森林(Federated Forests)”的白皮书将包括关于这个选项的更多信息以及端口列表。 |
| • | 关于跨森林信任的另一个极好的增强功能可根据用户的UPN(Universal Principal Name,通用主要名称:如user@domain.com)直接从访问控制列表UI添加另一个森林中的用户...非常棒! |
多森林还涉及其他一些方面,比如在不同森林之间同步数据。
您可以使用诸如Microsoft Metadirectory Services(Microsoft元目录服务,MMS)这样的技术,跨森林同步全局地址列表(GAL)和对象;MMS是Windows Server 2003企业版的组成部分。
需要跨森林同步的常见数据类型如下:
| • | GAL(Exchange) |
| • | 公共文件夹 |
| • | 目录对象 |
| • | PKI证书和CRL |
跨森林同步这些数据有助于最终用户查看地址列表和其他数据,就像他们是在自己的森林中查看这些信息一样。
有关MMS的更多信息,请参见
http://www.microsoft.com/windows2000/technologies/directory/mms/default.asp。
正如您现在能够清楚进行判断那样,自从进入Windows NT时代以来,Windows信任确实经历了长足的发展。Windows Server 2003跨森林信任是一个功能强大的新特性,将给管理员带来业务环境中和业务环境之间的更多控制权和安全性。
我敢肯定您会很乐意探索那些新的信任机制,相信我吧。愿您总能得到需要的资源!
如要对本专栏的内容发表任何反馈信息,请致信Microsoft TechNet。请注意,我们不保证一定回复您的来信。