9.5. Integrity of the RTP payload and header (RTP ペイロードとヘッダーの完全性)
9.5. Integrity of the RTP payload and header (RTP ペイロードとヘッダーの完全性)
SRTP メッセージは, その完全性とソース識別に対する攻撃の対象となり, これらのリスクは Section 9.5.1 で説明されています。これらの攻撃から保護するために, 各 SRTP ストリームは 80 ビットの出力タグと 160 ビットの鍵を持つ HMAC-SHA1 [RFC2104], または同等の強度を持つメッセージ認証コードによって保護されるべきです (SHOULD)。Secure RTP は, このセクションで説明されている状況を除いて, メッセージ認証なしで使用されるべきではありません (SHOULD NOT)。AES カウンタモードや f8 を含む暗号化アルゴリズムはメッセージ認証を提供しないことに注意することが重要です。SRTCP は弱い (または NULL) 認証で使用してはなりません (MUST NOT)。
SRTP は弱い認証 (たとえば 32 ビット認証タグ) または認証なし (NULL 認証アルゴリズム) で使用されてもよい (MAY) です。これらのオプションにより, 次の状況で機密性を提供するために SRTP を使用できます:
- 弱いまたは空の認証が許容可能なセキュリティリスクであり, かつ
- 強力なメッセージ認証を提供することが実用的でない。
これらの条件は以下および Section 7.5 で説明されています。弱いまたは空の認証を使用するには, 両方の条件を満たさなければならない (MUST) ことに注意してください。Section 9.5.1 で説明されているリスクを考慮すると, 弱いまたは空の認証オプションを行使することに関連するリスクは, 特定のアプリケーションまたは環境に使用する前にセキュリティ監査によって検討される必要があります。
RTP アプリケーションが小さな割合の成功した偽造の影響が無視できる程度である場合, 弱い認証は許容されます。アプリケーションがステートレスである場合, 単一の偽造された RTP パケットの影響はその特定のパケットのデコーディングに限定されます。この条件下では, 認証タグのサイズは, SRTP 受信者によって RTP アプリケーションに渡されるパケットのうち偽造である可能性があるのは無視できる程度の割合のみであることを保証しなければなりません (MUST)。攻撃者が偽造されたパケットの制御を与えられても RTP アプリケーションの出力に重大な影響を与えることができない場合, この割合は無視できます (Section 7.5 の例を参照)。
攻撃者が暗号文を変更して理解可能な値に復号化することがありそうにない場合, 弱いまたは空の認証は許容される可能性があります (MAY)。重要なケースの 1 つは, 攻撃者が RTP 平文データを取得することが困難な場合です。多くのコーデックでは, 入力信号を知らない攻撃者は出力信号を制御された方法で操作できないためです。多くの場合, 攻撃者が平文の実際の値を決定することは困難である可能性があります。たとえば, ライブオーディオまたはビデオ信号を知るためには隠された盗聴デバイスが必要になる場合があります。攻撃者の信号は攻撃対象の信号と同等またはそれ以上の品質を持っている必要があります。そうでなければ, 攻撃者は被害者が使用するコーデックでその信号をエンコードするのに十分な情報を持たないためです。電話のような対話型アプリケーションでは, 平文の予測も特に困難である可能性があります。
RTP アプリケーションが RTP データに基づいてデータ転送またはアクセス制御の決定を行う場合, 弱いまたは空の認証を使用してはなりません (MUST NOT)。そのような場合, 攻撃者は受信者にデータを攻撃者に転送させることによって機密性を破ることができる可能性があります。このような攻撃の実例については [B96] の Section 3 を参照してください。
攻撃者がパケットを保存してからセッションの後半でそれらを再生するリプレイ攻撃が受信者に無視できない影響を与える可能性がある場合, 空の認証を使用してはなりません (MUST NOT)。成功したリプレイ攻撃の例は, 監視カメラの出力を一定期間保存し, その後その出力を監視ステーションに注入して監視を回避することです。暗号化はこの攻撃から保護せず, これを打ち負かすためには非空の認証が必要です (REQUIRED)。
存在的メッセージ偽造が問題である場合, すなわち受信データの正確性が無視できない重要性を持つ場合, 空の認証を使用してはなりません (MUST NOT)。