3.1. Secure RTP (セキュア RTP)
3.1. Secure RTP (セキュア RTP)
SRTP パケットのフォーマットは Figure 1 に示されています。
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|X| CC |M| PT | sequence number | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| timestamp | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| synchronization source (SSRC) identifier | |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ |
| contributing source (CSRC) identifiers | |
| .... | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| RTP extension (OPTIONAL) | |
+>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | payload ... | |
| | +-------------------------------+ |
| | | RTP padding | RTP pad count | |
+>+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+<+
| ~ SRTP MKI (OPTIONAL) ~ |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| : authentication tag (RECOMMENDED) : |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
+- Encrypted Portion* Authenticated Portion ---+
Figure 1. SRTP パケットのフォーマット。*暗号化部分は Section 4 の事前定義変換では平文と同じサイズです。
SRTP パケットの「Encrypted Portion」(暗号化部分) は, 同等の RTP パケットの RTP ペイロード (存在する場合は RTP パディングを含む) の暗号化で構成されます。暗号化部分は平文と完全に同じサイズである場合もあれば (MAY), より大きい場合もあります (MAY)。Figure 1 は RTP [RFC3550] の可能なパディングを含む RTP ペイロードを示しています。
事前定義された暗号化変換はいずれもパディングを使用しません。これらの場合, RTP と SRTP のペイロードサイズは完全に一致します。SRTP に追加される新しい変換 (Section 6 に従う) はパディングを必要とする場合があり, したがってより大きなペイロードを生成する可能性があります。RTP は独自のパディングフォーマットを提供しており (Fig. 1 参照), RTP ヘッダのパディングインジケータにより, 接頭辞なしコードを使用するパディングと比較してコンパクト性の点で利点があります。この RTP パディングは, パディングを必要とする変換のデフォルト方法である必要があります (SHALL)。変換は他のパディング方法を指定することができ (MAY), その場合はパディングの量, フォーマット, および処理を指定する必要があります (MUST)。パディングを使用する暗号化変換は, 特にメッセージ認証が使用されていない場合 [V02], 微妙な攻撃に対して脆弱であることに注意することが重要です。新しい暗号化変換の各仕様は, 使用するパディングのセキュリティへの影響を慎重に検討し説明する必要があります。メッセージ認証コードは独自のパディングを定義するため, このデフォルトは認証変換には適用されません。
OPTIONAL の MKI と RECOMMENDED の authentication tag は, SRTP によって定義された RTP にはないフィールドです。8 ビットアラインメントのみが想定されています。
MKI (Master Key Identifier, マスター鍵識別子): 設定可能な長さ, OPTIONAL。MKI は鍵管理によって定義, シグナリング, および使用されます。MKI は, 特定のパケットを認証および/または暗号化するために派生されたセッション鍵の派生元であるマスター鍵を識別します。MKI は SRTP 暗号コンテキストを識別してはならない (SHALL NOT) ことに注意してください。これは Section 3.2.3 に従って識別されます。MKI は, 鍵の再設定の目的で, 暗号コンテキスト内の特定のマスター鍵を識別するために鍵管理によって使用される場合があります (MAY) (Section 3.2.1)。
Authentication tag (認証タグ): 設定可能な長さ, RECOMMENDED。authentication tag はメッセージ認証データを運ぶために使用されます。SRTP パケットの Authenticated Portion (認証部分) は, RTP ヘッダと SRTP パケットの暗号化部分で構成されます。したがって, 暗号化と認証の両方が適用される場合, 送信側では認証の前に暗号化を適用する必要があり (SHALL), 受信側では逆に行う必要があります。authentication tag は RTP ヘッダとペイロードの認証を提供し, シーケンス番号を認証することによって間接的にリプレイ保護を提供します。MKI は完全性保護されていないことに注意してください。これは追加の保護を提供しないためです。