摘要
2021 年 7 月 13 Windows 更新及更高版本 Windows 更新为 CVE-2021-33757 添加了保护。
安装 2021 年 7 月 13 日 Windows 更新或更高版本的 Windows 更新后,如果 SAM 服务器支持 AES 加密,则使用旧版 MS-SAMR 协议进行密码操作时,高级加密标准 (AES) 加密将是 Windows 客户端上的首选方法。 如果 SAM 服务器不支持 AES 加密,则允许回退到旧版 RC4 加密。
CVE-20201-33757 中的更改特定于 MS-SAMR 协议,独立于其他身份验证协议。 MS-SAMR 通过 RPC 和命名管道使用 SMB。 尽管 SMB 也支持加密,但默认情况下不启用加密。 默认启用 CVE-20201-33757 中的更改,并提供 SAM 层的额外安全性。 除了在所有受支持的 Windows 版本安装 2021 年 7 月 13 日 Windows 更新或更高版本 Windows 更新中包含的 CVE-20201-33757 保护外,无需进行任何其他配置更改。 不支持的 Windows 版本应停用或升级到支持的版本。
请足以, CVE-2021-33757 仅修改使用 MS-SAMR 协议的特定 API 时密码在传输中加密的方式,具体而言,请勿修改密码的存储方式。 有关如何在 Active Directory 中和本地 SAM 数据库(注册表)中对密码进行加密的更多信息,请参阅密码概述。
更多信息
-
密码更改模式
更新通过添加将使用 AES 的新密码更改方法来修改协议的密码更改模式。
使用 RC4 的旧方法
使用 AES 的新方法
SamrUnicodeChangePasswordUser2 (OpNum 55)
SamrUnicodeChangePasswordUser4 (OpNum 73)
有关 MS-SAMR OpNums 的完整列表,请参阅消息处理事件和排序规则。
-
密码设置模式
更新通过将两个新的用户信息类添加到 SamrSetInformationUser2 (Opnum 58) 方法来修改协议的密码设置模式。 可以按如下所示设置密码信息。
使用 RC4 的旧方法
使用 AES 的新方法
SamrSetInformationUser2 (Opnum 58) 与 UserInternal4InformationNew。
SamrSetInformationUser2 (Opnum 58) 与 UserInternal8Information。
SamrSetInformationUser2 (Opnum 58) 与UserInternal5InformationNew。
SamrSetInformationUser2 (Opnum 58) 与 UserInternal7Information。
现有 SamrConnect5 方法通常用于在 SAM 客户端与服务器之间建立连接。
更新的服务器现在将在 SamrConnect5() 响应中返回新位,如 SAMPR_REVISION_INFO_V1 中定义。
值 |
含义 |
0x00000010 |
在客户端收到时,此值在设置后指示客户端应该使用 AES 加密和 SAMPR_ENCRYPTED_PASSWORD_AES 结构来加密通过线路发送的密码缓冲区。 请参阅 AES 密码用法(3.2.2.4 节)和 SAMPR_ENCRYPTED_PASSWORD_AES(2.2.6.32 节)。 |
如果更新的服务器支持 AES,则客户端将使用新方法和新的信息类来执行密码操作。 如果服务器未返回此标志或客户端未更新,则客户端将回退到使用 RC4 加密的先前方法。
密码设置操作需要可写域控制器 (RWDC)。 密码更改由只读域控制器 (RODC) 转到 RWDC。 必须更新所有设备,以便使用 AES。 例如:
-
如果未更新客户端、RODC 或 RWDC,则使用 RC4 加密。
-
如果更新了客户端、RODC 和 RWDC,则使用 AES 加密。
2021 年 7 月 13 日更新向系统日志添加了四个新事件,以帮助识别未更新的设备,并帮助提高安全性。
-
配置状态事件 ID 16982 或 16983 在启动时或注册表配置更改时记录。
事件 ID 16982事件日志
系统
事件源
目录-服务-SAM
事件 ID
16982
级别
信息
事件消息文本
安全帐户管理器现在为调用旧密码更改或设置 RPC 方法的远程客户端记录详细事件。 此设置可能会导致大量消息,并且只能在短时间内用于诊断问题。
事件日志
系统
事件源
目录-服务-SAM
事件 ID
16983
级别
信息
事件消息文本
安全帐户管理器现在为调用旧密码更改或设置 RPC 方法的远程客户端记录定期摘要事件。
-
应用 2021 年 7 月 13 日更新后,每 60 分钟将一次摘要事件 16984 记录到系统事件日志中。
事件 ID 16984事件日志
系统
事件源
目录-服务-SAM
事件 ID
16984
级别
信息
事件消息文本
安全帐户管理器在过去 60 分钟内检测到 %x 旧密码更改或设置 RPC 方法调用。
-
配置详细事件日志记录后,每次使用旧版 RPC 方法来更改或设置帐户密码时,事件 ID 16985 都会记录到系统事件日志中。
事件 ID 16985事件日志
系统
事件源
目录-服务-SAM
事件 ID
16985
级别
信息
事件消息文本
安全帐户管理器从网络客户端检测到使用旧更改或者设置 RPC 方法。 请考虑升级客户端操作系统或应用程序,以使用此方法的最新且更安全的版本。
Details:
RPC 方法:%1
客户端网络地址:%2
客户端 SID:%3
用户名:%4
若要记录详细事件 ID 16985,请在服务器上或域控制器上切换以下注册表值。
路径
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SAM
类型
REG_DWORD
数值名称
AuditLegacyPasswordRpcMethods
值数据
1 = 已启用详细日志记录
0 或不存在 = 禁用详细日志记录。 仅摘要事件。 (默认)
如 SamrUnicodeChangePasswordUser4 (Opnum 73) 中所述,使用新的 SamrUnicodeChangePasswordUser4 方法时,客户端和服务器将使用 PBKDF2 算法从纯文本旧密码派生加密和解密密钥。 这是因为旧密码是服务器和客户端已知的唯一常见机密。
有关 PBKDF2 的更多信息,请参阅 BCryptDeriveKeyPBKDF2 函数 (bcrypt.h)。
如果出于性能和安全性原因必须更改,可以通过在客户端上设置以下注册表值来调整客户端用于密码更改的 PBKDF2 迭代次数。
注意: 减少 PBKDF2 迭代次数会降低安全性。 我们不建议将次数从默认值减少。 但是,我们建议使用 PBKDF2 迭代的可能最高次数。
路径 |
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SAM |
类型 |
REG_DWORD |
数值名称 |
PBKDF2Iterations |
值数据 |
最小值 5,000 到最大值 1,000,000 |
默认值 |
10,000 |
注意: PBKDF2 不用于密码设置操作。 对于密码设置操作,SMB 会话密钥是客户端与服务器之间的共享机密,用作派生加密密钥的基础。
有关更多信息,请参阅获取 SMB 会话密钥。
常见问题解答 (FAQ)
当服务器或客户端不支持 AES 时,将发生降级。
使用采用 RC4 的旧方法时,更新的服务器将记录事件。
当前没有可用的强制模式,但将来可能会提供。 我们无法告知具体的时间。
如果第三方设备未使用 SAMR 协议,则这一点很重要。 执行 MS-SAMR 协议的第三方供应商可能会选择执行此协议。 如有任何疑问,请与第三方供应商联系。
无需进行其他更改。
此协议是旧版协议,我们预计其使用频率非常低。 旧应用程序可能使用这些 API。 此外,某些 Active Directory 工具(例如 AD 用户和计算机 MMC)使用 SAMR。
不需要。 只会影响使用这些特定 SAMR API 的密码更改。
是的。 PBKDF2 比 RC4 更昂贵。 如果调用 SamrUnicodeChangePasswordUser4 API 的域控制器上同时发生许多密码更改,则 LSASS 的 CPU 负载可能会受到影响。 如果需要,可以在客户端上优化 PBKDF2 迭代,但我们不建议从默认值减少,因为这样做会降低安全性。
参考
使用 AES-CBC 和 HMAC-SHA 进行身份验证的加密
第三方信息免责声明
我们提供了第三方联系信息,以便你寻求技术支持。 该联系信息如有更改,恕不另行通知。 我们不保证此第三方联系信息的准确性。