
HTTP 経由で通信する場合、ソースをブラウザーで表示するにはまずダウンロードする必要があることはわかっています。しかし、Windows ファイル共有を使用する場合 (ネットワーク ルーター経由で共有する場合と、PC-1 から PC-2 への LAN ケーブルなどによる直接共有する場合の両方) には、実際にどのようなメカニズムが機能するのでしょうか。
- リクエストがサーバーに送信され、特定のポートでクライアントが受信するデータの送信が開始されますか?
- クライアントは従来のドライブのようにサーバーのドライブにアクセスし、データを読み取って自分のドライブにコピーしますか?
- サーバーはファイルをクライアントのハードディスクにコピーしますか?
答え1
Windows ファイル共有は実際にはどのように機能しますか?
Microsoft SMB プロトコル認証
Microsoft SMB プロトコルで使用されるセキュリティ モデルは、SMB の他のバリエーションで使用されるセキュリティ モデルと同一であり、ユーザーと共有の 2 つのセキュリティ レベルで構成されます。共有とは、Microsoft SMB プロトコル クライアントがアクセスできるファイル、ディレクトリ、またはプリンターのことです。
ユーザー レベルの認証では、サーバー上の共有にアクセスしようとするクライアントは、ユーザー名とパスワードを入力する必要があります。認証されると、ユーザーは、共有レベルのセキュリティで保護されていないサーバー上のすべての共有にアクセスできるようになります。このセキュリティ レベルにより、システム管理者は共有にアクセスできるユーザーとグループを具体的に決定できます。
共有レベルの認証は、共有へのアクセスがその共有に割り当てられたパスワードによってのみ制御されることを示します。ユーザー レベルのセキュリティとは異なり、このセキュリティ レベルでは認証にユーザー名は必要なく、ユーザー ID は確立されません。
これらのセキュリティ レベルのいずれの場合も、パスワードはサーバーに送信される前に暗号化されます。NTLM および古い LAN Manager (LM) 暗号化は、Microsoft SMB プロトコルでサポートされています。どちらの暗号化方法でもチャレンジ レスポンス認証が使用されます。この認証では、サーバーがクライアントにランダムな文字列を送信し、クライアントは計算された応答文字列を返します。この応答文字列によって、クライアントがアクセスに十分な資格情報を持っていることが証明されます。
Microsoft SMB プロトコルと CIFS プロトコルの概要
サーバー メッセージ ブロック (SMB) プロトコルは、ネットワーク ファイル共有プロトコルであり、Microsoft Windows に実装されているものは Microsoft SMB プロトコルとして知られています。プロトコルの特定のバージョンを定義するメッセージ パケットのセットは、方言と呼ばれます。共通インターネット ファイル システム (CIFS) プロトコルは、SMB の方言です。SMB と CIFS は、VMS、Unix のいくつかのバージョン、およびその他のオペレーティング システムでも使用できます。
CIFSの技術リファレンスは、Microsoft Corporationから入手可能です。共通インターネットファイルシステム (CIFS) ファイルアクセスプロトコル。
主な目的はファイル共有ですが、Microsoft SMB プロトコルの追加機能には次のものが含まれます。
- 方言交渉
- ネットワーク上の他のMicrosoft SMBプロトコルサーバの特定、またはネットワークブラウジング
- ネットワーク経由での印刷
- ファイル、ディレクトリ、共有アクセスの認証
- ファイルとレコードのロック
- ファイルとディレクトリの変更通知
- 拡張ファイル属性処理
- ユニコードサポート
- 便宜的ロック
OSIネットワークモデルでは、Microsoft SMBプロトコルはアプリケーション層またはプレゼンテーション層のプロトコルとして最もよく使用され、トランスポートには下位レベルのプロトコルに依存します。Microsoft SMBプロトコルが最もよく使用されるトランスポート層プロトコルはNetBIOS over TCP/IPです(NBTMただし、Microsoft SMB プロトコルは、別のトランスポート プロトコルなしでも使用できます。Microsoft SMB プロトコルと NBT の組み合わせは、通常、下位互換性のために使用されます。
Microsoft SMB プロトコルはクライアント/サーバー実装であり、一連のデータ パケットで構成されます。各パケットには、クライアントから送信された要求またはサーバーから送信された応答が含まれます。これらのパケットは、次のように大まかに分類できます。
- セッション制御パケット - 共有サーバー リソースへの接続を確立および切断します。
- ファイル アクセス パケット - リモート サーバー上のファイルとディレクトリにアクセスして操作します。
- 一般メッセージ パケット - 印刷キュー、メールスロット、名前付きパイプにデータを送信し、印刷キューの状態に関するデータを提供します。
一部のメッセージパケットは、応答遅延を減らし、ネットワーク帯域幅を増やすためにグループ化され、1回の送信で送信されることがあります。これは「バッチ処理」と呼ばれます。Microsoft SMB プロトコル パケット交換シナリオ このセクションでは、パケット バッチ処理を使用する Microsoft SMB プロトコル セッションの例について説明します。
トピック: Microsoft SMB プロトコル方言
- 説明:Microsoft SMB プロトコルを使用してクライアントとサーバー間の接続を確立するには、まず、クライアントとサーバーの両方がサポートする最高レベルの機能を持つ方言を決定する必要があります。
トピック: Microsoft SMB プロトコル認証
- 説明:Microsoft SMB プロトコルで使用されるセキュリティ モデルは、SMB の他のバリエーションで使用されるセキュリティ モデルと同一であり、ユーザーと共有の 2 つのセキュリティ レベルで構成されます。共有とは、Microsoft SMB プロトコル クライアントがアクセスできるファイル、ディレクトリ、またはプリンターのことです。
トピック: Microsoft SMB プロトコル パケット交換シナリオ
- 説明:クライアントとサーバー間の Microsoft SMB プロトコル パケット交換の例。
コメントの明確化
ファイル アクセス パケット - リモート サーバー上のファイルとディレクトリにアクセスして操作します。これはどのように行われるのでしょうか。要求されたデータをクライアントに渡す応答パケットはどこにありますか。 クラーケン
各パケットは通常、ファイルのオープン、ファイルのクローズ、ファイルの読み取りなど、何らかの基本的な要求です。サーバーはパケットを受信し、要求が正当かどうかを確認し、クライアントが適切なファイル権限を持っていることを確認し、最後に要求を実行して、応答パケットをクライアントに返します。クライアントは応答パケットを解析し、最初の要求が成功したかどうかを判断できます。
その他のリソース
プロトコルを使用してクライアント サーバー セッションを確立する際に関係する認証の側面を示す図と説明。
SMB の詳細については、以下を参照してください。