android - 更改 WebRTC 浏览器调用中使用的密码

标签 android google-chrome encryption webrtc

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

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

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

如果我没记错的话,它是在某个地方完成的,将类似以下内容的 JSON 传递给约束:{ 'crypto' : 'AES....'} webkitRTCPeerConnection 的参数。然而,我可能会想象所有这一切。

最佳答案

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

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

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

关于android - 更改 WebRTC 浏览器调用中使用的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17997297/

相关文章:

安卓调试 : Frame is not available

android - 带点分页(在 Lollipop 上): ViewPagerIndicator vs PagerSlidingTabStrip

Android Facebook SDK 3.0 上传本 map 片

CSS:text-align-last 在 chrome 中不起作用?

php - 如何在 PHP 中解密密码哈希?

android - 编写用于 OpenGL 索引顶点缓冲区对象的 Wavefront OBJ 解析器

html - 有序列表在 Chrome 中突然显示错误

javascript - 自定义元素.js :596Uncaught TypeError: Cannot assign to read only property 'customElements' of object '#<Window>'

android - 如何使用 scrypt 生成 256 位 key ?

java - 在 Java 中使用 AES-128 加密