SMB 安全性增強功能

適用于: Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012

本主題說明 Windows Server 中的 SMB 安全性增強功能。

SMB 加密

SMB 加密可提供 SMB 資料的端對端加密,並保護資料免於在不受信任的網路上遭到竊取。 您可以用最少量的工作部署 SMB 加密,但額外的特殊硬體或軟體可能會使成本略微提高。 此功能不需要網際網路通訊協定安全性 (IPsec) 或 WAN 加速器。 SMB 加密可就個別共用或對整個檔案伺服器進行設定,並且可針對讓資料周遊非信任網路的各種案例加以啟用。

注意

SMB 加密不涵蓋待用資料的安全性,這通常會由 BitLocker 磁碟機加密來處理。

在任何需要保護敏感性資料免於遭受攔截式攻擊的情況下,都應考慮使用 SMB 加密。 可能的案例包括:

  • 使用 SMB 通訊協定移動資訊工作者的敏感性資料。 SMB 加密可在檔案伺服器與用戶端之間提供端對端隱私權和完整性保證,無論所周遊的網路為何,例如非 Microsoft 提供者所維護的廣域網路 (WAN) 連線。
  • SMB 3.0 可讓檔案伺服器為伺服器應用程式提供持續可用的儲存體,例如 SQL Server 或 Hyper-V。 啟用 SMB 加密,可讓您有機會保護該資訊免於遭受窺探攻擊。 SMB 加密比多數存放區域網路 (SAN) 所需的專用硬體解決方案更容易使用。

Windows Server 2022 和 Windows 11 引進 aes-256-GCM 和 aes-256-CCM 密碼編譯套件來進行 SMB 3.1.1 加密。 Windows 會在連線到另一部支援它的電腦時,自動協商這個更先進的加密方法,而且也可以透過群組原則來強制執行。 Windows 仍然支援 aes-128-GCM 和 aes-128-CCM。 根據預設,會使用 SMB 3.1.1 來協商 AES-128-GCM,以提供最佳的安全性和效能平衡。

Windows Server 2022 和 Windows 11 SMB 直接存取現在支援加密。 先前,啟用 SMB 加密停用直接資料放置,使 RDMA 效能與 TCP 的速度一樣慢。 現在,資料會在放置之前加密,導致相對較小的效能降低,同時新增 AES-128 和 AES-256 保護的封包隱私權。 您可以使用Windows Admin Center設定 SmbServerConfigurationUNC 強化群組原則來啟用加密。 此外,Windows Server 容錯移轉叢集現在支援對叢集共用磁片區的叢集共用磁片區 (CSV) 和儲存體匯流排層 (SBL) 進行加密內部節點儲存體通訊的細微控制。 這表示當您使用儲存空間直接和 SMB 直接存取時,您可以決定在叢集本身內加密東西部通訊,以提供更高的安全性。

重要

但請注意,相較於非加密機制,任何端對端加密保護都會產生明顯的效能營運成本。

啟用 SMB 加密

您可以為整個檔案伺服器啟用 SMB 加密,或僅針對特定的檔案共用啟用。 請使用下列其中一個程序來啟用 SMB 加密:

使用 Windows Admin Center 啟用 SMB 加密

  1. 下載並安裝Windows Admin Center
  2. 連線至檔案伺服器。
  3. 按一下 [檔案 共用]。
  4. 按一下 [檔案 共用 ] 索引標籤。
  5. 若要在共用上要求加密,請按一下共用名稱,然後選取 [ 啟用 SMB 加密]。
  6. 若要在伺服器上要求加密,請按一下 [檔案伺服器設定 ] 按鈕,然後在 [SMB 3 加密] 下, 從所有用戶端選取 [需要] (其他所有用戶端都會遭到拒絕) 然後按一下 [ 儲存]。

啟用使用 UNC 強化的 SMB 加密

UNC 強化可讓您將 SMB 用戶端設定為需要加密,不論伺服器加密設定為何。 這有助於防止攔截攻擊。 若要設定 UNC 強化,請參閱 群組原則中的 MS15-011:弱點可能會允許遠端執行程式碼。 如需攔截攻擊防護的詳細資訊,請參閱 如何防止使用者透過 SMB 用戶端防禦攔截攻擊

使用 Windows PowerShell 啟用 SMB 加密

  1. 若要為個別的檔案共用啟用 SMB 加密,請在伺服器上輸入下列指令碼:

    Set-SmbShare –Name <sharename> -EncryptData $true
    
  2. 若要為整個檔案伺服器啟用 SMB 加密,請在伺服器上輸入下列指令碼:

    Set-SmbServerConfiguration –EncryptData $true
    
  3. 若要新建啟用 SMB 加密的 SMB 檔案共用,請輸入下列指令碼:

    New-SmbShare –Name <sharename> -Path <pathname> –EncryptData $true
    

部署 SMB 加密的考量

根據預設,針對檔案共用或伺服器啟用 SMB 加密時,只允許 SMB 3.0、3.02 和3.1.1 用戶端存取指定的檔案共用。 這會強制執行系統管理員為所有存取共用的用戶端進行資料保護的意圖。 不過,在某些情況下,系統管理員可能會想要允許不支援 SMB 3.x 之用戶端的未加密存取 (例如,在使用混合用戶端作業系統版本) 時的轉換期間。 若要允許不支援 SMB 3.x 之用戶端的未加密存取,請在 Windows PowerShell 中輸入下列腳本:

Set-SmbServerConfiguration –RejectUnencryptedAccess $false

注意

  • 當您部署加密時,不建議允許未加密的存取。 更新用戶端以支援加密。

下一節中所述的預先驗證完整性功能可防止攔截攻擊將 SMB 3.1.1 的連線降級為 SMB 2.x (這會使用未加密的存取) 。 不過,此功能不會防止降級至 SMB 1.0 (也會導致未加密的存取)。 若要保證 SMB 3.1.1 用戶端一律使用 SMB 加密來存取加密的共用,您必須停用 SMB 1.0 伺服器。 如需指示,請使用 Windows Admin Center 連接到伺服器,並開啟檔案 共用延伸模組,然後按一下 [檔案共用] 索引標籤,提示您卸載,或查看如何偵測、啟用和停用 Windows 中的 SMBv1、smbv2 弱點和 SMBv3。 如果 – RejectUnencryptedAccess 設定保留 $true的預設設定,則只允許支援加密的 smb 3.x 用戶端存取檔案共用 (SMB 1.0 用戶端也將會被拒絕) 。

注意

  • SMB 加密使用進階加密標準 (AES) GCM 和 CCM 演算法來加密及解密資料。 AES CMAC 和 AES GMAC 也提供資料完整性驗證 (簽署加密檔案共用的) ,而不管 SMB 簽署設定為何。 如果您想要啟用不加密的 SMB 簽署,可以繼續執行此動作。 如需詳細資訊,請參閱 設定 SMB 簽署安心
  • 如果您的組織使用廣域網路 (WAN) 加速設備,您在嘗試存取檔案共用或伺服器時可能會遇到問題。
  • 使用預設設定 (沒有加密檔案共用的加密存取權) ,如果不支援 SMB 3.x 的用戶端嘗試存取加密的檔案共用,則事件識別碼1003會記錄到 Microsoft Windows SmbServer/Operational 事件記錄檔中,而用戶端會收到拒絕存取錯誤訊息。
  • SMB 加密與 NTFS 檔案系統中的加密檔案系統 (EFS) 無關,且 SMB 加密不需要或不依存於 EFS 的使用。
  • SMB 加密與 BitLocker 磁碟機加密無關,且 SMB 加密不需要或不依存於 BitLocker 磁碟機加密的使用。

預先驗證完整性

SMB 3.1.1 能夠偵測嘗試降級通訊協定的攔截攻擊,或使用預先驗證完整性來協調用戶端和伺服器的功能。 預先驗證完整性是 SMB 3.1.1 中的必要功能。 它會利用密碼編譯雜湊來防止任何篡改協商和會話設定訊息。 產生的雜湊會用來做為輸入,以衍生會話的密碼編譯金鑰,包括其簽署金鑰。 這可讓用戶端和伺服器互相信任連接和會話屬性。當用戶端或伺服器偵測到這類攻擊時,連接會中斷連線,而事件識別碼1005會記錄在 Microsoft Windows SmbServer/Operational 事件記錄檔中。 因此,若要充分發揮 SMB 加密的功能,強烈建議您停用 SMB 1.0 伺服器。 如需指示,請使用 Windows Admin Center 連接到伺服器,並開啟檔案 共用延伸模組,然後按一下 [檔案共用] 索引標籤,提示您卸載,或查看如何偵測、啟用和停用 Windows 中的 SMBv1、smbv2 弱點和 SMBv3

新的簽署演算法

SMB 3.0 和3.02 使用較新的加密演算法進行簽署:進階加密標準 (AES) 以密碼為基礎的訊息驗證碼 (CMAC) 。 SMB 2.0 則使用較舊的 HMAC-SHA256 加密演算法。 在具有 AES 指令支援的多數新型 CPU 上,AES-CMAC 和 AES-CCM 可大幅提高資料加密的速度。

Windows Server 2022 和 Windows 11 引進 AES-128-GMAC 進行 SMB 3.1.1 簽署。 當連線到另一部支援的電腦時,Windows 將會自動協調這個更佳的加密方法。 Windows 仍然支援 AES-128-CMAC。 如需詳細資訊,請參閱 設定 SMB 簽署安心

停用 SMB 1.0

從 Windows Server 1709 版和 Windows 10 1709 版開始,預設不會安裝 SMB 1.0。 如需移除 SMB1 的指示,請使用 Windows Admin Center 連接到伺服器,然後開啟檔案 共用延伸模組,然後按一下 [檔案共用] 索引標籤,以提示您卸載或查看如何偵測、啟用和停用 SMBv1、smbv2 弱點和 SMBv3,Windows您應該立即停用 SMB1。 如需偵測和停用 SMB 1.0 使用量的詳細資訊,請參閱 停止使用 SMB1。 若為先前或目前的軟體 clearinghouse 需要 SMB 1.0,則檢查 仍需要 SMB1

其他資訊

以下是與 Windows Server 2012 中的 SMB 和相關技術有關的一些額外資源。