首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WebRTC中的修改密码

WebRTC中的修改密码
EN

Stack Overflow用户
提问于 2022-05-01 14:13:25
回答 1查看 223关注 0票数 2

我正在WebRTC (基于浏览器/JavaScript)上做一个研究和试点项目,现在我正在研究它的安全实现。

我理解(请纠正我,否则),DTLS实现了加密机制,我只能找到对TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256的引用。

我还认为,中间的任何眩晕/转服务器都没有参与加密机制,因此有效负载只需通过一个转接服务器不受影响地传递。

这让我不禁要问,是否可以在浏览器/JavaScript解决方案中为WebRTC设置和选择可用密码器和密钥长度列表.或者TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256是唯一一个。

如果可以设置密码/密钥长度,您可以建议如何在JavaScript中这样做,或者指向一些特定的文档来实现这一点吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-01 19:28:38

首先,我想回答你的直接问题,关于没有明确要求的事情的说明。

您是正确的,转弯没有为WebRTC会话提供安全性。当使用转弯服务器时,数据在经过转轮服务器时已经加密。旋转服务器不能修改或检查流经它的数据。

您不能通过Javascript控制CipherSuites。目前还不存在任何API。

浏览器提供多个DTLS和SRTP CipherSuites。下面是FireFox 98使用的列表。

代码语言:javascript
复制
 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 CipherSuites

代码语言:javascript
复制
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使用两个CipherSuites。一个用于DTLS,另一个用于SRTP。DTLS用于DataChannel消息,SRTP用于媒体。

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256是一个TLS CipherSuite (不是SRTP CipherSuite)。

控制CipherSuite的唯一方法是运行不在浏览器中的WebRTC实现。您选择的WebRTC服务器/客户端可以提供API来更改这些API。

WebRTC用于Curious#Securing也可能有帮助。它触及了这个答案中的要点,再深入一点。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72077469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档