あまりパケットの中身は見ることが少なくなってきましたが、久しぶりに見てみます。
EC2構築するのは面倒だったのでVirtualBoxでWindows Server2025の評価版構築しました。
コピー元がWindows 11、コピー先がWindows Server2025となり、操作はGUIからコピペを行っています。
署名無し
まずはSMB署名必須無効の状態です。
Get-SmbClientConfiguration | FL RequireSecuritySignature
RequireSecuritySignature : False
Negotiate Protocol Requestを確認するとrequiredはFalseになってます。

SMB2プロトコルを開いてい見るとSignatureが0で指定されていたので、この状態が署名なしということなのでしょう。

署名有り
次に署名必須有りの状態です。
Get-SmbClientConfiguration | FL RequireSecuritySignature
RequireSecuritySignature : True
Negotiate Protocol Requestを確認するとrequiredはTrueになってます。

同じようにSignatureを見てみると0以外が指定されていたため署名がされていることがわかります。

署名の生成についてはSMB1はMD5、SMB2.02はHMAC-SHA256、SMB3.0からAES-CMACが使われているようです。
ただ、Windows Server2022、Windows11ではAES-128-GMAC署名を使っているようです。
署名アルゴリズムは時間の経過と共に進化し、SMB 2.02 署名は HMAC-SHA-256 で改善され、SMB1 にあった古い MD5 メソッドに置き換わりました。 さらに、SMB 3.0 では AES-CMAC が導入されました。 Windows Server 2022 と Windows 11 では、AES-128-GMAC 署名の高速化が導入されました。
https://learn.microsoft.com/ja-jp/windows-server/storage/file-server/smb-signing-overview
SMBのパケットは初めてみましたが、見た目はコピペしているだけなのに裏では色々動いているなーと実感しますね。
次は署名有り無しのコピー速度の差でも試してみようかな。

コメント