1

我正在开发一个语音/视频呼叫系统,其中有浏览器到浏览器、Android 到 Android 和 Android 到浏览器呼叫。尽管我已经设法让这一切正常工作,但我遇到了用于加密两个客户端之间发送的音频/视频数据包的密码问题。我的系统需要一组特定的密码,并且我已经设法让该组与 Android 到 Android 调用一起工作。但是,在启用 WebRTC 的浏览器中使用的默认密码明显弱于用于 Android 到 Android 调用的备用密码集。因此,我必须“简化”系统中的密码,以便我可以让 Android 调用浏览器。

由于我无法访问启用 WebRTC 的浏览器的代码(并且绝对不能修改它),我唯一的办法就是以某种方式选择或告诉 peerconnection 对象使用哪个加密级别/设置。我发誓我以前听说过这样做,但我找不到我在哪里看到它,也找不到任何谈论这样做的地方。所以,我想知道是否有人知道:

  1. 这样的事情可能吗?
  2. 如果可能,如何为通话设置密码?
  3. Chrome 和 Firefox 支持哪些加密货币?

如果我没记错的话,它是在将 JSON 传递给{ 'crypto' : 'AES....'}webkitRTCPeerConnection 的约束参数的过程中完成的。然而,我可能会想象这一切。

4

1 回答 1

4

您可以通过将以下内容传递给 PeerConnection 构造函数来启用 D​​TLS:

{ 'optional': [{'DtlsSrtpKeyAgreement': 'true'}]}

但是,这并不能让您选择加密算法。为此,您可能会使用具有给定SRTP 密钥管理参数的不同加密线来处理 SDP 。但是,我不确定 Chrome 是否支持默认值以外的任何内容。对于讨论 webrtc列表来说,这可能是一个很好的问题。

于 2013-08-02T04:20:48.653 回答