サーバー メッセージ ブロック署名の概要

この記事では、サーバー メッセージ ブロック (SMB) 署名と、SMB 署名が有効かどうかを判断する方法について説明します。

適用対象:  Windows Server 2012R2、Windows 10 - すべてのエディション

はじめに

SMB 署名 (セキュリティ署名とも呼ばれる) は、SMB プロトコルのセキュリティ メカニズムです。 SMB 署名とは、すべての SMB 3.1.1 メッセージに、セッション キーと高度な暗号化標準 (AES) アルゴリズムを使用して生成される署名が含まれるという意味です。 クライアントは、メッセージ全体のハッシュを SMB ヘッダーの署名フィールドに格納します。

SMB 署名は、Microsoft Windows 2000、Microsoft Windows NT 4.0、および Microsoft Windows 98 にWindowsされました。 署名アルゴリズムは、時間のとともに進化しています。 SMB 2.02 署名は、ハッシュ ベースのメッセージ認証コード (HMAC) SHA-256 の導入によって改善され、SMB1 で使用された 1990 年代後半の古い MD5 メソッドが置き換えられた。 SMB 3.0 に AES-CMAC アルゴリズムが追加されました。 Server 2022 および Windows 11 ではWindows AES-128-GMAC 署名アクセラレーションを追加しました。 最高のパフォーマンスと保護の組み合わせが必要な場合は、最新のバージョンへのアップグレードWindows検討してください。

SMB 署名が接続を保護する方法

送信中にメッセージを変更した場合、ハッシュは一致しません。SMB は、誰かがデータを改ざんしたと知ります。 署名は、送信者と受信者の ID も確認します。 これにより、リレー攻撃が壊れます。 理想的には、セッション キーが強力に開始するために、NTLMv2 の代わりに Kerberos を使用します。 IP アドレスを使用して共有に接続し、CNAME レコードを使用しない。 代わりに Kerberos を使用します。 詳細 については、「USING Computer Name Aliases in place in DNS CNAME Records」 を参照してください。

SMB 署名のポリシーの場所

SMB 署名のポリシーは、[コンピューターの構成] Windows 設定[ローカル 設定 セキュリティ オプション] > > > > に表示されます

  • Microsoft ネットワーク クライアント: デジタル署名通信 (常に)
    レジストリ キー: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
    レジストリ値: RequireSecuritySignature
    データ型: REG_DWORD
    データ: 0 (無効)、1 (有効)
  • Microsoft ネットワーク クライアント: 通信にデジタル署名する (サーバーが同意する場合)
    レジストリ キー: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
    レジストリ値: EnableSecuritySignature
    データ型: REG_DWORD
    データ: 0 (無効)、1 (有効)
  • Microsoft ネットワーク サーバー: デジタル署名通信 (常に)
    レジストリ キー: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
    レジストリ値: RequireSecuritySignature
    データ型: REG_DWORD
    データ: 0 (無効)、1 (有効)
  • Microsoft ネットワーク サーバー: 通信にデジタル署名する (クライアントが同意する場合)
    レジストリ キー: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
    レジストリ値: EnableSecuritySignature
    データ型: REG_DWORD
    データ: 0 (無効)、1 (有効)

メモ これらのポリシーでは、"always" は SMB 署名が必要な場合を示し、"サーバーが同意する場合" または "クライアントが同意する場合" は SMB 署名が有効になっていると示します。

"RequireSecuritySignature" と "EnableSecuritySignature" について

SMB2+ クライアントと SMB2+ サーバーの EnableSecuritySignature レジストリ設定は無視されます。 したがって、SMB1 を使用しない限り、この設定は何も行いません。 SMB2 署名は、必須か指定しないかによってのみ制御されます。 この設定は、サーバーまたはクライアントが SMB 署名を必要とする場合に使用されます。 両方の署名が 0 に設定されている場合にのみ、署名は行われません。

- サーバー – RequireSecuritySignature=1 サーバー – RequireSecuritySignature=0
クライアント – RequireSecuritySignature=1 Signed Signed
クライアント – RequireSecuritySignature=0 Signed 署名されていない

参照

自信を持って SMB 署名を構成する

SMB クライアント防御を介してユーザーを傍受攻撃から保護する方法

SMB 2 および SMB 3 のセキュリティWindows 10:署名キーと暗号化キーの構造

SMBv1 は、サーバー バージョン 1709 Windows 10バージョン 1709 以降Windows既定ではインストールされていません

Netdom コンピューター名