メインコンテンツまでスキップ

3.4. Secure RTCP (セキュア RTCP)

3.4. Secure RTCP (セキュア RTCP)

セキュア RTCP (Secure RTCP) は, セキュア RTP (Secure RTP) の定義に従います。SRTCP は, RTCP パケット定義に 3 つの必須の新しいフィールド (SRTCP インデックス, "暗号化フラグ" encrypt-flag, および認証タグ authentication tag) と 1 つのオプションフィールド (MKI) を追加します。3 つの必須フィールドは, 等価な SRTCP パケットを形成するために RTCP パケットに追加されなければなりません (MUST)。追加されたフィールドは, 他のプロファイル固有の拡張の後に続きます。

[RFC3550] の Section 6.1 によると, 複合パケット (compound packets) には必須のパケットフォーマットがあります。SRTCP は, 最初の部分が送信者レポート (sender report) または受信者レポート (receiver report) でなければならない (MUST) という意味で, その要件に従ってパケットを与えられなければなりません。ただし, そのセクションで指定されている RTCP 暗号化プレフィックス (ランダムな 32 ビット量) は使用してはなりません (MUST NOT)。そこで述べられているように, それは [RFC3550] で指定されている暗号化方法にのみ適用可能であり, SRTP で使用される暗号化メカニズムには必要ないためです。

  0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+
|V=2|P| RC | PT=SR or RR | length | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| SSRC of sender | |
+>+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| ~ sender info ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| ~ report block 1 ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| ~ report block 2 ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| ~ ... ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |V=2|P| SC | PT=SDES=202 | length | |
| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| | SSRC/CSRC_1 | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| ~ SDES items ~ |
| +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| ~ ... ~ |
+>+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| |E| SRTCP index | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+
| ~ SRTCP MKI (OPTIONAL) ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| : authentication tag : |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
+-- Encrypted Portion Authenticated Portion -----+

図 2. セキュア RTCP パケットの形式の例。送信者レポートと SDES パケットを含む基礎的な RTCP 複合パケットで構成されます。

SRTCP パケットの暗号化部分 (Encrypted Portion) は, 等価な複合 RTCP パケットの RTCP ペイロードの暗号化 (Section 4.1) で構成され, 最初の RTCP パケットから, つまり 9 番目のオクテットから複合パケットの終わりまでです。SRTCP パケットの認証部分 (Authenticated Portion) は, 等価な (最終的に複合) RTCP パケット全体, E フラグ, および SRTCP インデックス (ペイロードに暗号化が適用された後) で構成されます。

追加されたフィールドは以下の通りです:

E-flag: 1 ビット, 必須

E フラグは, 現在の SRTCP パケットが暗号化されているか暗号化されていないかを示します。[RFC3550] の Section 9.1 では, 複合 RTCP パケットを 2 つの下位層パケットに分割することを許可しており, 1 つは暗号化され, もう 1 つは平文で送信されます。E ビットが "1" に設定されている場合は暗号化パケットを示し, "0" は非暗号化パケットを示します。

SRTCP index: 31 ビット, 必須

SRTCP インデックスは, SRTCP パケット用の 31 ビットカウンタです。SRTP で使用される "暗黙的" インデックスアプローチとは対照的に, インデックスは各パケットに明示的に含まれます。最初の SRTCP パケットが送信される前に SRTCP インデックスはゼロに設定されなければならず (MUST), 各 SRTCP パケットが送信された後に 2^31 を法として 1 増やされなければなりません (MUST)。特に, 再鍵化の後, SRTCP インデックスは再びゼロにリセットしてはなりません (MUST NOT)。

Authentication Tag: 設定可能な長さ, 必須

認証タグは, メッセージ認証データを運ぶために使用されます。

MKI: 設定可能な長さ, オプション

MKI はマスター鍵インジケータ (Master Key Indicator) であり, Section 3 の MKI 定義に従って機能します。

SRTCP は, 以下の変更を除いて, デフォルトで SRTP の暗号コンテキストパラメータとパケット処理を使用します:

  • 受信者は, パケットで明示的にシグナリングされるため, インデックスを「推定」する必要はありません。

  • 事前定義された SRTCP 暗号化は Section 4.1 で指定されていますが, このセクションで与えられた SRTCP 暗号化部分の定義を使用し, SRTCP インデックスをインデックス i として使用します。暗号化変換と関連パラメータは, デフォルトで関連する SRTP ストリームの保護のために選択されたものと同じでなければなりません (SHALL)。一方, NULL アルゴリズムは RTCP SDES アイテムに適用されなければなりません (SHALL) (したがって平文で送信されなければなりません (MUST))。

  • 事前定義された SRTCP メッセージ認証と完全性は Section 4.2 で指定されていますが, SRTCP 認証部分を入力とし, SRTCP インデックスをインデックス i として使用します。認証変換と関連パラメータ (セッション認証鍵など) は, デフォルトで関連する SRTP ストリームの保護のために選択されたものと同じでなければなりません (SHALL)。

  • 事前定義された SRTCP 鍵導出は Section 4.3 で指定されており, SRTCP インデックスをインデックス i として使用します。マスター鍵とマスターソルトは関連する SRTP ストリームと同じでなければなりませんが (SHALL), セッション鍵長と key_derivation_rate は SRTP で使用されるものと異なってもかまいません (MAY)。

SRTP と同様に, SRTCP マスター鍵の指示のために MKI をパケットに含めることができます。