如何实现真正安全的RTMP防盗播整体加解密方案

常规解决方案

1. rtmp防盗播当前常用做法是给rtmp url增加相关参数,rtmp server根据参数做验证,缺陷是没有对传输的音视频数据包做加密,只要截取到rtmp包解析后就可以播放;

2. rtmps和rtmpe:有些服务器支持的不好,rtmps需要证书,rtmpe也不好扩展使用国密sm4。

更通用的解决方案

为了解决上述这些问题,可以在音频视频编码数据上进行一些扩展,rtmp server实现者只要实现rtmp协议就好, 不需要进一步去了解音视频编码的细节,我们可以在具体编码数据上扩展。

基于AES音视频逐帧数据加密整体解决方案,第三方即便是破解了URL,也没法播放,通过抓包工具抓取到数据,也没法正常显示。

此方案的难点是需要了解音视频编码相关的细节,才能进行适当的扩展。优点是常用的rtmp server可以直接支持,通用性很强。只需要改推送端和播放端就好。

如何实现真正安全的RTMP防盗播整体加解密方案_第1张图片

接下来我们实际测试下这个方案加、解密效果:

首先下载可以做rtmp加密的推送端和播放端, 打开windows推送端SmartPublisherDemo.exe:

选择好音视频采集源等配置(按图上红线标的方式配置),然后点击"配置加密"按钮:

  

可以选择只加密视频,只加密音频和音视频都加密,然后输入密钥(由于是测试输入一个很简单的密钥,实际使用请输入128位,192位或者256位密钥).  输入完成后点击"确定"按钮.

再点击推送按钮,就会生成播放地址,拷贝播放地址,打开"SmartPlayer.exe":

输入播放地址,点击播放就会弹出密钥输入框,输入密钥,点击"确定"按钮就可看到图像:

至此一个完整的rtmp加密方案测试完毕。

上述demo目前使用安全性和通用性都比较好的aes对称加密算法,支持aes 128, 192, 256.  并可扩展支持国密sm4等更多加密算法,支持rtmp h264, rtmp h265, rtmp aac, rtmp speex, rtmp pcma, rtmp pcmu加密。也支持拉rtsp视频转rtmp加密推送.

你可能感兴趣的:(流媒体)