我正在开发一个语音/视频通话系统,其中有浏览器到浏览器、Android 到 Android 和 Android 到浏览器的通话。尽管我已经设法让所有这些都正常工作,但我遇到了一个问题,即用于加密两个客户端之间发送的音频/视频数据包的密码。我的系统需要一组特定的密码,我已经设法让这组密码与 Android 到 Android 通话一起使用。但是,启用 WebRTC 的浏览器中使用的默认密码明显弱于用于 Android 到 Android 调用的备用密码集。因此,我必须“简化”系统中的密码,以便我可以让 Android 调用浏览器。
由于我无法访问启用 WebRTC 的浏览器的代码(并且绝对不能修改它),我唯一的办法是以某种方式选择或告诉 peerconnection 对象使用哪个加密级别/设置。我发誓我以前听说过有人这样做,但我找不到在哪里看到它,也找不到任何地方谈论这样做。所以,我想知道是否有人知道:
- 这样的事情可能吗?
- 如果可能,如何为通话设置密码?
- Chrome 和 Firefox 支持哪些密码?
如果我没记错的话,它是在某个地方完成的,将类似以下内容的 JSON 传递给约束:{ 'crypto' : 'AES....'}
webkitRTCPeerConnection 的参数。然而,我可能会想象所有这一切。
最佳答案
您可以通过将以下内容传递给 PeerConnection 构造函数来启用 DTLS:
{ 'optional': [{'DtlsSrtpKeyAgreement': 'true'}]}
但是,这不允许您选择加密算法。为此,您可能会使用给定的 crypto line 使用不同的 SRTP key management parameters 来修改 SDP。但是,我不确定 Chrome 是否支持默认设置以外的任何内容。对于 discuss-webrtc 列表来说,这可能是个好问题。
关于android - 更改 WebRTC 浏览器调用中使用的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997297/