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

7. セキュリティに関する考慮事項 (Security Considerations)

SDP セッション記述自体はトランスポートプロトコルを構成せず、セッション記述を参加者に配信するためにトランスポートプロトコルと組み合わせて使用しなければなりません (MUST)。本節では SDP 使用におけるセキュリティの考慮事項を説明します。

機密性 (Confidentiality)

セッション記述には以下を含む機密情報が含まれる場合があります。

  • 参加者の身元情報
  • 連絡先情報(電子メール、電話番号)
  • 暗号化キー
  • ネットワークトポロジー情報(IP アドレス、ポート)
  • セッションの時間とトピック

転送中のセッション記述の機密性を保護するために、適切な暗号化メカニズム(TLS、S/MIME など)の使用が推奨されます。

完全性と真正性 (Integrity and Authenticity)

セッション記述は不正な変更から保護されなければなりません (MUST)。攻撃者はセッション記述を変更することで以下を行う可能性があります。

  • メディアストリームを悪意のあるサーバーにリダイレクト
  • 悪意のある属性を注入
  • 暗号化キーを変更
  • セッション時間を変更

セッション記述の完全性と真正性を検証するために、デジタル署名またはメッセージ認証コード (MAC) の使用が推奨されます。

サービス拒否 (Denial of Service)

攻撃者はセッション記述を使用してサービス拒否攻撃を開始する可能性があります。

  • 大量の偽造セッション通告を送信
  • パーサーリソースを消費する非常に大きなセッション記述を作成
  • ネットワークリソースを消費するために存在しないアドレスを指定

実装はセッション記述のサイズと複雑さを制限し、解析エラーを適切に処理すべきです (SHOULD)。

暗号化キー配布 (Encryption Key Distribution)

SDP は暗号化キーを伝えるメカニズム(「k=」フィールド)を提供していますが、多くの場合、セッション記述を通じてキーを渡すことは安全でない場合があります。専用のキー管理プロトコル(MIKEY、ZRTP など)またはアウトオブバンドのキー交換方法の使用が推奨されます。

プライバシーの考慮事項 (Privacy Considerations)

「o=」フィールドにはセッションを作成したユーザー名と IP アドレスが含まれており、プライバシー情報が漏洩する可能性があります。プライバシーが必要なシナリオでは、フィールドのグローバルな一意性に影響しない限り、任意のユーザー名とプライベートアドレスを使用できます。

NAT とファイアウォール

SDP に含まれる IP アドレスとポート情報は、NAT やファイアウォールを通過する際に無効になる場合があります。アプリケーションはこれらの状況を処理するために Interactive Connectivity Establishment (ICE) などのメカニズムを使用すべきです (SHOULD)。