服务器消息阻止签名概述

本文介绍了 SMB 签名 (阻止) ,以及如何确定是否启用 SMB 签名。

原始产品版本:   Windows Server 2012 R2、Windows 10 - 所有版本
原始 KB 编号:   887429

简介

SMB 签名是 SMB 协议中的安全机制,也称为安全签名。 SMB 签名旨在帮助提高 SMB 协议的安全性。 SMB 签名在 Microsoft Windows NT 4.0 Service Pack 3 (SP3) Microsoft Windows 98 中首次提供。

本文将介绍以下 SMB 主题:

  • SMB 签名的默认配置。
  • 如何在 Microsoft Windows Server 2003、Microsoft Windows XP、Microsoft Windows 2000、Windows NT 4.0 和 Windows 98 中配置 SMB 签名。
  • 如何确定是否在网络监视器跟踪中启用 SMB 签名。
  • 示例 SMB 签名方案。

更多信息

工作站服务和服务器服务的默认配置

可以针对工作站服务和服务器服务配置 SMB 签名和安全签名。 工作站服务用于传出连接。 服务器服务用于传入连接。

启用 SMB 签名后,支持 SMB 签名的客户端可以连接,并且不支持 SMB 签名的客户端也可以进行连接。 当需要 SMB 签名时,SMB 连接中的两台计算机都必须支持 SMB 签名。 如果一台计算机不支持 SMB 签名,则 SMB 连接不成功。 默认情况下,为以下操作系统上的传出 SMB 会话启用 SMB 签名:

  • Windows Server 2003
  • Windows XP
  • Windows 2000
  • Windows NT 4.0
  • Windows 98

默认情况下,为以下操作系统上的传入 SMB 会话启用 SMB 签名:

  • 基于 Windows Server 2003 的域控制器
  • 基于 Windows 2000 Server 的域控制器
  • Windows NT基于 4.0 服务器的域控制器

默认情况下,基于 Windows Server 2003 的域控制器上的传入 SMB 会话需要 SMB 签名。

配置 SMB 签名

建议您使用组策略配置 SMB 签名,因为如果存在替代域策略,本地注册表值更改将无法正常工作。 配置关联的组策略时,将更改以下注册表值。

SMB 签名的策略位置

备注

以下组策略设置位于"计算机配置 Windows 设置安全设置本地策略 \ \ \ \ 安全策略"组策略对象编辑器路径中。

Windows Server 2003 - 默认域控制器组策略
工作站/客户端

Microsoft 网络客户端:对通信进行数字签名 (始终) 策略设置:未定义

Microsoft 网络客户端:如果 (策略) :未定义有效设置:由于本地策略 (已启用,则对通信进行数字签名)

服务器

Microsoft 网络服务器:对通信进行数字签名 (始终) 策略设置:已启用

Microsoft 网络服务器:如果客户端同意 (策略设置,) 对通信进行数字签名: 已启用

Windows XP 和 2003 - 本地计算机组策略
工作站/客户端

Microsoft 网络客户端:对通信 (始终) 安全设置:已禁用

Microsoft 网络客户端:如果服务器同意 (安全性设置,) 对通信进行数字签名: 已启用

服务器

Microsoft 网络服务器:对通信进行数字签名 (始终) 安全设置:已禁用

Microsoft 网络服务器:如果 (安全设置) 对通信进行数字签名:已禁用

Windows 2000 - 默认域控制器组策略
工作站/客户端

对客户端通信进行数字签名 (始终) 计算机设置:未定义

如果可能,请对客户端 (进行数字签名) 计算机设置:未定义

服务器

对服务器通信进行数字签名 (始终) 计算机设置:未定义

如果可能,请对服务器 (进行数字签名) 计算机设置:已启用

Windows 2000 - 本地计算机组策略
工作站/客户端

对客户端通信进行数字签名 (始终) 设置:禁用有效设置:已禁用

如果可能,请对客户端 (进行数字签名) 本地设置:已启用有效设置: 已启用

服务器

对服务器通信进行数字签名 (始终) 设置:禁用有效设置:已禁用

如果可能,请对服务器 (进行数字签名) 本地设置:禁用有效设置:已禁用

与 Windows Server 2003、Windows XP 和 Windows 2000 的组策略配置关联的注册表值

客户端

在 Windows Server 2003 和 Windows XP 中,"Microsoft 网络客户端:对通信 (如果服务器同意) "组策略进行数字签名;在 Windows 2000 中,"在可能的情况下对客户端通信 () 进行数字签名"组策略映射到以下注册表子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters

值名称:EnableSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

Windows Server 2003、Windows XP 和 Windows 2000 中的默认值为启用 (1) 。

在 Windows Server 2003 和 Windows XP 中,"Microsoft 网络客户端:对通信进行数字签名 (始终) "组策略,在 Windows 2000 中,"对客户端通信进行数字签名 (始终) "组策略映射到以下注册表子项:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters

值名称:RequireSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

Windows Server 2003、Windows XP 和 Windows 2000 中的默认值为 0, (不需要) 。

服务器

在 Windows Server 2003 和 Windows XP 中,名为"Microsoft 网络客户端:如果客户端同意) 则对通信 (进行数字签名"的组策略,在 Windows 2000 中,名为"在可能的情况下对服务器通信 () 进行数字签名"的组策略映射到以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters

值名称:EnableSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

Windows Server 2003 域控制器和 Windows 2000 域控制器中的默认值为启用 (1) 。 Windows NT 4.0 域控制器中的默认值为 0, (禁用) 。 Windows Server 2003 和 Windows XP 策略名为"Microsoft 网络服务器:对通信进行数字签名 (始终) "

Windows 2000 策略名为"对服务器通信进行数字签名 (始终) ",两者均映射到以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters

值名称:RequireSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

Windows Server 2003 域控制器和 Windows 2000 域控制器中的默认值为 1 (所需的) 。 Windows NT 4.0 域控制器中的默认值为 0, (不需要) 。

若要Windows NT基于 4.0 的计算机能够通过 SMB 签名连接到基于 Windows 2000 的计算机,必须在基于 Windows 2000 的计算机上创建以下注册表值:
值名称:enableW9xsecuritysignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

没有与 EnableW9xsecuritysignature 注册表值相关联的组策略。

在 4.0 Windows NT SMB 登录

对客户端进行数字签名:

备注

这是 RDR 密钥 - 而不是 Windows 2000 中的 LanmanWorkstation

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Rdr\Parameters

值名称:EnableSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

默认值为 1 (4.0 SP3 Windows NT) 4.0 SP3 或更高版本的计算机上启用 1。

值名称:RequireSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

默认值为 0 (4.0 SP3) 4.0 SP3 或更高版本的计算机上Windows NT不需要此值。

策略中的"对服务器进行数字签名"映射到以下注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters

值名称:EnableSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

在 Windows Server 2003 (、Windows 2000 域控制器和) 4.0 域控制器上,默认值为 1 Windows NT 4.0。 运行 Windows 4.0 SP3 Windows NT版本的所有其他计算机的默认值为 0, (禁用) 。

值名称:RequireSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

在 Windows Server 2003 (上) 默认值为 1。 运行 Windows 4.0 SP3 Windows NT版本的所有其他计算机的默认值为 0, (不需要) 。

在 Windows 98 中配置 SMB 签名

将以下两个注册表值添加到此注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\VNetsup

值名称:EnableSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

Windows 98 中的默认值为 1, (启用) 。

值名称:RequireSecuritySignature
数据类型:REG_DWORD
数据:0 (禁用) ,1 (启用)

备注

Windows 98 中的默认值为 0, (禁用) 。

如何确定是否在网络监视器跟踪中启用 SMB 签名

若要确定是启用 SMB 签名、服务器需要还是同时启用这两者,请从服务器查看协商方言响应:

SMB:R negotiate,方言 # = 5
SMB:Command = R negotiate
SMB:安全模式摘要 (NT) = [值 3、7 或 15]
SMB: ....1 = 用户级别安全性
SMB: ...1. = 加密密码

在此响应中,"安全模式摘要 (NT) ="字段表示服务器上配置的选项。 此值将为 3、7 或 15。

以下信息有助于说明协商方言响应号码所代表的内容:
UCHAR SecurityMode;安全模式:

位 0:0 = 共享

位 0:1 = 用户

第 1 位:1 = 加密密码

第 2 位:1 = 启用 SMB (安全) 签名

第 3 位:1 = (SMB 序列号) 签名

如果在服务器上禁用 SMB 签名,则值为 3。

"SMB:安全模式摘要 (NT) = 3 (0x3) "

如果 SMB 签名已启用且服务器不需要,则值为 7。

"SMB:安全模式摘要 (NT) = 7 (0x7) "

如果启用 SMB 签名并且服务器需要 SMB 签名,则值为 15。

"SMB:安全模式摘要 (NT) = 15 (0xF) "
有关 CIFS 的其他信息,请访问以下 Microsoft 网站:
CIFS

SMB 签名方案

方言协商后 SMB 会话的行为显示客户端配置。

如果客户端和服务器都启用了 SMB 签名并且需要 SMB 签名,或者客户端和服务器都禁用了 SMB 签名,则连接成功。

如果在客户端启用 SMB 签名并且要求在服务器禁用 SMB 签名,则与 TCP 会话的连接在方言协商后正常关闭,并且客户端会收到以下"1240 (ERROR_LOGIN_WKSTA_RESTRICTION) "错误消息:

发生系统错误 1240。 该帐户无权从此工作站登录。

如果 SMB 签名在客户端被禁用并且在服务器上已启用且必需,则客户端收到对树连接或 Transact2 的 DFS 引用的响应时收到"STATUS_ACCESS_DENIED"错误消息。