第5章 Windows 10のテクノロジー - サーバ系機能強化にとどまったSMB 3.1.1
Windows同士がネットワーク経由でファイル共有などに用いるSMB(Server Message Block)は、Windows 8で3.0、Windows 8.1で3.02にバージョンアップしている。バージョン3.0以降、基本的に大幅な機能拡張は行われていないが、Windows 10はSMB 3.1.1に対応した。
|
Windows 10をインストールしたPC同士で通信を行い、その後PowerShellでSMBコネクションのバージョンを確認した。「Dialect」の部分から分かるようにSMB 3.1.1を使用している |
SMB 3.1.1は、Windows 10および次期Windows Serverとなる「Windows Server 2016(仮)」がサポートし、執筆時点では公式ブログ以外の公式情報は見つからない。こちらの記事を参照するとSMB 3.1.1の特徴は3つに大別できる。
1つめは「事前認証の整合性(Pre-Authentication Integrity)」。SMBの接続確立と認証メッセージの改ざんを行う中間者攻撃(man-in-the-middle attack)からの保護を強化した。具体的にはSHA-512を用いてネゴシエーションとセッション設定を確認し、接続およびセッションプロパティの改ざんを未然に防ぐと言う。
2つめは「SMB暗号化の改善(SMB Encryption Improvements)」。以前のSMB 3.0はブロック暗号の1つ128ビットAESをCCM(Counter with CBC-MAC)モードで使用していたが、SMB 3.1.1はGCM(Galois/Counter Mode)に対応することで、AES-128-CCMとAES-128-GCMと2つの暗号化アルゴリムを使用可能にしている。ちなみにオプション指定がない場合、AES-128-GCMが用いられるそうだ。
3つめは「クラスタダイアレクトフェンシング(Cluster Dialect Fencing)」。例えば異なるダイアレクト(=方言)をサポートする単一のSMBサーバに、SMBクライアントが接続する際、ローカルおよび非クラスタサーバはSMB 3.1.1を提供するが、クラスタ化したSMBサーバが混合モードで動作中の場合はSMB 3.0.2に戻る仕組みである。
と、このようにいずれもエンタープライズレベルの機能向上であり、我々エンドユーザーに対するメリットは少ない。現時点で情報不足だが、Windows Server 2016(仮)がTechnical Previewという開発段階にあり、仕様が決まっていないのだろう。ちなみにSMBのバージョン(ダイアレクト)によってネゴシエーション結果は異なり、下図のような接続が行われる。
冒頭でも述べたようにSMB 3.0以降はエンタープライズ系の機能強化にとどまり、パフォーマンスの改善はWindows 7およびWindows Server 2008 R2が実装したSMB 2.1がもっとも顕著だった。自宅内にファイルサーバを構築している場合、パフォーマンスの改善を目的としたOSのアップグレードなどは、今のところ必要ないだろう。

