4. Security for WebRTC Applications (WebRTC アプリケーションのセキュリティ)
4. Security for WebRTC Applications (WebRTC アプリケーションのセキュリティ)
WebRTC アプリケーションは、作成するセッションのセキュリティポリシーを決定します。このセクションでは、アプリケーションが利用できるセキュリティメカニズムと、それらをどのように使用すべきかについて説明します。
4.1 送信の同意
"コーリングカード" 攻撃 (セクション 3.1) を防ぐために、WebRTC では、受信側のエンドポイントがトラフィックの受信に明示的に同意する必要があります。これは、Interactive Connectivity Establishment (ICE) プロトコル [RFC8445] を介して達成されます。宛先に非 ICE トラフィックを送信する前に、WebRTC エンドポイントは、宛先が ICE STUN バインディングリクエストに応答したことを検証しなければなりません。これにより、宛先がアクティブであり、そのポートでトラフィックを受信する意思があることが証明されます。
4.2 ローカルデバイスへのアクセスの同意
スパイ行為 (セクション 3.2) を防ぐために、ブラウザは、サイトがカメラまたはマイクにアクセスすることを許可する前に、明示的なユーザーの同意を要求しなければなりません。この同意は、アクセスを要求しているオリジンに固有であるべきであり、取り消し可能であるべきです。
4.3 安全な通信
機密性と完全性を提供するために、すべての WebRTC メディアおよびデータトラフィックは暗号化および認証されなければなりません。
- メディア (音声/ビデオ) の場合、SRTP [RFC3711] が使用され、DTLS-SRTP [RFC5764] を介して鍵が設定されます。
- データチャネルの場合、SCTP over DTLS [RFC8261] が使用されます。
これにより、ネットワークパス上の攻撃者が通信を読み取ったり変更したりできないことが保証されます。
4.4 アイデンティティ
DTLS はチャネルの認証を提供しますが、反対側のユーザーを本質的に識別するわけではありません。WebRTC は、"アイデンティティプロバイダ" (IdPs) がユーザーのアイデンティティを表明し、それらのアイデンティティを通話に使用される DTLS 証明書にバインドするためのメカニズムを提供します。これにより、ユーザーは、シグナリングサービスとは独立して、誰と通信しているかを確認できます。