首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于DES模式下加密的RTP/RTCP问题

关于DES模式下加密的RTP/RTCP问题
EN

Stack Overflow用户
提问于 2021-08-06 18:04:15
回答 1查看 50关注 0票数 0

我一直致力于创建一个RTP/RTCP客户端和服务器实现作为一个项目。在解析传入数据包时,我遇到了一个障碍,因为我很难理解加密方法。我读过RFC 3550好几次了。第9节解释了机密性和安全性。我读过关于DES-CBC模式的文章。

我推导出关于加密的观察

  • RTP/RTCP数据包是作为一个单元加密的,这意味着所有字节都是加密的。
  • 加密的RTCP数据包前缀为32位随机数。
  • 加密的RTP数据包通过时间戳和序列号随机化。
  • DES是默认模式。
  • DES-CBC模式需要64位键。
  • DES-CBC模式需要64位初始化向量(IV)
  • DES-CBC的块大小为64位。

我所困惑的是:

DES声明它使用了“Internet电子邮件的隐私增强”(PEM)协议,但RTP RFC没有提到这一点。此外,加密图不包括任何PEM头或元素。

代码语言:javascript
复制
             UDP packet                     UDP packet
   -----------------------------  ------------------------------
   [random][RR][SDES #CNAME ...]  [SR #senderinfo #site1 #site2]
   -----------------------------  ------------------------------
             encrypted                     not encrypted

所以我的问题是:

  • 键从哪里来,或者键由哪些头元素组成?
  • RTP/RTCP的初始化向量是什么?
  • 如何解析加密的数据包与未加密的数据包?
  • RTP/RTCP是否使用PEM协议?如果是这样的话,是怎么做的?
EN

回答 1

Stack Overflow用户

发布于 2021-08-07 12:33:38

DES是一种加密数据的方法,它可以用于所有需要加密其数据的不同协议。

键从哪里来,或者键由哪些头元素组成?

加密密钥是在连接初始化期间(在连接时)生成的,可以使用不同的方式生成,但通常使用公钥加密(例如:RSADH),并使用证书来防止使用PEM标准的MITM攻击。

RTP/RTCP的初始化向量是什么?

IV(初始化向量)是随机生成的数字,将用来确保相同的明文不会被加密到相同的密文,如果使用相同的密钥(这就是为什么它是随机的)。

如何解析加密的数据包与未加密的数据包?

对于加密的数据包,首先使用连接时获得的密钥(秘密)解密,然后使用与数据包(非秘密)一起发送的IV进行反向加密处理。对于未加密的数据包,您只需解析数据,因为没有密钥,而IV数据只是明文。

RTP/RTCP是否使用PEM协议?如果是这样的话,是怎么做的?

PEM并不是像SSH这样的网络协议那样的协议。我认为这个定义在维基百科中是足够准确的。

隐私增强邮件(PEM)是一种事实上的文件格式,用于存储和发送加密密钥、证书和其他数据,基于1993年IETF定义“隐私增强邮件”的一套标准。

因此,如果您的客户端正在使用加密,则很有可能它将使用PEM标准进行对称密钥初始化。

注意:时间戳和序列号与IV不同,这些字段是RTP头字段,可以用于类似的目的,但它们不同于CBC模式IV。

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

https://stackoverflow.com/questions/68685858

复制
相关文章

相似问题

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