【问题标题】:Change cryptos used in WebRTC browser calls更改 WebRTC 浏览器调用中使用的密码
【发布时间】:2013-08-01 14:47:33
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: android google-chrome encryption webrtc


    【解决方案1】:

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

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

    但是,这不允许您选择加密算法。为此,您可能会使用不同的crypto line 与给定的SRTP key management parameters 混合SDP。但是,我不确定 Chrome 是否支持默认值以外的任何内容。对于discuss-webrtc 列表来说,这可能是一个很好的问题。

    【讨论】:

    • 通过“munge”-ing SDP 行,您的意思是直接替换 SDP 中的加密内容吗?那将如何运作?因为 Chrome 会期待使用不同信息集加密的数据包?
    • "munge"-ing SDP是指在本地调用setLocalDescription之前和远程调用setRemoteDescription之前更改createOffer生成和返回的SDP(或在将其发送到远程端之前)。
    • 啊,有道理。当我最终有时间时,我会写下来尝试。谢谢。
    猜你喜欢
    • 2019-12-24
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 2011-11-29
    • 2020-01-27
    • 2017-06-17
    相关资源
    最近更新 更多