会员登录 | 注册

来去留技术信息资源

来去留技术信息资源
来去留网 > 去看信息 > 服装设计 > 验证管理机构的身份验证(2)

验证管理机构的身份验证(2)

2013-09-14 20:00来源:网络整理发布者:采集侠 查看:


如何使它工作 

一般来说, Windows 2000 Kerberos 客户端可与 MIT Kerberos V5 KDC 互操作,并且 MIT Kerberos 客户端也可与 Windows 2000 域控制器互操作。在这种情况下,“互操作”意味着 KDC 可以为任一类型的客户端产生票据授权的票据和会话票据。 

为使其工作必须安装一些项目。TechNet 文章 Q232170 描述了对 Windows 2000 端和 UNIX 端都需要的项目。有很多注册表项必须要设置并且有一些命令行工具有助于完成该任务,包括 KSETUP 和 KTPASS。如果 Windows 2000 客户端要向 MIT Kerberos V5 KDC 验证身份,则 Windows 2000 用户必须使用电子邮件样式的名称(用户规则名称,如 someone@microsoft.com)来登录,因为 MIT KDC 并不支持 Microsoft 样式的名称,如 someone。 

在 Windows 2000 端,您必须将 UNIX 客户端映射到 Windows 2000 用户帐户上。您可以在 Windows 2000 域上设置单个用户(如 UnixUser),并且将所有的 UNIX 客户端映射到一个 Windows 2000 帐户上。或者您也可以按照一对一的原则,将 UNIX 用户映射到 Windows 2000 用户上。您必须创建将 UNIX 用户映射到 Windows 2000 用户的注册表项。 

Microsoft 中 Kerberos V5 的实施支持所有的 Kerberos 名称和加密类型,因此让 Windows 2000 域信任 MIT 领域是可能的。命令行应用程序(NetDom)可用于建立这种类型的信任。必须密切注意以下两件事情。第一件是 Windows 2000 使用单一的密码用于双向信任。MIT 领域在每个方向上使用单独的密码。因此,为了使信任正常工作,您必须在 MIT 域中的两个方向上都使用同一个密码。第二件事是要确保 Windows 2000 的版本是北美版本,因为存在各种出口限制。 

通过检查票据中的标志,KDC 应知道该请求是否来自 MIT 领域。如果这个请求来自于 MIT 领域,则 KDC 将检查票据中是否有 Windows 2000 PAC。如果没有 PAC,KDC 将试图查找从 MIT 用户映射到的 Windows 2000 帐户。如果该 MIT/UNIX 用户中没有任何映射,则在该票据中未添加任何 PAC 信息。这将确保票据有足够小的尺寸来适应 MIT Kerberos V5 实施所期望的用户数据报协议 (User Datagram Protocol, UDP) 数据包的大小。 

Windows 2000 中的 NTLM 

不同的角色 

Windows 2000 中仍然使用 NTLM 身份验证。在 Windows NT 4.0 中,NTLM 是默认的身份验证协议。如上所述,Kerberos 协议是 Windows 2000 中的默认协议,但 NTLM 也受到支持。对于本地登录和非 Windows 2000 客户端或服务器,NTLM 仍可用于验证用户的身份。 

本地计算机 

登录到计算机上时,Windows 试图将 Kerberos 协议用作用户身份验证的主要协议。如果在进行 Kerberos 验证时找不到 KDC,则 Windows 将使用 NTLM 安全验证本地安全帐户管理器 (SAM) 数据库中用户的身份。 

其工作方式是图形标识和身份验证 (Graphical Identification and Authentication, GINA) 收集用户的登录信息并将其传给本地安全颁发机构 (Local Security Authority, LSA) 用于身份验证。LSA 将信息传递到安全支持提供程序接口 (Security Support Provider Interface, SSPI)。SSPI 并不知道也不关心该用户是从本地登录还是通过域帐号登录,以及该用户是否有 Kerberos 和 NTLM 的接口。 

因为 Kerberos 协议是默认的身份验证提供程序,所以身份验证请求首先传到 Kerberos 安全支持提供程序 (SSP) 中。Kerberos 协议查看登录目标名是否与本地计算机名相同。如果相同,则 Kerberos 协议将一个错误消息(任何登录服务器都不可用)返回给 SSPI,正如它在网络上查找过 KDC,但并未发现一样。SSPI 最初 启动此进程,最终将请求发送给下一个安全提供程序,即 NTLM。NTLM 与以前版本的 Microsoft Windows NT 使用的身份验证过程相同。下图说明这个过程。 



下层客户机 

身份验证协议是由客户端和服务器的能力所决定的。如果客户端不能使用 Kerberos 协议,则 Windows 2000 服务器可使用 NTLM。并且如果 Windows 2000 客户机要向 Windows NT 4.0 域控制器验证身份,则 Windows 2000 客户机能够使用 NTLM。因此,运行以前版本的 Windows NT 或 Windows 9x 的客户端就会向 Windows 2000 域控制器验证身份。 

请注意如果在多个域之间建立了可传递的信任,则当目标域中包含 Windows 2000 域控制器时,下层客户机将在整个目录林中被信任。 

其它方式下, Windows 2000 计算机可以使用 NTLM 向 Windows NT 4.0 域控制器验证身份。 

为了使用 Kerberos 协议,以下四种情况必须为真: 

登录用户必须属于 Windows 2000 域。 
被登录的计算机必须运行 Windows 2000。 
被登录的计算机必须属于 Windows 2000 域。 
用户帐户和计算机帐户必须在域的同一个目录林中。 
混合模式的域 

混合模式的域是指既有 Windows 2000 域控制器又有 Windows NT 4.0 域控制器。Windows 2000 域控制器可以模拟 Windows NT 4.0 域控制器的服务和功能,这样两种域控制器可毫无问题地共存于一个单独的域中。 

尽管如此,测试者已经在混合模式的域中发现了一个潜在而且令人吃惊的要求。Windows 2000 客户端需要使用 Windows 2000 域控制器才能登录。如果只有一台 Windows 2000 域控制器可用,则 Windows 2000 客户端将只能在该计算机上进行本地登录。如果只有 Windows NT 4.0 备份域控制器 (BDC) 可用,则 Windows 2000 客户端将不可能进行域登录。如果您还记得 Windows 2000 客户端必须使用 Kerberos 协议才能进行域登录,并且 Windows NT 4.0 BDC 很显然不能服务这种请求的话,这才有意义。 

Windows 2000 域模型和安全 

对象集 

Windows 2000 域只是那些共享相同 Active Directory 数据库的对象的集合。这些对象可以是计算机、用户、组、策略等等。一组 Windows 2000 域可以按父子方式相互关联。这种关系在创建域时确定。当两个域按这种方式连接时,就在这两个域之间建立一个可传递的双向信任。 

Windows 2000 模型与 Windows NT 模型不同。在该模型中,两个域之间的任何信任必须显式建立。 

Win2K 域模型的安全含义。 

每个域控制器都是 KDC。KDC 保存着每个人的私钥。因此,每个域控制器都有每个密钥的一个副本。这意味着网络管理员需要尽可能安全地保存这些密码和计算机。 

为了保护用户密码,Kerberos 客户端将这些密码转换成 64 位的密钥,并用它来对在客户机和域控制器间传递的票据进行加密。 

应设置以下三种密码策略来确保用户选择难于猜测的密码。为此,请转至开始/程序/管理工具/域控制器安全策略。打开安全设置,打开帐号策略,然后打开密码策略。 

在此处会发现强制密码历史,将其至少设置为 10 个密码。 

密码最长期限应设置为您的安全策略要求多少天更改一次密码。推荐的天数为 56 天。 

最短密码长度应至少设置为 6 个字符,最好使用 8 个字符。(注意,如果使用六个字符,Kerberos 客户端使用的 64 位密钥的后 8 位将会是全零。你需要至少 7 个字符才能用随机数将此密钥填满。) 

最后,您应启用密码必须满足复杂性要求,这样密码必须包含标点和大小写字母。 

您可能想设置最短密码期限策略来禁止密码被连续不断地更改。这将阻止用户利用更改 11 次密码来解决密码历史限制问题。 

物理安全是至关重要的。在域控制器中物理安全也是至关重要的,但它在 Windows 2000 中则更为重要。请记住,在域中每个 KDC 都保存着每个密钥。如果攻击者可获得您的系统备份,或者甚至“借”走了您的系统盘达一个小时,那么这个攻击者很可能已经入侵了您的系统,因为在这么长的时间里他可以干任何事情。 

另一种方式是攻击者会通过更改域控制器上的时间将一些东西放进去并且暗中访问您的系统。重放攻击与可转发的票据结合后,可允许当前不在场的攻击者访问您的系统。 

信任 

在 Windows 2000 中配置信任 

当一个域作为子域被添加后,每个域的域控制器将协商一个密钥并用其进行安全交换。域控制器将该密钥用作加密各种票据的基础,某个域中的用户访问另一个域中 的资源时会用到这些票据。由于每个域中的域控制器都共享一个密钥,所以在域间会有双向信任。建立双向信任仅用于域控制器协商密钥。密钥作为一般的域间通讯 而定期自动修改。为了重置受到破坏的信任,可以使用 NetDom 命令行实用程序。 

可传递信任的安全含义 

彼此互相信任。还记得中学数学吗?传递被定义为如果 a = b 并且 b= c,那么 a = c。换句话说,我的朋友的朋友是我的朋友。另一个域中用户的身份验证凭据就象自己的域中的用户的身份验证凭据一样有效。 

信任建立起来后,密钥也被建立并在域间共享。这就允许一个域中的 KDC 能够为另一个域提供授权票据的票据。通过遍历域结构,Kerberos 客户端最终获取一个连接到该用户的主域的任何域中任何资源的会话票据。 

如果一个用户在一个域中进行过身份验证,则在连接到该用户的主域的每个域中,他也经过身份验证。 

凭据可以被转发或代理。从概念上说,这意味着票据既具有源计算机的 IP 地址,又具有请求计算机的不同的 IP 地址。 

另一个应该遵循的好规则是尽可能减少域的数量,但不要太少。如果有 K 个域,那么为了彼此互操作,肯定要有 ((K * (K-1))/2) 个密钥进行交换。 

Kerberos 容量规划 

确定计算机大小 

系统设计师必须回答的这样一个问题:即在一个组织中为支持身份验证,必须有多大的域控制器。Kerberos 票据的加密和解密也要占用域控制器上的一些资源。 

Microsoft 的 Deployment Competency Center 进行的性能和负载测试有助于解决这个问题。您应该把这些结果作为您的指南。这些结果对于确定您可能需要多大的计算机提供一些建议。在将您的设计付诸实施之前,请务必先在控制实验室中对所需的计算机进行测试。 

在本白皮书的前面,提到了 Kerberos 协议用于验证用户身份时使用的三个主要的 Kerberos 消息对。这三个消息是 AS、票据授权服务和 AP。在客户机和域控制器之间的初始用户登录序列过程中,使用 AS 和票据授权服务在该客户机上建立用户的凭据。客户端希望访问提供服务或应用程序的计算机上的资源时,就会用到票据授权服务。客户端给具有需要访问的应用程序服务器名称的 KDC 发送票据授权服务请求。KDC 利用某个票据授权服务消息来响应,该消息包含客户端向应用程序服务器发送的票据。如果客户端想访问该服务器上的资源,则客户端给这台应用程序服务器发送上一个 Kerberos 消息,即 AP 请求。 

因为 AP 消息是在客户机和应用程序服务器之间发送,并不发往域控制器,所以此处记录的测试忽略了 AP 消息。 

环境 

在实验室中,应建立两套环境,一套包含一台价格较低的域控制器,称之为“小”。另一套包括一台高性能企业级域控制器,称之为“大”。在两种情况下,都使用四台工作站给域控制器发送消息。所有计算机都有 100 兆位的以太网卡并且在一个独立的网络环境中。 

价格较低的域控制器是一台运行 Windows 2000 服务器(内部版本号 2195)的 Dell OptiPlex GXI 500 计算机。其配置为:128 MB RAM、500 MHz 的 Pentium 处理器、32 KB 的一级缓存、256 KB 的二级缓存。 

高性能企业级域控制器是运行 Windows 2000 Advanced Server(内部版本号 2195)的 Dell PowerEdge 6300/550。其配置为:4 个 550 MHz 的 Pentium 处理器、32 KB 的一级缓存、1 MB 的二级缓存、1 GB 的 RAM。 

所有的工作站都是 Dell OptiPlex GX1p,其配置为 128 MB 的 RAM 和 500 MHz 的处理器。其中三台使用 Windows 2000 专业版(内部版本号 2195),一台使用 Windows 2000 服务器(内部版本号 2195)。 

本测试使用脚本填充 Active Directory,后者具有 80,000 个用户,总共 160,000 个对象。用户分成三个组织单元级别,因此本测试客反映一个比较复杂的结构。 

方法 

这些测试使用一个称为 ADTest 的工具。ADTest 是由 Windows 2000 性能组开发的 Microsoft 内部测试工具。当前,该工具并不包含在 Windows 2000 资源工具包中。客户如果要对自己的硬件平台进行性能测试,可与 Microsoft 咨询服务部门联系寻求帮助。 

每个域控制器上都运行一个脚本,将批处理作业发送给参与本测试的所有工作站。批处理作业运行一个程序,读取一个脚本文件并在此文件上执行操作。这个脚本文件包含循环结构,并调用各种 LDAP 和 LSA 应用程序接口 (API)。如果有循环,工作站将尽可能快地设置成循环状态,没有任何延迟或休眠时间。 

在域控制器上,PerfMon 测量每秒的登录数、平均的磁盘队列长度、处理器时间百分比(整个时间和每台处理器时间)、用于本地安全授权服务器服务 (LSASS) 过程的所有处理器时间的百分比。(最初,测试者记录了可用字节数,但发现它在本测试中并不需要。) 

在每次测试中,测试者每五分钟记录一次最大值和平均值。他们记录了工作站处理的总循环次数并将其除以测试花费的时间。为了适应绘图需要,给出除以 10 的“每秒循环次数”值。在工作站上运行的程序也记录平均每秒进行的操作次数。测试者记录了工作站所显示的平均循环次数。 

测试者想找出引起最大负荷的登录次数以及引起 70 % 负荷的登录次数。在域控制器上除运行测试软件以外,不运行任何其它应用程序。 

他们检查两种基本情况。第一种是登录序列。登录序列由 8 个 API 调用组成,然后执行用户登录脚本。出于测试目的,他们假设了一个最小登录脚本并且假设对用户登录使用默认策略。 

对于登录测试,脚本文件从 Active Directory 中的用户中随机选择一个用户,选定该用户,并执行事件的登录序列。重复执行,直到批处理文件进程被取消或计算机被重新启动。测试者在进程中设置了一个“油 门”,利用它可以控制每秒从客户机发往服务器上的请求的速度。他们通常将此该油门设置得足够高,这样客户机在循环时不会永远不会终止。在图中,图例术语 “速率”指的就是该油门。为了确保在任何测试中客户机都不是一个限制因素,将此速率设置为每秒 50 次请求。 

目的在于是要获知一台服务器能执行多少次登录。测试者想模拟“星期一早晨 8 点”的情况,因为在此时一个组织中的每个用户或许都想在同一时刻进行登录。 

在高性能企业域控制器中,他们测试了 1、 2、 3 和 4 个处理器的情况,这样他们就可以对有关处理器数量如何影响可能的登录次数进行有效的对比。 

第二种情况测试了 Kerberos 票据授权服务消息。其设计思路是一个用户一天只登录一次,但每天会访问多个应用程序服务器。这种类型的访问只需要客户机和域控制器之间的票据授权服务消息对。在此测试中,他们随机选择一个用户并用 KERB_RETRIEVE_TKT_REQUEST 的 ProtocolSubmitBuffer 调用 LsaCallAuthenticationPackage。在该过程无任何其它步骤。 

本测试的目的在于找出一台服务器能够产生和发送多少个票据授权服务票据。测试者使用与登录相同的过程发送消息,并测量相同的参数。同样在测试中,在域控制器上只运行测试软件。 

结果 

下图显示利用价格较低得域控制器进行登录测试的结果。从图中看到,将油门值从每秒 20 个操作变到 50 个操作时,并不影响任何参数。增加任何参数也不会影响到磁盘的利用率。增加发送请求的工作站得数量增加了每秒的登录次数以及 CPU 的利用率。从图中还会看到,尽管有相对比较少的登录次数(平均每秒 10 次),但在价格较低的域控制器中,CPU 的使用率大于 50%。为了保证 CPU 的使用率在 70 % 或更低,则平均每秒登录的次数大约是 15 次(或大约每分钟 900 次)。 


如果您的浏览器不支持行内框,请单击此处查看独立的页面。 

下图显示了在高性能企业域控制器的数据。从中可看到与 CPU 使用率和可用的 CPU 周期有关的登录次数。利用当前可用的工作站,当域控制器的全部 4 个处理器都运行时,将无法使高性能企业域控制器总的 CPU 平均利用率大于 70 %。如果全部 4 个处理器都运行,则测试者的处理速度介于每分钟 2,100 到 2,400 次之间。增加 CPU 确实可以改进系统性能,但不是线性增加。增加的处理器越多,每秒登录次数增加的幅度也越小。在这些测试中并未考虑磁盘性能。 


如果您的浏览器不支持行内框,请单击此处查看独立的页面。 

下图显示了仅进行票据授权服务的测试结果。即使每分钟发送一百万个请求,测试者仍不能使价格较低的域控制器的 CPU 使用率超过 8%。测试环境不够大,不能对任一域控制器产生足够的通信量。两个域控制器的测试结果是非常类似的。 


以下结论是基于这些测试结果的: 

Microsoft 中 Kerberos V5 协议的实施将支持最大的企业环境。实际上,价格较低的域控制器和“超级用户”工作站的大小相同。您会认为只有最小的公司才会将这种级别的服务器用作实际的域控制器。但是在每分钟 900 次登录,并假设在星期一早晨利用一个五分钟窗口让整个组织都登录到系统中,那么这个小服务器会支持多达 4,000-4,500 个用户。使用高性能企业域控制器,这个五分钟窗口将允许超过 10,000 个用户进行登录。 
增加多个处理器时,增加第二个处理器能另增加 50 % 的容量,增加第三个处理器能增加 25 % 的容量,增加第四个处理器时能增加 10 % 到 15 % 的容量。对与 CPU 相关的操作来说,这是很典型的。 
为了支持登录性能,公司应该至少有一台域控制器专门用来进行登录。如果公司希望把域控制器用于其它工作,则也要相应地对登录性能进行规划。 
由于多数组织至少使用两台域控制器,使用价格较低的域控制器这种级别的计算机最多应能支持 5,000 个用户。如果组织的用户数超过 10,000,应使用象高性能企业域控制器这种级别的计算机。还可以对每 10,000 个用户增加一对高性能企业域控制器计算机。 
票据授权服务消息对域控制器负载没什么影响。即使是价格较低的域控制器也可以用最小的 CPU 使用率来处理最大的可测试负载。 
建议 

测试环境和任何生产环境都会不一样。许多因素会影响您的实际结果。测试环境本身有一个专用网络,域控制器除了用于测试什么都不做。本次测试过程应准确反映实际情况中的实际通信。但是,在测试中不可能实际涉及独立工作站中的 4,000 个用户。结果将会有些变化。 

测试中并未考虑二级 (L2) 缓存,这是因为缓存大小会影响测试结果。但是,Intel 公司进行的登录测试发现了以下情况: 

从 512 KB 到 1 MB L2:增加了 7% 到 19% 的吞吐量 
从 1 MB 到 2 MB L2:增加了 4 % 到 31% 的吞吐量。 
2000 Microsoft Corporation。版权所有。 

本文档包含的信息代表了自发布之日,Microsoft Corporation 对所讨论问题的当前看法。因为 Microsoft 必须顺应不断变化的市场条件,故本文档不应理解为 Microsoft 一方的承诺,Microsoft 并不保证所给的信息在发布之日以后的准确性。 

本文档仅供参考。在本文档中, MICROSOFT 不做任何明示的或默示的保证。 

Microsoft、Active Directory、Windows 和 Windows NT 是 Microsoft Corporation 在美国和/或其他国家或地区的注册商标。 (责任编辑:laiquliu)

关注技术,信息,资源,扫描来去留网微信二维码交流。

来去留我李俊

搜索

------分隔线----------------------------
相关栏目

热点推荐
来去留技术信息资源
来去留网为您提供平台咨询交流学习方法及各类热门技术;电器,服装,保健,行业快讯等二十几个类别的资讯