如何阻止 Windows 在 Active Directory 和本地 SAM 数据库中存储密码的 LAN Manager 哈希

文章翻译 文章翻译
文章编号: 299656 - 查看本文应用于的产品
重要说明:本文包含有关修改注册表的信息。 修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
展开全部 | 关闭全部

本文内容

概要

Windows 使用两种不同的密码表示方法(通常称为“哈希”)生成并存储用户帐户密码,而不是以明文存储用户帐户密码。当您将用户帐户的密码设置或更改为包含少于 15 位字符的密码时,Windows 会为此密码同时生成 LAN Manager 哈希(LM 哈希)和 Windows NT 哈希(NT 哈希)。这些哈希存储在本地安全帐户管理器 (SAM) 数据库或 Active Directory 中。

与 NT 哈希相比,LM 哈希相对较弱,因此容易遭到强力攻击。因此,您可能希望阻止 Windows 存储密码的 LM 哈希。本文介绍如何进行操作,以便 Windows 仅存储密码较强的 NT 哈希。

更多信息

基于 Windows 2000 的服务器和基于 Windows Server 2003 的服务器可对从运行所有早期版本 Windows 的计算机连接的用户进行身份验证。但是,早于 Windows 2000 的 Windows 版本不使用 Kerberos 进行身份验证。为了向后兼容,Windows 2000 和 Windows Server 2003 支持 LAN Manager (LM) 身份验证、Windows NT (NTLM) 身份验证和 NTLM 版本 2 (NTLMv2) 身份验证。NTLM、NTLMv2 和 Kerberos 都使用 NT 哈希,也称为 Unicode 哈希。LM 身份验证协议使用 LM 哈希。

如果您不想使用 LM 哈希来实现向后兼容,则最好阻止存储该哈希。如果网络包含 Windows 95、Windows 98 或 Macintosh 客户端,当阻止为域存储 LM 哈希时,可能会遇到下列问题:
  • 没有 LM 哈希的用户将无法连接到充当服务器的基于 Windows 95 的计算机或基于 Windows 98 的计算机,除非此服务器上安装了 Windows 95 和 Windows 98 的目录服务客户端。
  • 基于 Windows 95 的计算机或基于 Windows 98 的计算机上的用户将无法使用他们的域帐户验证到服务器,除非他们在计算机上安装了目录服务客户端。
  • 如果服务器禁用了 LM 哈希,基于 Windows 95 的计算机或基于 Windows 98 的计算机上的用户将无法通过使用该服务器上的本地帐户进行身份验证,除非他们在计算机上安装了目录服务客户端。
  • 用户可能无法从基于 Windows 95 的计算机或基于 Windows 98 的计算机更改他们的域密码,或者当他们尝试从这些早期版本的客户端更改其密码时,可能会遇到帐户锁定问题。
  • Macintosh Outlook 2001 客户端的用户可能无法访问他们在 Microsoft Exchange 服务器上的邮箱。用户可能会在 Outlook 中看到以下错误:
    The logon credentials supplied were incorrect.Make sure your username and domain are correct, then type your password again.
要阻止 Windows 存储密码的 LM 哈希,请使用下列任一方法:

方法 1:通过使用“组策略”实现 NoLMHash 策略

要通过使用“本地组策略”(Windows XP 或 Windows Server 2003)禁止在本地计算机的 SAM 数据库中存储用户密码的 LM 哈希,或通过使用 Active Directory 中的“组策略”(Windows Server 2003)在 Windows Server 2003 Active Directory 环境中禁止存储该哈希,请按照下列步骤操作:
  1. 在“组策略”中,依次展开“计算机配置”、“Windows 设置”、“安全设置”、“本地策略”,然后单击“安全选项”。
  2. 在可用策略的列表中,双击“网络安全:不要在下次更改密码时存储 LAN Manager 的哈希值”。
  3. 单击“启用”,然后单击“确定”。

方法 2:通过编辑注册表实现 NoLMHash 策略

在 Windows 2000 Service Pack 2 (SP2) 和更高版本中,使用下列步骤之一可阻止 Windows 在您下次更改密码时存储 LM 哈希值。

Windows 2000 SP2 和更高版本

警告:“注册表编辑器”使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因“注册表编辑器”使用不当而导致的问题。使用“注册表编辑器”需要您自担风险。

重要说明
NoLMHash
注册表项及其功能未经测试或记录,在 Windows 2000 SP2 之前的生产环境中使用可能不安全。

要使用“注册表编辑器”添加此注册表项,请按照下列步骤操作:
  1. 启动“注册表编辑器”(Regedt32.exe)。
  2. 找到并单击下面的注册表项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. 在“编辑”菜单上,单击“添加项”,键入 NoLMHash,然后按 Enter 键。
  4. 退出“注册表编辑器”。
  5. 重新启动计算机,然后更改密码以使设置生效。
注意:
  • 要在 Windows 2000 Active Directory 环境中禁止存储用户密码的 LM 哈希,必须在所有 Windows 2000 域控制器上都进行此注册表项更改。
  • 此注册表项可阻止在基于 Windows 2000 的计算机上创建新的 LM 哈希,但是它不会清除所存储的 LM 哈希的历史记录。所存储的现有 LM 哈希将在更改密码时被删除。

Windows XP 和 Windows Server 2003

警告:“注册表编辑器”使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因“注册表编辑器”使用不当而导致的问题。使用“注册表编辑器”需要您自担风险。
要使用“注册表编辑器”添加此 DWORD 值,请按照下列步骤操作:
  1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
  2. 在注册表中找到并单击以下注册表项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
  3. 在“编辑”菜单上,指向“新建”,然后单击“DWORD 值”。
  4. 键入 NoLMHash,然后按 Enter 键。
  5. 在“编辑”菜单上,单击“修改”。
  6. 键入 1,然后单击“确定”。
  7. 重新启动计算机,然后更改密码。
注意:
  • 要在 Windows 2003 Active Directory 环境中禁止存储用户密码的 LM 哈希,必须在所有 Windows Server 2003 域控制器上都进行此注册表更改。如果您是域管理员,则可以使用“Active Directory 用户和计算机”Microsoft Management Console (MMC),将此策略部署到所有域控制器或域中的所有计算机上,如方法 1(通过使用“组策略”实现 NoLMHash 策略)中所述。
  • 此 DWORD 值可阻止在基于 Windows XP 的计算机和基于 Windows Server 2003 的计算机上创建新的 LM 哈希。在完成这些步骤后,所有以前 LM 哈希的历史记录都将被清除。
重要说明:如果您创建了可同时用在 Windows 2000 和 Windows XP(或 Windows Server 2003)上的自定义策略模板,则可以同时创建此注册表项和此值。此值与注册表项位于同一位置;该值为 1 时禁止创建 LM 哈希。此注册表项在 Windows 2000 系统升级到 Windows Server 2003 时被升级。但是,最好两个设置均在注册表中。

方法 3:使用长度至少为 15 位字符的密码

阻止 Windows 存储密码的 LM 哈希的最简单方法是:使用长度至少为 15 位字符的密码。在这种情况下,Windows 会存储无法用于验证用户身份的 LM 哈希值。

属性

文章编号: 299656 - 最后修改: 2007年12月3日 - 修订: 8.3
这篇文章中的信息适用于:
  • Microsoft Windows Server 2003 Standard Edition
  • Microsoft Windows Server 2003 Enterprise Edition
  • Microsoft Windows Server 2003, 64-Bit Datacenter Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003 Datacenter Edition
  • Microsoft Windows XP 64-Bit Edition Version 2002
  • Microsoft Windows XP 64-Bit Edition Version 2003
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Tablet PC Edition
  • Microsoft Windows 2000 Service Pack 4
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Service Pack 3
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Windows Small Business Server 2003 Premium Edition
  • Microsoft Windows Small Business Server 2003 Standard Edition
关键字:?
kbinfo kbenv kbnetwork KB299656
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com