我一直致力于创建一个RTP/RTCP客户端和服务器实现作为一个项目。在解析传入数据包时,我遇到了一个障碍,因为我很难理解加密方法。我读过RFC 3550好几次了。第9节解释了机密性和安全性。我读过关于DES-CBC模式的文章。
我推导出关于加密的观察
我所困惑的是:
DES声明它使用了“Internet电子邮件的隐私增强”(PEM)协议,但RTP RFC没有提到这一点。此外,加密图不包括任何PEM头或元素。
图
UDP packet UDP packet
----------------------------- ------------------------------
[random][RR][SDES #CNAME ...] [SR #senderinfo #site1 #site2]
----------------------------- ------------------------------
encrypted not encrypted所以我的问题是:
发布于 2021-08-07 12:33:38
DES是一种加密数据的方法,它可以用于所有需要加密其数据的不同协议。
键从哪里来,或者键由哪些头元素组成?
加密密钥是在连接初始化期间(在连接时)生成的,可以使用不同的方式生成,但通常使用公钥加密(例如:RSA和DH),并使用证书来防止使用PEM标准的MITM攻击。
RTP/RTCP的初始化向量是什么?
IV(初始化向量)是随机生成的数字,将用来确保相同的明文不会被加密到相同的密文,如果使用相同的密钥(这就是为什么它是随机的)。
如何解析加密的数据包与未加密的数据包?
对于加密的数据包,首先使用连接时获得的密钥(秘密)解密,然后使用与数据包(非秘密)一起发送的IV进行反向加密处理。对于未加密的数据包,您只需解析数据,因为没有密钥,而IV数据只是明文。
RTP/RTCP是否使用PEM协议?如果是这样的话,是怎么做的?
PEM并不是像SSH这样的网络协议那样的协议。我认为这个定义在维基百科中是足够准确的。
隐私增强邮件(PEM)是一种事实上的文件格式,用于存储和发送加密密钥、证书和其他数据,基于1993年IETF定义“隐私增强邮件”的一套标准。
因此,如果您的客户端正在使用加密,则很有可能它将使用PEM标准进行对称密钥初始化。
注意:时间戳和序列号与IV不同,这些字段是RTP头字段,可以用于类似的目的,但它们不同于CBC模式IV。
https://stackoverflow.com/questions/68685858
复制相似问题