SMB 署名動作の制御
SMB 署名のしくみ
サーバー メッセージ ブロック (SMB) 署名は、セッション キーと暗号スイートを使用して、接続を通過するメッセージに署名を追加するセキュリティ機能です。 この署名には、SMB ヘッダー内のメッセージ全体のハッシュが含まれています。 転送中にメッセージが改ざんされた場合、改ざんされたメッセージのデータは署名のハッシュと一致しません。 ハッシュには、元の送信者と本来の受信者 ID も含まれます。 署名の不一致は、可能性のある不正行為をユーザーに警告し、リレー攻撃やスプーフィング攻撃から保護するのに役立ちます。
SMB 署名の要件には、SMB クライアントからのトラフィックを対象とするアウトバウンド署名と、サーバーへのトラフィックを対象とするインバウンド署名の両方が含まれる場合があります。 Windows と Windows サーバーでは、アウトバウンド署名のみ、インバウンド署名のみ、両方が必要、またはどちらも必要としない場合があります。 次に例を示します。
Windows 11 バージョン 24H2 Enterprise、Pro、Education では、送信と受信の両方の SMB 署名が必要です。
Windows Server 2025 では、アウトバウンドの SMB 署名のみが必須です。
Windows 11 バージョン 24H2 Home エディションでは、送信または受信 SMB 署名は必要ありません。
SMB 署名の動作
Windows および Windows Server のすべてのバージョンで SMB 署名がサポートされていますが、サードパーティ製品では 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 署名の動作を制御し、その機能を最大化するには、システムが次の 2 つのオペレーティング システムのいずれかを実行している必要があります。
- Windows 11 バージョン 24H2 以降
- Windows Server 2025 以降
また、SMB 署名がデータのセキュリティ保護で効果を発揮するよう、次の推奨事項従ってください。
- NTLMv2 の代わりに Kerberos を使用する。
- IP アドレスを使用して共有に接続しない。
- CNAME DNS レコードを使用しない。 代わりに、NETDOM.EXE を使用して代替コンピューター名を割り当てる。
SMB 署名を無効にする
SMB 署名は、Windows 11 および Windows Server 2025 の最新の Insider Preview ビルドで既定で必要です。 すべての Windows 環境で SMB 署名を利用できます。 ただし、ご利用の環境が第三者サーバーを使用おり、その第三者サーバーが SMB 署名をサポートしていない場合は、リモート共有に接続できません。
SMB 署名を要求すると、共有へのゲスト アクセスも無効になります。 このような場合は、SMB 署名を手動で無効化し、ゲスト アカウントのアクセスを復元する必要があります。 グループ ポリシー、PowerShell、および Windows Admin Center を使用して、SMB 署名を手動で無効にすることができます。
Note
Active Directory ドメインベースのグループ ポリシーを変更する必要がある場合は、グループ ポリシー管理 (gpmc.msc) を使用します。
グループ ポリシーで SMB 署名を無効にするには、以下の手順を実行します。
[スタート] を選択し、「gpedit.msc」と入力して、Enter キーを押します。
ローカル グループ ポリシー エディターで、[コンピューターの構成] > [Windows の設定] > [セキュリティの設定] > [ローカル ポリシー] > [セキュリティ オプション] に移動します。
[Microsoft ネットワーク クライアント: 常に通信にデジタル署名を行う] を開き、[無効] を選択してから、[OK] を選択します。
SMB 署名を有効にする
SMB 署名は、送信中のデータが改ざんされていないことを確認することで、データの整合性を確保します。 また、SMB 署名は、サーバーとクライアントの ID を検証することで認証を行うため、中間者攻撃の防止に役立ちます。
グループ ポリシーで SMB 署名を有効にするには、以下の手順を実行します。
[スタート] を選択し、「gpedit.msc」と入力して、Enter キーを押します。
ローカル グループ ポリシー エディターで、[コンピューターの構成] > [Windows の設定] > [セキュリティの設定] > [ローカル ポリシー] > [セキュリティ オプション] に移動します。
[Microsoft ネットワーク クライアント: 常に通信にデジタル署名を行う] を開き、[有効] を選択してから、[OK] を選択します。
SMB 署名の状態を確認する
SMB クライアントまたは SMB サーバーで SMB 署名が有効になっているか無効になっているかを確認するには、次のコマンドを実行します。
Get-SmbClientConfiguration | FL RequireSecuritySignature
Get-SmbServerConfiguration | FL RequireSecuritySignature
返された情報が「True」の場合は SMB 署名が有効になっており、返された情報が「False」の場合は SMB 署名が無効になっています。