變更日期 |
描述 |
---|---|
10/24/2024 |
更新了「採取動作」一節之步驟 2 的文字,在「Windows 更新時程表」一節的「完整強制執行模式」描述中,並修訂了「登錄機碼資訊」一節中「密鑰發佈中心 (KDC) 登錄機碼」和「憑證更新登錄機碼」主題的日期資訊。 |
9/10/2024 |
已變更[Windows 更新時間] 區段中的完整強制執行模式描述,以反映新的日期。 2025 年 2 月 11 日將會將裝置移至強制執行模式,但保留支援以回復為相容模式。 完整登錄機碼支援將於 2025 年 9 月 10 日結束。 |
7/5/2024 |
新增 SID 擴充功能的相關信息至金鑰發佈中心 (在「登錄機碼資訊」一節中) KDC) 登錄機碼。 |
2023 年 10 月 10 日 |
已新增「Windows 匯報 時間軸」底下的強對應預設變更資訊 |
6/30/2023 |
將完整強制執行模式日期從 2023 年 11 月 14 日變更為 2025 年 2 月 11 日 (這些日期先前列為 2023 年 5 月 19 日到 2023 年 11 月 14 日) 。 |
1/26/2023 |
已將停用模式從 2023 年 2 月 14 日變更為 2023 年 4 月 11 日 |
摘要
CVE-2022-34691,CVE-2022-26931 和 CVE-2022-26923 解決 Kerberos 密鑰發佈中心 (KDC) 維護憑證式驗證要求時,可能會發生的許可權弱點提升問題。 在 2022 年 5 月 10 日安全性更新之前,憑證式驗證不會在計算機名稱結尾的貨幣符號 ($) 。 這允許以各種方式模擬 (詐騙) 相關憑證。 此外,UPN) (用戶主體名稱與 sAMAccountName 之間的衝突也導入了其他模擬 (詐騙) 此安全性更新所解決的弱點。
採取行動
若要保護您的環境,請完成下列憑證式驗證步驟:
-
使用 2022 年 5 月 10 日的更新更新,更新所有執行 Active Directory 憑證服務和 Windows 域控制器的伺服器,以服務憑證為基礎的驗證 (請參閱 相容模式) 。 2022 年 5 月 10 日更新將提供 稽核事件 ,識別與完整強制執行模式不相容的憑證。
-
如果在安裝更新之後一個月內未在域控制器上建立稽核事件記錄,請繼續在所有域控制器上啟用完整強制執行模式。 到 2025 年 2 月為止,如果 未設定 StrongCertificateBindingEnforcement 登錄機碼,域控制器將會移至 [完整強制執行] 模式。 否則,登錄機碼相容模式設定將會繼續受到套用。 在 [完整強制執行] 模式中,如果憑證無法使用強 (安全) 對應準則 (請參閱憑證對應) ,將會拒絕驗證。 不過,要移回相容模式的選項會維持到 2025 年 9 月為止。
稽核事件
2022 年 5 月 10 日 Windows 更新會新增下列事件記錄檔。
找不到強憑證對應,而且憑證沒有新的安全性標識碼 (SID) 擴充功能可供 KDC 驗證。
事件記錄檔 |
系統 |
事件類型 |
KDC 處於相容模式時的警告 如果 KDC 處於強制執行模式時發生錯誤 |
事件來源 |
Kdcsvc |
事件識別碼 |
39 41 (適用於 Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2) |
事件文字 |
密鑰發佈中心 (KDC) 發生有效但無法以強烈方式 (對應使用者的用戶憑證,例如明確對應、金鑰信任對應或 SID) 。 這類憑證應透過明確對應直接取代或對應到使用者。 若要深入瞭解,請參閱 https://go.microsoft.com/fwlink/?linkid=2189925。 使用者:<主體名稱> 憑證主旨:<憑證> 中的主旨名稱 憑證發行者:<發行者完整域名 (FQDN) > 憑證序號:<憑證序號> 憑證縮圖:憑證> <縮圖 |
憑證已在Active Directory 中使用者存在之前發行給使用者,而且找不到強對應。 只有在 KDC 處於相容模式時,才會記錄此事件。
事件記錄檔 |
系統 |
事件類型 |
錯誤 |
事件來源 |
Kdcsvc |
事件識別碼 |
40 48 (適用於 Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2 |
事件文字 |
密鑰發佈中心 (KDC) 發生有效但無法以強烈方式 (對應使用者的用戶憑證,例如明確對應、金鑰信任對應或 SID) 。 憑證也會早於對應的使用者,因此遭到拒絕。 若要深入瞭解,請參閱 https://go.microsoft.com/fwlink/?linkid=2189925。 使用者:<主體名稱> 憑證主旨:<憑證> 中的主旨名稱 憑證發行者:<發行者 FQDN> 憑證序號:<憑證序號> 憑證縮圖:憑證> <縮圖 憑證發行時間:<憑證> 的 FILETIME 帳戶建立時間:在 AD> 中 <主要物件的 FILETIME |
用戶憑證新擴充功能中所包含的 SID 與使用者 SID 不符,這表示憑證已發行給其他使用者。
事件記錄檔 |
系統 |
事件類型 |
錯誤 |
事件來源 |
Kdcsvc |
事件識別碼 |
41 49 (適用於 Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2) |
事件文字 |
密鑰發佈中心 (KDC) 發生有效但包含與對應之使用者不同的 SID 的用戶憑證。 因此,涉及憑證的要求失敗。 若要深入瞭解,請參閱 https://go.microsoft.cm/fwlink/?linkid=2189925。 使用者:<主體名稱> 使用者 SID:<驗證主體> 的 SID 憑證主旨:<憑證> 中的主旨名稱 憑證發行者:<發行者 FQDN> 憑證序號:<憑證序號> 憑證縮圖:憑證> <縮圖 憑證 SID:在新的憑證擴充功能> 中找到 <SID |
憑證對應
網域系統管理員可以使用用戶物件的 altSecurityIdentities 屬性,在Active Directory 中手動對應憑證給使用者。 此屬性有六個支援的值,其中三個對應被視為弱 (不安全的) ,另外三個則視為強。 一般說來,如果對應類型是根據您無法重複使用的標識碼,則會視為強。 因此,所有以使用者名稱和電子郵件地址為基礎的對應類型都視為弱式。
對應 |
範例 |
Type (類型) |
註解 |
X509IssuerSubject |
「X509:<I>IssuerName<S>SubjectName」 |
弱 |
|
X509SubjectOnly |
“X509:<S>SubjectName” |
弱 |
|
X509RFC822 |
“X509:<RFC822>user@contoso.com」 |
弱 |
電子郵件地址 |
X509IssuerSerialNumber |
「X509:<I>IssuerName<SR>1234567890」 |
強 |
推薦項目 |
X509SKI |
“X509:<SKI>123456789abcdef” |
強 |
|
X509SHA1PublicKey |
“X509:<SHA1-PUKEY>123456789abcdef” |
強 |
如果客戶無法使用新的 SID 擴充功能重新發行憑證,建議您使用上述其中一個強對應建立手動對應。 您可以將適當的對應字串新增至 Active Directory 中的使用者 altSecurityIdentities 屬性來執行此動作。
注意事項 某些欄位,例如發行者、主旨和序號,會以「轉寄」格式回報。 當您將對應字串新增至 altSecurityIdentities 屬性時,您必須反轉此格式。 例如,若要將 X509IssuerSerialNumber 對應新增至使用者,請搜尋您要對應至使用者之憑證的 [發行者] 和 [序號] 字段。 請參閱下方的範例輸出。
-
發行者:CN=CONTOSO-DC-CA、DC=contoso、DC=com
-
SerialNumber: 2B0000000011AC000000012
然後,使用下列字串更新 Active Directory 中使用者的 altSecurityIdentities 属性:
-
“X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>120000000AC1100000002B”
若要使用 Powershell 更新此屬性,您可以使用下列命令。 請記住,根據預設,只有網域系統管理員才具有更新此屬性的許可權。
-
set-aduser 'DomainUser' -replace @{altSecurityIdentities= “X509:<I>DC=com,DC=contoso,CN=CONTOSO-DC-CA<SR>120000000AC1100000002B”}
請注意,當您反轉 SerialNumber 時,必須保留位元節順序。 這表示反轉 SerialNumber “A1B2C3” 應導致字串 “C3B2A1” ,而不是 “3C2B1A”。 如需詳細資訊,請參閱 HowTo:透過 altSecurityIdentities 屬性中提供的所有方法,將用戶對應至憑證。
Windows 更新的時程表
重要 啟用階段從 2023 年 4 月 11 日的 Windows 更新開始,這將會忽略停用模式登錄機碼設定。
安裝 2022 年 5 月 10 日的 Windows 更新之後,裝置將會處於相容模式。 如果憑證可以強烈對應到使用者,就會如預期進行驗證。 如果憑證只能弱化對應到使用者,就會如預期進行驗證。 不過,除非憑證早於使用者,否則會記錄警告訊息。 如果憑證早於使用者,且憑證備份登錄機碼不存在,或範圍超出備份補償範圍,驗證將會失敗,並會記錄錯誤訊息。 如果已設定憑證備份登錄機碼,如果日期落在後置補償範圍內,就會在事件記錄檔中記錄警告訊息。
安裝 2022 年 5 月 10 日的 Windows 更新之後,watch 一個月或更長之後可能會出現的任何警告訊息。 如果沒有警告訊息,我們強烈建議您使用憑證式驗證,在所有域控制器上啟用完整強制執行模式。 您可以使用 KDC 登錄機碼 來啟用完整強制執行模式。
除非先前使用 StrongCertificateBindingEnforcement 登錄機碼更新為稽核模式或強制執行模式,否則在安裝 2025 年 2 月 Windows 安全性更新時,域控制器將會移至完整強制執行模式。 如果憑證無法強對應,則會拒絕驗證。 移回相容模式的選項將維持到 2025 年 9 月為止。 在此日期之後,將不再支援 StrongCertificateBindingEnforcement 登錄機碼
如果憑證型驗證仰賴無法從環境移動的弱對應,您可以使用 登錄機碼設定,將域控制器置於停用模式。 Microsoft 不建議 這麼做,我們會在 2023 年 4 月 11 日移除停用模式。
一旦您在 Server 2019 及更新版本上安裝 2024 年 2 月 13 日或更新版本的 Windows 更新,並且在已安裝 RSAT 選擇性功能的情況下支援的用戶端,Active Directory 使用者 & 計算機中的憑證對應預設會使用 X509IssuerSerIalNumber 選取強對應,而非使用 X509IssuerSubject 的弱對應。 您仍可視需要變更設定。
疑難排解
-
使用相關電腦上的 Kerberos 營運記錄來判斷哪個域控制器無法登入。 移至 事件檢視器 > Applications and Services Logs\Microsoft \Windows\Security-Kerberos\Operational。
-
在帳戶嘗試進行驗證的域控制器上,尋找系統事件記錄檔中的相關事件。
-
如果憑證早於帳戶,請重新發行憑證或新增安全 的altSecurityIdentities對 應到帳戶 (請參閱 憑證 對應) 。
-
如果憑證包含 SID 擴展名,請確認 SID 與帳戶相符。
-
如果憑證用來驗證多個不同的帳戶,每個帳戶都需要個別 的altSecurityIdentities對 應。
-
如果憑證沒有對應至帳戶的安全對應,請新增一個或將網域保留在相容模式,直到可以新增一個網域為止。
TLS 憑證對應範例是使用 IIS 內部網路應用程式。
-
在安裝 CVE-2022-26391 和 CVE-2022-26923 保護之後,這些案例預設會使用 Kerberos 憑證服務的使用者 (S4U) 通訊協定來進行憑證對應和驗證。
-
在 Kerberos 憑證 S4U 通訊協定中,驗證要求會從應用程式伺服器流向域控制器,而不是從用戶端流向域控制器。 因此,相關事件會在應用程式伺服器上發生。
登錄機碼資訊
在您於 2022 年 5 月 10 日到 2025 年 9 月 10 日或更新版本發行的 Windows 更新中安裝 CVE-2022-26931 和 CVE-2022-26923 保護之後,就可以使用下列登錄機碼。
安裝 2025 年 9 月或之後發行的 Windows 更新之後,將不支援此登錄機碼。
重要
使用此登錄機碼是環境需要的暫時因應措施,必須謹慎處理。 使用此登入機碼表示您的環境有下列專案:
-
從 2022 年 5 月 10 日發布的更新開始,此登錄機碼只能在相容模式中運作。
-
安裝 2025 年 9 月 10 日發行的 Windows 更新之後,將不支援此登錄機碼。
-
強憑證系結強制執行所使用的 SID 擴充功能偵測和驗證,取決於 KDC 登錄機碼 UseSubjectAltName 值。 如果登錄值不存在,或是值設為 0x1 值,則會使用SID擴充 功能。 如果 UseSubjectAltName存在且值設為 0x0,則不會使用SID擴充功能。
登錄子機碼 |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc |
值 |
StrongCertificateBindingEnforcement |
資料類型 |
REG_DWORD |
資料 |
1 – 檢查是否有強憑證對應。 如果是,則允許驗證。 否則,KDC 會檢查憑證是否具有新的 SID 擴充功能並進行驗證。 如果沒有這個擴充功能,則如果用戶帳戶早於憑證,則允許驗證。 2 – 檢查是否有強大的憑證對應。 如果是,則允許驗證。 否則,KDC 會檢查憑證是否具有新的 SID 擴充功能並進行驗證。 如果沒有此擴充功能,則會拒絕驗證。 0 – 停用強憑證對應檢查。 不建議使用,因為這會停用所有安全性增強功能。 如果您將此設定設為 0,您也必須將 CertificateMappingMethods 設為 0x1F,如以下 Schannel 登錄機碼一節中所述,以計算機憑證為基礎的驗證才能成功。。 |
需要重新啟動嗎? |
否 |
當伺服器應用程式需要客戶端驗證時,Schannel 會自動嘗試將 TLS 用戶端所提供憑證對應至使用者帳戶。 您可以建立將憑證資訊與 Windows 使用者帳戶關聯的對應,驗證使用用戶端憑證登入的使用者。 當您建立並啟用憑證對應之後,每當用戶端呈現用戶端憑證時,您的伺服器應用程式就會自動將該使用者與適當的 Windows 使用者帳戶建立關聯。
Schannel 會嘗試對應您已啟用的每個憑證對應方法,直到其中一個成功為止。 Schannel 會先嘗試對應 Service-for-User-To-Self (S4U2Self) 對應。 [主旨/發行者]、[發行者] 和 [UPN 憑證] 對應現在被視為弱式,且預設為停用。 所選取選項的位合計會決定可用的憑證對應方法清單。
SChannel 登錄機碼預設為0x1F,現在已0x18。 如果您在使用 Schannel 伺服器應用程式時遇到驗證失敗,我們建議您執行測試。 新增或修改域控制器上的 CertificateMappingMethods 登錄機碼值,並將它設定為0x1F並查看是否可以解決問題。 如需詳細資訊,請參閱域控制器上的系統事件記錄檔,以瞭解本文中列出的任何錯誤。 請記住,將 SChannel 登錄機碼值變更回先前的預設 (0x1F) 將會還原為使用弱式憑證對應方法。
登錄子機碼 |
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\Schannel |
值 |
CertificateMappingMethods |
資料類型 |
DWORD |
資料 |
0x0001 - 主旨/發行者憑證對應 (弱 – 預設停用) 0x0002 - 發行者憑證對應 (弱 – 預設停用) 0x0004 - UPN 憑證對應 (弱 – 預設停用) 0x0008 - S4U2 憑證對應 (強) 0x0010 - S4U2 明確憑證對應 (強) |
需要重新啟動嗎? |
否 |
For additional resources and support, see the "Additional resources" section.
安裝以 CVE-2022-26931 和 CVE-2022-26923 為位址的更新之後,如果用戶憑證早於使用者建立時間,驗證可能會失敗。 當您在環境中使用弱式 憑證對應 ,且憑證時間是在設定範圍內的使用者建立時間之前,此登錄機碼可讓您成功驗證。 此登錄機碼不會影響具有強憑證對應的使用者或計算機,因為憑證時間和使用者建立時間不會以強憑證對應來檢查。 當 StrongCertificateBindingEnforcement 設為 2 時,此登錄機碼不會有任何作用。
使用此登錄機碼是環境需要的暫時因應措施,必須謹慎處理。 使用此登入機碼表示您的環境有下列專案:
-
從 2022 年 5 月 10 日發布的更新開始,此登錄機碼只能在相容模式中運作。 會允許在反向補償位移內進行驗證,但會記錄事件記錄檔警告,表示系結較弱。
-
啟用此登錄機碼可讓使用者在憑證時間之前於設定範圍內的使用者建立時間之前進行驗證,做為弱對應。 安裝 2025 年 9 月或之後發行的 Windows 更新之後,弱式對應將不受支援。
登錄子機碼 |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc |
值 |
CertificateBackdatingCompensation |
資料類型 |
REG_DWORD |
資料 |
近似年份的因應措施值:
附註 如果您知道您環境中憑證的存留期,請將此登錄機碼設定為比憑證存留期稍長一些。 如果您不知道您環境的憑證存留期,請將此登錄機碼設定為 50 年。 此密鑰不存在時預設為 10 分鐘,這符合 Active Directory 憑證服務 (ADCS) 。 (0x5E0C89C0) 的最大值為 50 年。 此金鑰會以秒為單位,將金鑰發佈中心 (KDC) 會忽略使用者/計算機帳戶的驗證憑證發行時間和帳戶建立時間之間的時間差異。 重要 只有在您的環境需要時,才設定此登錄機碼。 使用此登錄機碼正在停用安全性檢查。 |
需要重新啟動嗎? |
否 |
企業證書頒發機構單位
根據預設,在安裝 2022 年 5 月 10 日 Windows 更新之後,在針對在線範本發行的所有憑證中,企業證書頒發機構單位 (CA) 會開始新增新的非臨界值擴充功能, (OID) (1.3.6.1.4.311.25.2) 。 您可以在對應範本的 msPKI-Enrollment-Flag 值中設定0x00080000位,以停止新增此擴充功能。
您執行下列 certutil 命令,以排除 用戶 範本憑證無法取得新的擴充功能。
-
使用企業系統管理員或同等認證登入證書頒發機構單位伺服器或加入網域 Windows 10 用戶端。
-
開啟命令提示字元,並選擇 以系統管理員身分執行。
-
執行 certutil -dstemplate user msPKI-Enrollment-Flag +0x00080000。
停用新增此擴充功能將會移除新擴充功能所提供的保護。 請考慮只在下列其中一項之後執行此動作:
-
您確認在 KDC 的 Kerberos 通訊協定驗證中,初始驗證 (PKINIT) 的公鑰加密無法接受對應的憑證
-
對應的憑證已設定其他強憑證對應
安裝 2022 年 5 月 10 日的 Windows 更新之後,具有非 Microsoft CA 部署的環境將不會使用新的 SID 擴充功能受到保護。 受影響的客戶應與對應的 CA 廠商合作解決此問題,或考慮使用上述其他強憑證對應。
For additional resources and support, see the "Additional resources" section.
常見問題集
否,不需要續約。 CA 會以相容模式出貨。 如果您想要使用 ObjectSID 擴充功能進行強對應,則需要新的憑證。
在 2025 年 2 月 11 日的 Windows 更新中,尚未在 [強制執行] 中 (StrongCertificateBindingEnforcement 登錄值設定為 2) ,將會移至 [強制執行]。 如果驗證遭拒絕,您會看到 Windows Server 2008 R2 SP1 和 Windows Server 2008 SP2 的事件識別碼 39 (或事件標識符 41) 。 在此階段,您將可以選擇將登錄機碼值設回 1 (相容模式) 。
在 2025 年 9 月 10 日的 Windows 更新中,將不再支援 StrongCertificateBindingEnforcement 登錄值。
其他資源
如需 TLS 用戶端憑證對應的詳細資訊,請參閱下列文章: