我目前正在研究电影和圈子中使用的流媒体平台的简单实现。
故事中的秘密是谎言,每个人都应该可以访问所有数据。用户可以将其数据流式传输到允许用户观看的服务器。现在,流应该具有完整性检查,但不应出于隐藏信息的目的而对其数据进行加密。为了解决这个问题,我想:
现在,我想到了几种实现此方法的方法,但是在不影响延迟的情况下,最美观的方法是修改RTMP数据包,使其能够沿每个步骤发送其他数据。我在RTMP的官方文档中看到,标头仅留下2个字节的空间,不足以支持sha256签名。现在,我不是流协议专家,因此,除向我介绍文档外,还有其他帮助。
我通过调用OnMetaData获得了成功,但是每个流仅发送一次,因此在初次握手后它使流容易受到攻击。我主要使用Node-Media-Server软件包。
TLDR:出于科学目的,需要一种为我的RTMP协议添加数字签名的方法。 我在想这个错误的方式吗?是否可以在数据包中插入哈希?还是这都是错误的方法?
答案 0 :(得分:1)
据我了解您的问题,您大概不需要在每个RTMP数据包中添加签名。 RTMP连接为客户端设置一次,并从握手开始。 C1数据包长1536字节,并具有随机数据(1528字节),该数据是:
此字段可以包含任意值。由于每个端点 必须区分对握手的响应 发起并由其对等方发起的握手,此数据 应该发送足够随机的内容。但是没有必要 加密安全的随机性,甚至是动态值。
如果一切正常,您可以使用它来传递哈希值并在服务器端对客户端进行身份验证-继续连接,或者在出现问题时将其关闭。