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 ドライブ暗号化によって処理されます。

man-in-the-middle 攻撃から機密データを保護する必要があるすべてのシナリオで、SMB 暗号化を検討する必要があります。 次のようなシナリオが想定されます。

  • インフォメーション ワーカーの機密データは、SMB プロトコルを使用して移動されます。 SMB 暗号化は、Microsoft 以外のプロバイダーによって管理されているワイド エリア ネットワーク (WAN) 接続など、通過するネットワークに関係なく、ファイル サーバーとクライアントの間でのエンドツーエンドのプライバシーと整合性の保証を提供します。
  • SMB 3.0 を使用すると、ファイル サーバーは SQL Server や Hyper-V などのサーバー アプリケーションに対して、継続的に使用可能な記憶域を提供できます。 SMB 暗号化を有効にすると、その情報をスヌーピング攻撃から保護する機会が得られます。 SMB 暗号化は、ほとんどの記憶域ネットワーク (SAN) に必要な専用ハードウェア ソリューションよりも簡単に使用できます。

Windows Server 2022 と Windows 11 では、SMB 3.1.1 の暗号化に AES-256-GCM と AES-256-CCM の暗号化スイートが導入されています。 Windows では、それをサポートする別のコンピューターに接続するときに、このより高度な暗号方法が自動的にネゴシエートされます。また、グループ ポリシーを使用して強制することもできます。 Windows は引き続き AES-128-GCM と AES-128-CCM をサポートします。 既定では、AES-128-GCM が SMB 3.1.1 とネゴシエートされ、セキュリティとパフォーマンスの最適なバランスを実現します。

Windows Server 2022 と Windows 11 の SMB ダイレクトは、暗号化をサポートするようになりました。 以前は、SMB 暗号化を有効にすると、データの直接配置が無効になり、RDMA のパフォーマンスが TCP と同じくらい遅くなりました。 現在は、データは配置前に暗号化されるため、パフォーマンスの低下は比較的少なくなり、さらに AES-128 と AES-256 で保護されたパケットのプライバシーが追加されました。 暗号化を有効にするには、Windows Admin CenterSet-SmbServerConfigurationUNC ハードニング グループ ポリシーを使用します。 さらに、Windows Server フェールオーバー クラスターは、クラスター共有ボリューム (CSV) とストレージ バス レイヤー (SBL) のノード内ストレージ通信の暗号化をきめ細かい制御をサポートするようになりました。 つまり、記憶域スペース ダイレクトと SMB ダイレクトを使用する場合、より高いセキュリティのために、クラスター自体の中で東西の通信を暗号化することを決定できます。

重要

非暗号化による保護と比較した場合、エンドツーエンドの暗号化保護ではパフォーマンス上かなりのコストが発生することに注意してください。

SMB 暗号化を有効にする

SMB 暗号化は、ファイル サーバー全体に対して、または特定のファイル共有に対してのみ有効にすることができます。 SMB 暗号化を有効にするには、次のいずれかの手順を使用します。

Windows Admin Center を使用して SMB 暗号化を有効にする

  1. Windows Admin Center をダウンロードしてインストールします。
  2. ファイル サーバーに接続します。
  3. [Files & file sharing](ファイルとファイル共有) をクリックします。
  4. [ファイル共有] タブをクリックします。
  5. 共有に対して暗号化を要求するには、共有名をクリックし、 [Enable SMB encryption](SMB 暗号化を有効にする) を選択します。
  6. サーバーに対して暗号化を要求するには、* [File server settings](ファイル サーバーの設定) ボタンをクリックし、[SMB 3 encryption](SMB 3 暗号化) で [Required from all clients (others are rejected)](すべてのクライアントから必須にする (その他は拒否)) を選択し、 [保存] をクリックします。

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 を使用してサーバーに接続し、 [Files & File Sharing](ファイルとファイル共有) 拡張機能を開き、 [ファイル共有] タブをクリックし、アンインストールを促すメッセージを表示します。または、「Windows で SMBv1、SMBv2、および SMBv3 を検出、有効化、および無効化する方法」を参照してください。 –RejectUnencryptedAccess 設定が既定の設定の $true のままになっている場合は、暗号化対応の SMB 3.x クライアントのみがファイル共有にアクセスできます (SMB 1.0 クライアントも拒否されます)。

注意

  • SMB 暗号化は Advanced Encryption Standard (AES)-GCM および CCM アルゴリズムを使用して、データを暗号化および復号化します。 また、AES-CMAC と AES-GMAC は SMB 署名の設定に関係なく、暗号化されたファイル共有に対してデータ整合性の検証 (署名) を行います。 暗号化せずに SMB 署名を有効にする場合は、この操作を引き続き行うことができます。 詳細については、「信頼できる SMB 署名を構成する」を参照してください。
  • 組織でワイド エリア ネットワーク (WAN) アクセラレーション アプライアンスを使用している場合は、ファイル共有またはサーバーにアクセスしようとすると問題が発生することがあります。
  • 既定の構成 (暗号化されたファイル共有に対して暗号化されていないアクセスは許可されない) では、SMB 3.x をサポートしていないクライアントが暗号化されたファイル共有にアクセスしようとすると、イベント ID 1003 が Microsoft-Windows-SmbServer/Operational イベント ログに記録され、クライアントは "アクセスが拒否されました" というエラー メッセージを受け取ります。
  • SMB 暗号化と NTFS ファイル システム内の暗号化ファイル システム (EFS) には関連がなく、SMB 暗号化は EFS を必要とせず、その使用に依存していません。
  • SMB 暗号化と BitLocker ドライブ暗号化は関連がなく、SMB 暗号化は BitLocker ドライブ暗号化を必要とせず、その使用に依存していません。

事前認証の整合性

SMB 3.1.1 には、事前認証の整合性を使用して、クライアントとサーバー間でネゴシエートされるプロトコルや機能をダウングレードしようとする傍受攻撃を検出する機能があります。 事前認証の整合性は、SMB 3.1.1 の必須機能です。 これにより、暗号化ハッシュが使用され、ネゴシエートとセッション設定メッセージの改ざんから保護されます。 結果のハッシュは、署名キーを含むセッションの暗号キーを導き出すための入力として使用されます。 これにより、クライアントとサーバーは、接続とセッションのプロパティを相互に信頼できるようになります。このような攻撃がクライアントまたはサーバーによって検出された場合、接続は切断され、イベント ID 1005 が Microsoft-Windows-SmbServer/Operational イベント ログに記録されます。 このため、SMB 暗号化のすべての機能を利用するには、SMB 1.0 サーバーを無効にすることを強くお勧めします。 手順としては、Windows Admin Center を使用してサーバーに接続し、 [Files & File Sharing](ファイルとファイル共有) 拡張機能を開き、 [ファイル共有] タブをクリックし、アンインストールを促すメッセージを表示します。または、「Windows で SMBv1、SMBv2、および SMBv3 を検出、有効化、および無効化する方法」を参照してください。

新しい署名アルゴリズム

SMB 3.0 および 3.02 には、署名のための新しい暗号化アルゴリズムである Advanced Encryption Standard (AES) 暗号ベースのメッセージ認証コード (CMAC) が使用されています。 SMB 2.0 では、古い HMAC-SHA256 暗号化アルゴリズムが使用されていました。 AES-CMAC と AES-CCM を使用すると、AES 命令をサポートするほとんどすべての最新の CPU のデータ暗号化を大幅に高速化できます。

Windows Server 2022 と Windows 11 には、SMB 3.1.1 の署名に AES-128-GMAC が導入されました。 このパフォーマンスの高い暗号化方式は、それをサポートする他のコンピューターに接続するときに、Windows によって自動的にネゴシエートされます。 Windows は引き続き AES-128-CMAC をサポートします。 詳細については、「信頼できる SMB 署名を構成する」を参照してください。

SMB 1.0 の無効化

Windows Server バージョン 1709 と Windows 10 バージョン 1709 以降、SMB 1.0 は既定でインストールされなくなりました。 SMB1 を削除する手順としては、Windows Admin Center を使用してサーバーに接続し、 [Files & File Sharing](ファイルとファイル共有) 拡張機能を開き、 [ファイル共有] タブをクリックし、アンインストールを促すメッセージを表示します。または、「Windows で SMBv1、SMBv2、および SMBv3 を検出、有効化、および無効化する方法」を参照してください。SMB1 はまだインストールされているので、すぐに無効にすることをお勧めします。 SMB 1.0 の検出と無効化の詳細については、「SMB1 の使用を止めてください」を参照してください。 以前または現在 SMB 1.0 を必要とするソフトウェアの一覧については、まだ SMB1 が必要なものに関するページを参照してください。

説明を見る

Windows Server 2012 での SMB テクノロジと関連テクノロジに関するその他の資料を以下に示します。