2

TURN プロトコルを詳細に説明している RFC 5766 を調べました。ただし、オープンソースの TURN サーバーである COTURN をダウンロードしてインストールした後、理解できない基本的な質問がいくつかあります。

TURN サーバーのクライアントとは何ですか? WebRTC 呼び出しを開始する最初のブラウザーですか? TURN サーバーは、特定のピアを対象としたクライアントの割り当てを作成します。WebRTC では、ピア ツー ピア通信について説明します。RFC では、クライアント サーバー ピア通信について説明しています。クライアントとサーバー間のすべての要求/応答は TURN 駆動ですが、ピアと TURN サーバー間の要求/応答は、クライアントとの間で中継される単なる UDP データ メッセージです。

私の 2 番目の質問は、COTURN に特化したものです。「turn_secret」テーブルの「値」フィールドとは何ですか? また、いつどこで使用されますか? iceservers の「credential」プロパティは、HMAC over (credentials、realm、および username) を使用して、turnusers_lt テーブルの hmackey に対応していますか? 「turn_secret」テーブルの「値」フィールドは、この中でどこにあるのでしょうか?

4

1 に答える 1

2

tl;dr: TURN シークレットは、TURN クレデンシャルの漏洩を制限するために使用されます。これは、REST API を使用した TURN 認証の一部です( doc )


コターンのドキュメントから:

WebRTC では、ブラウザーは Web サーバーから TURN 接続情報を取得します。この情報は、必要な TURN クレデンシャルが含まれているため、安全な情報です。これらの資格情報はパブリック ネットワークを介して送信されるため、セキュリティ上の問題が発生する可能性があります。

貴重な情報をパブリック ネットワーク経由で送信する必要がある場合、この情報の有効期間は限られています。そうすれば、この情報を無断で入手した者は、限られた損害しか与えられなくなります。

これが、時間制限付きの TURN クレデンシャルのアイデアが登場した方法です。このセキュリティ メカニズムは、長期資格情報メカニズムに基づいています。主な考え方は、Web サーバーがクライアントに資格情報を提供するというものですが、それらの資格情報は、TURN サーバー接続を作成する必要があるアプリケーションによって限られた時間しか使用できません。

この回答TURNシークレットの使用例を見ることができます。

于 2016-04-08T02:27:41.980 に答える