2014-09-29 37 views
5

我打算通過coturn - https://code.google.com/p/coturn/爲WebRTC應用運行我自己的TURN服務。手冊說,這個有關身份驗證和證書:對於WebRTC與TURN服務器一起工作,是否需要*'長期憑證'認證機制?

... 

    -a, --lt-cred-mech 
      Use long-term credentials mechanism (this one you need for WebRTC usage). This option can be used with 
      either flat file user database or PostgreSQL DB or MySQL DB or MongoDB or Redis for user keys storage. 

    ... 

此客戶端的代碼示例還表明,憑據需要TURN:

// use google's ice servers 
var iceServers = [ 
    { url: 'stun:stun.l.google.com:19302' } 
    // { url: 'turn:192.158.29.39:3478?transport=udp', 
    // credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 
    // username: '28224511:1379330808' 
    // }, 
    // { url: 'turn:192.158.29.39:3478?transport=tcp', 
    // credential: 'JZEOEt2V3Qb0y27GRntt2u2PAYA=', 
    // username: '28224511:1379330808' 
    // } 
]; 
  • 難道他們總是需要? (Coturn可以在沒有任何認證機制的情況下運行,但是從手冊頁不清楚是否嚴格爲要求 for WebRTC工作)
  • 如果需要,我可以創建一組憑據並將其用於所有客戶呢? (客戶端代碼示例顯然只是爲了演示,但似乎表明您可能會將憑據硬編碼到客戶端代碼中。如果這不可行/不值得推薦,那麼將推薦的方法將適當的憑據傳遞給客戶方代碼?)

回答

10

測試之後,似乎傳遞憑據工作需要爲客戶方代碼(在控制檯得到一個錯誤,否則)。

在Coturn中啓用「no-auth」選項(或者留下lt-cred-mech和st-cred-mech評論)但仍然在應用程序JS中傳遞證書也不起作用,因爲TURN消息以某種方式使用密碼憑證進行簽名。也許Coturn並不希望客戶端發送驗證細節,如果它運行在無驗證模式下,所以它不知道如何解釋這些消息。

解決方案

打開LT-名氣機甲進行硬編碼的用戶名和密碼均Coturn配置文件,以及JS的應用,似乎工作。在Coturn配置文件中註釋了「靜態用戶」條目 - 使用明文密碼格式而不是密鑰格式。

Coturn配置(這是整個配置文件我得到了它的工作):

fingerprint 
lt-cred-mech 
#single static user details for long-term authentication: 
user=username1:password1 
#your domain here: 
realm=mydomain.com 

ICE服務器列表從Web應用JS:

var iceServers = [ 
    { 
     url: 'turn:123.234.123.23:3478', //your TURN server address here 
     credential: 'password1', //actual hardcoded value 
     username: 'username1' //actual hardcoded value 
    } 
]; 

這顯然沒有提供實際的安全TURN服務器,因爲憑證對任何人​​都可見(所以任何人都可以使用帶寬和處理器時間作爲中繼)。

總結:

  • 是,實現WebRTC使用TURN長期認證是必需的。
  • 是的,看起來你可以硬編碼一套憑據供每個人使用 - coturn並不擔心兩個客戶端同時獲得相同的憑據分配。
  • 一個可能的解決方案,以最小的麻煩適當的安全將是Coturn支持的TURN REST API
+0

Tks for info bud – 2014-10-14 09:58:37

+0

如果您想提供TURN和STUN服務,您可能需要使用'cert'和'pkey'屬性將配置文件添加到域信任證書和私鑰中。 – logoff 2015-02-18 14:14:00

相關問題