TaZmen Sniffer Protocol (TZSP) は、他のプロトコルをラップするために使用されるカプセル化 プロトコルです。侵入検知システム (IDS) 、ワイヤレス トラッキング、またはその他のワイヤレス アプリケーションをサポートするために、 802.11ワイヤレス パケットをラップするためによく使用されます。
プロトコルの概要
802.11センサーやアクセス ポイントの多くは、パケットキャプチャに TZSP プロトコルを使用しています。これは、UDP経由で他のプロトコルをカプセル化するように設計されたオープン プロトコルです。このプロトコルの主な用途は、ワイヤレス トラフィックをキャプチャし、有線ネットワーク経由で送信することです。
プロトコル ヘッダー
プロトコルは、各 TZSP パケットに 3 つの部分を指定しました。4 バイトのヘッダー、それに続く 1 つ以上のタグ付きフィールド (最後のフィールドは TAG_END (0x01) である必要があります)、そして最後にカプセル化されたデータです。
ヘッダーとタグ付きフィールドでは、適切な場合はビッグエンディアン順序が使用されます。
バージョン
TZSP バージョンは常に 1 (0x01) に設定する必要があります。
タイプ
0 (0x00) 受信したタグリスト 1 (0x01) 送信用パケット 2 (0x02) 予約済み 3 (0x03) 構成 4 (0x04) キープアライブ 5 (0x05) ポートオープナー
カプセル化されたプロトコル
1 (0x01) イーサネット 18 (0x12 ) IEEE802.11 119 (0x77)プリズムヘッダー 127 (0x7F) WLAN AV
タグ付きフィールド
タグ付きフィールドは、1 バイトのタグ タイプ、それに続く 1 バイトのタグ長、それに続く可変量のデータで構成されます。タグ長には、タグ タイプまたはタグ長は含まれません。すべての TZSP 互換デコーダーは、不明なタグ付きフィールドをスキップする必要があります。
<1 符号なしバイト > タグタイプ <1 符号なしバイト > タグの長さ <可変長> タグの長さに依存
この形式には 2 つの例外があります。まず、TAG_END (0x01) が受信されると、それはすべてのタグ付きフィールドの終わりになります。タグの長さも、関連するデータもありません。2 つ目は、TAG_PADDING (0x00) です。これはどの時点でも挿入できますが、無視する必要があります。タグの長さも、タグ データもありません。
有効な TZSP タグ タイプは次のとおりです。
TAG_PADDING = 0 (0x00)
この特別なタグ付きフィールドには、タグの長さもタグ データもありません。受信側はこれを無視する必要があります。フレームをワード境界にパックするために使用されることがあります。
TAG_END = 1 (0x01)
この特別なタグ付きフィールドには、タグの長さもタグ データもありません。つまり、これ以上タグはありません。このタグの後に、UDP パケットの最後まで、カプセル化されたフレームが続きます。これは必須の唯一のタグであり、カプセル化されたデータの前に含める必要があります。このタグの後に可変タグを置くことはできません。
TAG_RAW_RSSI = 10 (0x0A)
このフィールドには、センサーから取得した 生のRSSI が含まれます。データは、符号付きバイトまたは符号付きショートのいずれかです。
TAG_SNR = 11 (0x0B)
このフィールドには、センサーから取得した生のノイズが含まれます。データは、符号付きバイトまたは符号付きショートのいずれかです。
TAG_DATA_RATE = 12 (0x0C)
このフィールドには、カプセル化されたパケットが送信されたデータ レートが含まれます。
使用できる有効な値は次のとおりです。
2 (0x02) = 1 MB/秒 4 (0x04) = 2 MB/秒 11 (0x0B) = 5.5 MB/秒 12 (0x0C) = 6 MB/秒 18 (0x12) = 9 MB/秒 22 (0x16) = 11 MB/秒 24 (0x18) = 12 MB/秒 36 (0x24) = 18 MB/秒 44 (0x2C) = 22 MB/秒 48 (0x30) = 24 MB/秒 66 (0x42) = 33 MB/秒 72 (0x48) = 36 MB/秒 96 (0x60) = 48 MB/秒 108 (0x6C) = 54 MB/秒
以下は、古い Prism ベースのセンサーで使用される可能性のある古い定数です。TZSP デコーダーはこれらをデコードできるはずですが、TZSP エンコーダーでは使用しないでください。
10 (0x0A) = 1 MB/秒 20 (0x14) = 2 MB/秒 55 (0x37) = 5.5 MB/秒 110 (0x6E) = 11 MB/秒
TAG_TIMESTAMP = 13 (0x0D)
これはセンサーMAC がパケットを受信した時刻です。4 バイトの符号なし int です。
TAG_CONTENTION_FREE = 15 (0x0F)
これは、パケットが競合のない期間に送信されたかどうかを確認するために使用されます。これは 1 バイトの符号なしバイトです。
TAG_DECRYPTED = 16 (0x10)
これは、パケットが復号化されたかどうかを確認するために使用されます。これは 1 バイトの符号なしバイトです。
TAG_FCS_ERROR = 17 (0x11)
これは、受信時にパケットにフレーム チェック シーケンス(FCS) エラーがあったかどうかを伝えるために使用されます。これは 1 バイトの符号なしバイトです。1 (0x01) は、パケットのデコード時に FCS エラーがあったことを示します。0 (0x00)、またはこのフィールドがない場合は、デコード エラーがなかったことを意味します。その他の値はすべて予約されています。
TAG_RX_CHANNEL = 18 (0x12)
これは、パケットをキャプチャしたときにセンサーが使用されていたチャネルです。パケットが送信されたチャネルではありません。これは、符号なしバイトとして保存されます。
TAG_PACKET_COUNT = 40 (0x28)
これは単調に増加するパケット数です。4 バイトの unsigned int として保存されます。
TAG_RX_FRAME_LENGTH = 41 (0x29)
これは受信パケットの長さです。送信パケットのサイズとは必ずしも一致しません。送信パケットは切り捨てられている可能性があります。これは 2 バイトの符号なし short として保存されます。
TAG_WLAN_RADIO_HDR_シリアル = 60 (0x3C)
これは、パケットをキャプチャしたセンサーまたは AP のシリアル番号またはその他の一意の識別子を指定するために、一部のセンサー ベンダーによって使用されます。これは可変長フィールドです。
カプセル化されたパケット
カプセル化されたパケットは、タグ付きフィールドの直後に格納する必要があります。このカプセル化されたパケットは、元の完全なパケット サイズから切り捨てられる可能性があり、TAG_RX_FRAME_LENGTH フィールドで指定されたサイズと同じである必要はありません。カプセル化されたパケットがUDPパケットの残り全体を占めると想定されます。
オープンソースサポート
参考文献
- ^ Wireshark: ディスプレイ フィルター リファレンス: Tazmen スニファー プロトコル
外部リンク
- アーカイブされたドキュメント
