9.2. Key Usage (鍵の使用)
9.2. Key Usage (鍵の使用)
有効な鍵サイズは, マスター鍵のサイズによって決定され (上限), 暗号化の場合はソルト鍵 (salting key) のサイズによって決定されます。任意の加法ストリーム暗号は, 平文ソースに関する統計的知識を使用して鍵衝突および時間-メモリトレードオフ攻撃 [MF00] [H80] [BS00] を可能にする攻撃に対して脆弱です。これらの攻撃は平文間の共通性を利用し, 暗号解読者が多くの鍵または多くのバイトの出力にわたって復号化の計算努力を償却する方法を提供し, それによって暗号の有効鍵サイズを減らします。これらの攻撃とインターネットトラフィックの暗号化への適用可能性の詳細な分析は [MF00] で提供されています。要約すると, m 個の異なる鍵が使用されるセキュリティシステムで使用される場合の SRTP の有効鍵サイズは, 暗号の鍵サイズから m の対数 (基数 2) を引いたものに等しくなります。このような攻撃に対する保護は, 使用される鍵のサイズを増やすことによって簡単に提供でき, ここではソルト鍵の使用によって達成できます。ソルト鍵はランダムでなければならない (MUST) が, 公開されてもよい (MAY) ことに注意してください。(推奨される) 112 ビットのソルトサイズは, 最大 2^112 個の鍵が使用されるシナリオでの攻撃から保護します。これはすべての実用目的に十分です。
実装は可能な限り大きな鍵を使用すべきです (SHOULD)。多くの場合, 暗号の鍵サイズを増やしてもその暗号のスループットには影響しないことに注意してください。
事前定義された変換での SRTP および SRTCP インデックスの使用は, 同じ鍵で保護できるパケットの最大数を固定します。この制限は, SRTP および SRTCP を独立して考慮した場合, SRTP ストリームに対して 2^48 個の SRTP パケット, SRTCP パケットに対して 2^31 個に固定されています。たとえば鍵の更新により, この制限に達することはインデックスのラップと一致する場合も一致しない場合もあるため, 送信者はパケット数をカウントしなければなりません (MUST)。ただし, 関連する SRTP および SRTCP ストリームのセッション鍵が同じマスター鍵から導出される場合 (デフォルトの動作, Section 4.3), 実際に考慮する必要がある上限は 2 つの量の最小値です。つまり, 同じ鍵で 2^48 個の SRTP パケットまたは 2^31 個の SRTCP パケットが保護された場合 (どちらか先に発生した方), 鍵管理を呼び出して新しいマスター鍵を提供しなければならず (MUST) (以前に保存および使用された鍵を再度使用してはならず (MUST NOT)), またはセッションを終了しなければなりません (MUST)。RTCP の送信者が, SRTP (または SRTCP) の送信者が同じ SRTP (SRTCP) ストリームに属する 2^48 個の SRTP (または 2^31 個の SRTCP) パケットを送信する前にマスター鍵またはセッション鍵を更新していないことを発見した場合, どのように行動するか (たとえば RTCP BYE パケットを送信すべきかどうか, および/またはイベントをログに記録すべきかどうか) は RTCP 送信者のセキュリティポリシー次第です。
注: 最も典型的なアプリケーション (128,000 個の RTP パケットごとに少なくとも 1 つの RTCP パケットを想定) では, 最初に上限に達するのは SRTCP インデックスですが, これが発生するまでの時間は非常に長いです: 200 個の SRTCP パケット/秒でも, SRTCP の 2^31 インデックス空間は約 4 か月の通信を保護するのに十分です。
同じ RTP セッション内の SRTP ストリーム間でマスター鍵を共有する場合 (Section 9.1), 上記の境界はストリームごと (すなわち SSRC ごと) ですが, 送信者はシーケンス番号空間が最初に使い果たされるストリームに基づいて鍵更新の決定を行わなければなりません (MUST)。
鍵導出は, 固定セッション鍵で暗号化され攻撃者が分析のために利用できる平文の量を制限しますが, 鍵導出はマスター鍵の寿命を延長しません。これを理解するには, two-time pad を回避するための要件を考えるだけです: 2 つの異なるパケットは異なる IV で処理されるか, 異なるセッション鍵で処理されなければならず (MUST), IV とセッション鍵の両方の区別性は (事前定義された変換の場合) パケットインデックスの区別性に依存します。
鍵導出では, 導出されたセッション鍵がかなり長い場合でも, 有効鍵サイズは最大でもマスター鍵のサイズであることに注意してください。事前定義された認証変換では, セッション認証鍵は 160 ビットですが, デフォルトではマスター鍵は 128 ビットのみです。この設計選択は, 既存の HMAC 実装を問題なく SRTP にプラグインできるように [RFC2104] の特定の推奨事項に準拠するために行われました。デフォルトのタグサイズは 80 ビットであるため, 想定されるアプリケーションについては, セキュリティの観点からも許容できると考えられています。これに懸念を持つユーザーは, 鍵導出で 192 ビットのマスター鍵を使用することが推奨されます (RECOMMENDED)。ただし, 鍵導出で使用される既存の AES 実装は常に 128 ビット以外の鍵長をサポートしているとは限らないため, 192 ビット鍵を必須とすることは選択されませんでした。AES は 160 ビット鍵での使用のために定義されて (または適切に分析されて) いないため, より短い鍵を 192 または 256 ビットにパディングするためにアドホックな鍵パディングスキームを使用することは推奨されません (NOT RECOMMENDED)。