98 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 基本VoIPプロトコル
{{#include ../../../banners/hacktricks-training.md}}
## 信号プロトコル
### SIP (セッション開始プロトコル)
これは業界標準で、詳細については以下を確認してください:
{{#ref}}
sip-session-initiation-protocol.md
{{#endref}}
### MGCP (メディアゲートウェイ制御プロトコル)
MGCP (メディアゲートウェイ制御プロトコル) は、RFC 3435で概説された**信号**および**通話** **制御プロトコル**です。これは、3つの主要なコンポーネントからなる集中型アーキテクチャで動作します
1. **コールエージェントまたはメディアゲートウェイコントローラー (MGC)**: MGCPアーキテクチャのマスターゲートウェイは、**メディアゲートウェイの管理と制御**を担当します。通話のセットアップ、変更、終了プロセスを処理します。MGCはMGCPプロトコルを使用してメディアゲートウェイと通信します。
2. **メディアゲートウェイ (MG) またはスレーブゲートウェイ**: これらのデバイスは、**異なるネットワーク間でデジタルメディアストリームを変換**します。例えば、従来の回路交換電話とパケット交換IPネットワークなどです。これらはMGCによって管理され、受信したコマンドを実行します。メディアゲートウェイには、トランスコーディング、パケット化、エコーキャンセリングなどの機能が含まれる場合があります。
3. **信号ゲートウェイ (SG)**: これらのゲートウェイは、**異なるネットワーク間で信号メッセージを変換**する責任があります。これにより、従来の電話システムSS7とIPベースのネットワークSIPまたはH.323)間でシームレスな通信が可能になります。信号ゲートウェイは、相互運用性を確保し、異なるネットワーク間で通話制御情報が適切に通信されることを保証するために重要です。
要約すると、MGCPは通話制御ロジックをコールエージェントに集中させ、メディアおよび信号ゲートウェイの管理を簡素化し、通信ネットワークにおけるスケーラビリティ、信頼性、効率を向上させます。
### SCCP (スキニークライアント制御プロトコル)
スキニークライアント制御プロトコル (SCCP) は、Cisco Systemsが所有する**独自の信号および通話制御プロトコル**です。主に**Cisco Unified Communications Manager**以前のCallManagerとCisco IP電話または他のCisco音声およびビデオエンドポイント間の通信に使用されます。
SCCPは、通話制御サーバーとエンドポイントデバイス間の通信を簡素化する軽量プロトコルです。「スキニー」と呼ばれるのは、他のVoIPプロトコルH.323やSIPに比べてミニマリスティックな設計と帯域幅要件が少ないためです。
SCCPベースのシステムの主なコンポーネントは次のとおりです
1. **通話制御サーバー**: 通常はCisco Unified Communications Managerで、このサーバーは通話のセットアップ、変更、終了プロセス、および通話転送、通話転送、通話保留などの他の電話機能を管理します。
2. **SCCPエンドポイント**: これらは、IP電話、ビデオ会議ユニット、またはSCCPを使用して通話制御サーバーと通信する他のCisco音声およびビデオエンドポイントなどのデバイスです。これらはサーバーに登録し、信号メッセージを送受信し、通話制御サーバーから提供される指示に従います。
3. **ゲートウェイ**: これらのデバイス音声ゲートウェイやメディアゲートウェイなどは、従来の回路交換電話とパケット交換IPネットワークのような異なるネットワーク間でメディアストリームを変換する責任があります。トランスコーディングやエコーキャンセリングなどの追加機能が含まれる場合もあります。
SCCPは、Cisco通話制御サーバーとエンドポイントデバイス間のシンプルで効率的な通信方法を提供します。ただし、**SCCPは独自のプロトコル**であるため、非Ciscoシステムとの相互運用性が制限される可能性があります。そのような場合、SIPのような他の標準VoIPプロトコルがより適しているかもしれません。
### H.323
H.323は、音声、ビデオ、データ会議を含むマルチメディア通信のための**プロトコルスイート**で、パケット交換ネットワークIPベースのネットワークなど上で動作します。これは**国際電気通信連合**ITU-Tによって開発され、マルチメディア通信セッションを管理するための包括的なフレームワークを提供します。
H.323スイートの主なコンポーネントには次のものが含まれます:
1. **端末**: これらは、H.323をサポートし、マルチメディア通信セッションに参加できるエンドポイントデバイスIP電話、ビデオ会議システム、またはソフトウェアアプリケーションなどです。
2. **ゲートウェイ**: これらのデバイスは、従来の回路交換電話とパケット交換IPネットワークのような異なるネットワーク間でメディアストリームを変換し、H.323と他の通信システム間の相互運用性を可能にします。トランスコーディングやエコーキャンセリングなどの追加機能が含まれる場合もあります。
3. **ゲートキーパー**: これらは、H.323ネットワーク内で通話制御および管理サービスを提供するオプションのコンポーネントです。アドレス変換、帯域幅管理、入場制御などの機能を実行し、ネットワークリソースの管理と最適化を支援します。
4. **マルチポイント制御ユニット (MCU)**: これらのデバイスは、複数のエンドポイントからのメディアストリームを管理およびミキシングすることにより、マルチポイント会議を促進します。MCUは、ビデオレイアウト制御、音声アクティブスイッチング、継続的なプレゼンスなどの機能を可能にし、複数の参加者との大規模な会議を開催することを可能にします。
H.323は、音声およびビデオコーデックの範囲、ならびに通話転送、通話転送、通話保留、通話待機などの他の補助サービスをサポートします。VoIPの初期に広く採用されましたが、H.323は、相互運用性が向上し、実装が容易な**セッション開始プロトコル (SIP)**のようなより現代的で柔軟なプロトコルに徐々に置き換えられています。ただし、H.323は多くのレガシーシステムで使用され続けており、さまざまな機器ベンダーによってサポートされています。
### IAX (インターアスタリスクエクスチェンジ)
IAX (インターアスタリスクエクスチェンジ) は、主にAsterisk PBXプライベートブランチ交換サーバーと他のVoIPデバイス間の通信に使用される**信号および通話制御プロトコル**です。これは、AsteriskオープンソースPBXソフトウェアの作成者であるMark Spencerによって、SIPやH.323のような他のVoIPプロトコルの代替として開発されました。
IAXは、その**シンプルさ、効率性、実装の容易さ**で知られています。IAXの主な特徴は次のとおりです
1. **単一UDPポート**: IAXは、信号とメディアトラフィックの両方に単一のUDPポート4569を使用し、ファイアウォールやNATのトラバーサルを簡素化し、さまざまなネットワーク環境での展開を容易にします。
2. **バイナリプロトコル**: SIPのようなテキストベースのプロトコルとは異なり、IAXはバイナリプロトコルであり、帯域幅消費を削減し、信号およびメディアデータの送信をより効率的にします。
3. **トランキング**: IAXはトランキングをサポートしており、複数の通話を単一のネットワーク接続に結合することができ、オーバーヘッドを削減し、帯域幅の利用を改善します。
4. **ネイティブ暗号化**: IAXは、RSAのような方法を使用して鍵交換を行い、AESによるメディア暗号化を提供する暗号化のサポートを組み込んでおり、エンドポイント間の安全な通信を提供します。
5. **ピアツーピア通信**: IAXは、中央サーバーを必要とせずにエンドポイント間で直接通信するために使用でき、よりシンプルで効率的な通話ルーティングを可能にします。
利点にもかかわらず、IAXにはいくつかの制限があります。主にAsteriskエコシステムに焦点を当てており、SIPのようなより確立されたプロトコルに比べて広く採用されていません。そのため、非Asteriskシステムやデバイスとの相互運用性には最適ではないかもしれません。ただし、Asterisk環境内で作業している人々にとって、IAXはVoIP通信のための堅牢で効率的なソリューションを提供します。
## 伝送および輸送プロトコル
### SDP (セッション記述プロトコル)
SDP (セッション記述プロトコル) は、IPネットワーク上での音声、ビデオ、またはデータ会議などのマルチメディアセッションの特性を記述するために使用される**テキストベースのフォーマット**です。これは**インターネット技術者タスクフォース (IETF)**によって開発され、**RFC 4566**で定義されています。SDPは実際のメディア伝送やセッションの確立を処理せず、**SIP (セッション開始プロトコル)**のような他の信号プロトコルと組み合わせて、メディアストリームとその属性に関する情報を交渉および交換するために使用されます。
SDPの主な要素は次のとおりです
1. **セッション情報**: SDPは、セッション名、セッションの説明、開始時刻、終了時刻など、マルチメディアセッションの詳細を記述します。
2. **メディアストリーム**: SDPは、メディアタイプ音声、ビデオ、またはテキスト、輸送プロトコルRTPまたはSRTP、およびメディアフォーマットコーデック情報など、メディアストリームの特性を定義します。
3. **接続情報**: SDPは、メディアが送信または受信されるべきネットワークアドレスIPアドレスおよびポート番号に関する情報を提供します。
4. **属性**: SDPは、セッションまたはメディアストリームに関する追加のオプション情報を提供するために属性の使用をサポートします。属性は、暗号化キー、帯域幅要件、またはメディア制御メカニズムなどのさまざまな機能を指定するために使用できます。
SDPは通常、次のプロセスで使用されます
1. 開始する当事者が、メディアストリームとその属性の詳細を含む提案されたマルチメディアセッションのSDP記述を作成します。
2. SDP記述は、通常、SIPやRTSPのような信号プロトコルメッセージ内に埋め込まれて受信者に送信されます。
3. 受信者はSDP記述を処理し、その能力に基づいて、提案されたセッションを受け入れる、拒否する、または変更することがあります。
4. 最終的なSDP記述は、信号プロトコルメッセージの一部として開始する当事者に返送され、交渉プロセスが完了します。
SDPのシンプルさと柔軟性は、さまざまな通信システムでマルチメディアセッションを記述するための広く採用された標準となっており、IPネットワーク上でリアルタイムのマルチメディアセッションを確立および管理する上で重要な役割を果たします。
### RTP / RTCP / SRTP / ZRTP
1. **RTP (リアルタイムトランスポートプロトコル)**: RTPは、IPネットワーク上で音声およびビデオデータ、または他のリアルタイムメディアを配信するために設計されたネットワークプロトコルです。**IETF**によって開発され、**RFC 3550**で定義されているRTPは、SIPやH.323のような信号プロトコルと一般的に使用され、マルチメディア通信を可能にします。RTPは、メディアストリームの**同期**、**シーケンシング**、および**タイムスタンプ**のメカニズムを提供し、スムーズでタイムリーなメディア再生を確保します。
2. **RTCP (リアルタイムトランスポート制御プロトコル)**: RTCPはRTPの補完プロトコルで、サービス品質QoSを監視し、メディアストリームの伝送に関するフィードバックを提供するために使用されます。RTPと同じ**RFC 3550**で定義されているRTCPは、**RTPセッションの参加者間で制御パケットを定期的に交換**します。パケットロス、ジッター、往復時間などの情報を共有し、ネットワーク条件に適応し、全体的なメディア品質を向上させるのに役立ちます。
3. **SRTP (セキュアリアルタイムトランスポートプロトコル)**: SRTPは、メディアストリームに対して**暗号化**、**メッセージ認証**、および**再生防止**を提供するRTPの拡張です。**RFC 3711**で定義されており、SRTPはAESのような暗号化アルゴリズムとHMAC-SHA1のようなメッセージ認証を使用します。SRTPは、SIP over TLSのような安全な信号プロトコルと組み合わせて使用され、マルチメディア通信におけるエンドツーエンドのセキュリティを提供します。
4. **ZRTP (ジマーマンリアルタイムトランスポートプロトコル)**: ZRTPは、RTPメディアストリームに対して**エンドツーエンドの暗号化**を提供する暗号鍵合意プロトコルです。PGPの作成者であるPhil Zimmermannによって開発され、**RFC 6189**で説明されています。ZRTPは、鍵交換のために信号プロトコルに依存するSRTPとは異なり、信号プロトコルとは独立して機能するように設計されています。**Diffie-Hellman鍵交換**を使用して、通信する当事者間で共有秘密を確立し、事前の信頼や公開鍵基盤PKIを必要としません。ZRTPには、マンインザミドル攻撃から保護するための**短い認証文字列 (SAS)**などの機能も含まれています。
これらのプロトコルは、**IPネットワーク上でのリアルタイムマルチメディア通信の配信とセキュリティにおいて重要な役割を果たします**。RTPとRTCPは実際のメディア伝送と品質監視を処理し、SRTPとZRTPは、送信されたメディアが盗聴、改ざん、再生攻撃から保護されることを保証します。
{{#include ../../../banners/hacktricks-training.md}}