首先,我想回答你的直接问题,关于那些没有明确提出的问题的注释.
您认为TURN不能为WebRTC会话提供安全性,这是正确的.使用TURN服务器时,数据在通过TURN服务器时已经加密.TURN服务器无法修改或判断流经它的数据.
您无法通过Javascript控制密码套件.目前还没有相关的API.
浏览器提供多种DTL和SRTP密码套件.以下是FireFox 98使用的列表.
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca9)
Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
Cipher Suite: TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
这些是SRTP密码套件
SRTP Protection Profile: SRTP_AEAD_AES_128_GCM (0x0007)
SRTP Protection Profile: SRTP_AEAD_AES_256_GCM (0x0008)
SRTP Protection Profile: SRTP_AES128_CM_HMAC_SHA1_80 (0x0001)
SRTP Protection Profile: SRTP_AES128_CM_HMAC_SHA1_32 (0x0002)
WebRTC使用两个密码套件.一个用于DTL,一个用于SRTP.DTLS用于数据通道消息,SRTP用于媒体.
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
是TLS密码套件(不是SRTP密码套件).
控制密码套件的唯一方法是运行不在浏览器中的WebRTC实现.您 Select 的WebRTC服务器/客户端可以提供API来更改这些设置.
WebRTC for the Curious#Securing美元也可能有帮助.它更深入地触及了这个答案中的要点.