控制 SMB 簽署行為
SMB 驗證是如何運作
Server Message Block (SMB) 是一項安全功能,它使用會話金鑰和密碼套件為透過連接的消息添加驗證。 這個驗證包含在 SMB 標的中對整個消息的雜湊。 如果有人在訊息傳輸中篡改了訊息,則被篡改訊息中的數據與驗證中的標記不匹配。 標記還包括原始發送方和預期接收方的身份資訊。 簽證不匹配會警告使用者可能存在不正當行為,幫助他們保護設置免受中繼和欺騙攻擊。
SMB 驗證要求可能涉及外部驗證,涵蓋來自 SMB 客戶端的流量,以及內部驗證,涵蓋流向伺服器的流量。 Windows 和 Windows Server 可以僅要求外部驗證、僅要求內部驗證、同時要求兩者,或者兩者都不要求。 例如:
Windows 11 版本 24H2 企業版、專業版和教育版都需要輸出和輸入 SMB 簽署。
Windows Server 2025 只要求外部 SMB 驗證。
Windows 11 版本 24H2 家用版不需要輸出或輸入 SMB 簽署。
SMB 驗證措施
雖然所有版本的 Windows 和 Windows Server 都支援 SMB 驗證,但第三方可以選擇停用或不支援。 如果您嘗試在不允許 SMB 驗證的第三方 SMB 伺服器上連線到遠端共用,您可能會遇到下列其中一個錯誤訊息:
0xc000a000
-1073700864
STATUS_INVALID_SIGNATURE
The cryptographic signature is invalid.
若要解決此問題,請調整第三方 SMB 伺服器上的設定,以允許 (啟用) SMB 驗證。
當您嘗試連線到使用訪客帳戶簡化存取的第三方裝置時,您可能會收到下列其中一個錯誤訊息:
You can't access this shared folder because your organization's security policies block
unauthenticated guest access. These policies help protect your PC from unsafe or malicious
devices on the network.
Error code: 0x80070035
The network path was not found.
System error 3227320323 has occurred.
如果您無法停用第三方的訪客使用量,可能必須停用 SMB 驗證。 不過,這表示您使用的是訪客存取,並使得用戶端無法確保驗證受信任裝置。
警告
我們不建議停用 SMB 驗證作為對第三方伺服器的解決方法。 我們也不建議嘗試使用訪客帳戶進行驗證。
必要條件
為了控制 SMB 驗證行為並充分發揮其功能,您的系統必須執行以下兩個操作系統之一:
- Windows 11 版本 24H2 或更新版本
- Windows Server 2025 或更新版本
為確保 SMB 驗證能夠有效保護您的數據,您應該遵從以下建議:
- 使用 Kerberos 而不是 NTLMv2。
- 不要使用 IP 位址連接到共享。
- 不要使用 CNAME DNS 記錄。 相反地,使用 NETDOM.EXE 為電腦指定替代名稱。
禁用 SMB 驗證
Windows 11 和 Windows Server 2025 的最新 Insider Preview 組建預設需要 SMB 簽署。 所有 Windows 情境都支持 SMB 驗證。 然而,如果您的情境使用第三方伺服器,且該第三方伺服器不支持 SMB 驗證,則無法連接到遠程共享。
要求啟用 SMB 驗證還會禁用對共享的訪客造訪。 在這些情況下,您必須手動禁用 SMB 驗證以恢復對訪客帳戶的造訪權限。 您可以透過群組原則、PowerShell 和 Windows Admin Center 手動停用 SMB 驗證。
注意
如果您需要修改 Active Directory 網域群組原則,請使用群組原則管理 (gpmc.msc)。
若要停用群組原則中的 SMB 驗證,請執行下列步驟:
選取 [開始],輸入 gpedit.msc,然後按 Enter。
在本機群組原則編輯器中,瀏覽至 Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options。
開啟 Microsoft 網路用戶端: 數位簽章通訊 (一律),選取 [已停用],然後選取 [確定]。
啟用 SMB 簽署
SMB 驗證透過確認資料在傳輸過程中沒有被篡改,來確保資料完整性。 此外,SMB 驗證會藉由驗證伺服器和用戶端的身分識別來提供驗證,這有助於防止對手中間人攻擊。
若要啟用群組原則中的 SMB 驗證,請執行下列步驟:
選取 [開始],輸入 gpedit.msc,然後按 Enter。
在本機群組原則編輯器中,瀏覽至 Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options。
開啟 Microsoft 網路用戶端: 數位簽章通訊 (一律),選取 [已啟用],然後選取 [確定]。
驗證 SMB 驗證狀態
若要檢查 SMB 用戶端或 SMB 伺服器上是否已啟用或停用 SMB 驗證,請執行下列命令:
Get-SmbClientConfiguration | FL RequireSecuritySignature
Get-SmbServerConfiguration | FL RequireSecuritySignature
如果傳回的資訊為 True,則會啟用 SMB 驗證,否則,如果傳回的資訊為 False,則會停用 SMB 驗證。