KB5004605:更新新增了 AES 加密保護至 CVE-2021-33757 的 MS-SAMR 通訊協定

摘要

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 資料庫(登錄)中對密碼進行加密的更多資訊,請參閱密碼概觀

其他資訊

2021年7月13日更新所帶來的變更
這種新行為是怎麼運作的?

現有的 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 日更新會新增四個新事件至系統記錄檔,協助識別未更新的裝置,並幫助提升安全性。

  • 設定狀態事件識別碼 16982 或 16983 會在啟動時或登錄設定變更時記錄。

    事件識別碼 16982

    事件記錄檔 系統
    事件來源 Directory-Services-SAM
    事件識別碼 16982
    關卡 資訊
    事件訊息文字 安全性帳戶管理員現在為呼叫舊版密碼變更或設定 RPC 方法的遠端用戶端記錄詳細事件。 此設定可能會導致大宗訊息,因此應該只在短時間内用于診斷問題。

    事件識別碼 16983

    事件記錄檔 系統
    事件來源 Directory-Services-SAM
    事件識別碼 16983
    關卡 資訊
    事件訊息文字 安全性帳戶管理員現在為呼叫舊版密碼變更或設定 RPC 方法的遠端用戶端記錄定期摘要事件。
  • 在套用 2021 年 7 月 13 日更新之後,會每隔 60 分鐘將摘要事件 16984 記錄至系統事件記錄檔。

    事件識別碼 16984

    事件記錄檔 系統
    事件來源 Directory-Services-SAM
    事件識別碼 16984
    關卡 資訊
    事件訊息文字 安全帳戶管理員在過去 60 分鐘內偵測到 %x 舊版密碼變更或設定 RPC 方法呼叫。
  • 設定詳細事件記錄之後,每次使用舊版 RPC 方法變更或設定帳戶密碼時,事件識別碼 16985 都會被記錄到系統事件記錄檔。

    事件識別碼 16985

    事件記錄檔 系統
    事件來源 Directory-Services-SAM
    事件識別碼 16985
    關卡 資訊
    事件訊息文字 安全性帳戶管理員從網路用戶端偵測到使用舊版方法變更或設定 RPC 方法。 請考慮升級用戶端作業系統或應用程式,以使用此方法的最新且更安全的版本。
    詳細資料:
    RPC 方法:%1
    用戶端網路位址:%2
    用戶端 SID:%3
    使用者名稱:%4

    若要記錄詳細事件識別碼 16985,請切換伺服器或網域控制站上的下列登錄值。

    路徑 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SAM
    類型 REG_DWORD
    價值名稱 AuditLegacyPasswordRpcMethods
    值資料 1 = 已啟用詳細事件記錄
    0 或不顯示 = 已停用詳細事件記錄。 僅摘要事件。 (預設)
設定 PBKDF2 迭代以更改密碼

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?

當伺服器或用戶端不支援 AES 時,會發生降級。

我怎麼判斷是協商出 RC4 加密還是 AES 加密?

使用舊版 RC4 方法時,更新的伺服器會記錄事件。

我可以要求伺服器使用 AES 加密嗎?未來的 Windows 更新會程式化地強制使用 AES 嗎?

目前沒有可用的強制執行模式,但未來可能會有強制模式。 我們無法告知具體時間。

當伺服器支援時,第三方客戶端是否支援 CVE-2021-33757 來協商 AES 的保護?我應該聯絡 Microsoft 支援服務或第三方支援團隊來解答這個問題嗎?

如果協力廠商裝置並未使用 SAMR 通訊協定,則這一點並不重要。 執行 MS-SAMR 通訊協定的協力廠商可能會選擇執行此協定。 如有任何問題,請聯絡協力廠商。

還需要做其他設定的調整嗎?

不需要任何進行其他變更。

這些協議是怎麼用的?

此通訊協定為舊版,而且我們預期其使用率極低。 舊版應用程式可能會使用這些 API。 此外,某些 Active Directory 工具(例如 AD 使用者和電腦 MMC)會使用 SAMR。

使用 Kerberos 協議或其他協議的密碼變更會受到影響嗎?

否。 只有使用這些特定 SAMR API 的密碼變更會受影響。

網域控制器的效能會受到影響嗎?

是。 PBKDF2 比 RC4 貴。 如果在呼叫 SamrUnicodeChangePasswordUser4 API 的網域控制站上同時發生許多密碼變更,LSASS 的 CPU 負載可能會受到影響。 如有需要,您可以在用戶端上調整 PBKDF2 反覆運算,但我們不建議從預設值減少,因為這樣做會降低安全性。

參考

使用 AES-CBC 和 HMAC-SHA 進行驗證加密

AES 密碼用法

協力廠商資訊免責聲明

我們提供協力廠商的連絡資訊,協助您尋找技術支援。 此連絡資訊如有變更,恕不另行通知。 我們不保證此協力廠商連絡資訊的正確性。