一键拔号 咨询客服

当前位置:首页 > 技术资讯

如何给手机端视频加密?视频加密技术有哪些

来源:超时代软件     更新时间:2019年12月07日 16:45:43

视频加密技术随着互联网技术的不断发展,也成为当今行业内备受瞩目的风景,而各种加密手段也是层出不穷,特别是移动时代的到来,更多手机端加密的需求也越来越明显,但无论是电脑还是手机端,加密的可靠性和防破解性也着实令人担忧,那如何给手机端视频加密?视频加密技术有哪些?

一、防盗链:严格来说,这不属于视频加密,只是防止下载。意义不大,顶多是一些header、refer的限制,或者加一些token,或者弄上多段加载;但总归是有办法下载的,这个不属于加密的范畴,就不展开来讨论。

二、基于微软DRM SDK等,或者网上公开的drm方案,比如rtmpe/ hls的加密方案等。大致分开来讲:

A)微软DRM SDK,这个在windows时代是比较常见的方案,但现在缺点明显,一个是微软的sdk现在申请需要较高费用和周期;另一个是,移动时代,这个模式的弊端太多,比如各种手机用户的支持,支持的视频格式等。

B)rtmpe:首先流媒体服务器软件价格不低;当然,我觉得这种最大的问题在于:数据不能缓存,用户每次播放都要占用服务器带宽,不容易结合CDN加速等。服务器带宽压力大!

C)HLS的加密,也就是m3u8里面的ts数据都进行了加密处理,然后浏览器或者播放器播放时,通过m3u8里面内置的解密秘钥地址,去动态解密。这种相对来说实现简单些,但也有弊端,那就是这一类使用公开加密标准的通病。

以上这类公开标准方案,通病就是:标准统一、公开。如果作为技术人员想去破解,还是有机会的。比如微软的DRM树大招风,破解软件网上会有提供;hls这种,如果我伪装成自己是浏览器,你总要给我解密秘钥的,我就自然可以获取后将视频解密开来。总的来说,加密这些,如果太标准化了,太统一了,就容易破解。

私有化解决方案:比如我们公司是为各个在线教育等客户提供个性化加密解决方案,每个不同客户采用不同的加密算法和加密思路,从而可以提升加密的安全性。

如何加密:

A)视频可以通过帧级加密,比如每个数据关键帧,从二进制做加密运算,加密算法当然是不能公开;最好不同的客户用不同的加密算法,或者做变形,确保一个客户被破解了,另一个客户是安全的;并且加密最好有版本号机制,破解后可以升级,你破我防,保持定期更新。

B)加密的一个弱项其实是在播放,比如很多同行采用flash播放器去播放加密的视频。flash是很容易逆向的,你的解密播放代码被人逆向后看到,那你的解密代码就可以被人利用去解密视频。

当然,业内还可以考虑采用FlashCC技术,也就是将C++代码编译后内嵌如flash,这样逆向后看不到解密的代码,但这样就真的安全么?其实只是相对纯flash安全了,要想更安全,还是要做很多事情的,对于内嵌flashCC的,如何去破解,如何加强安全性,这里面为了业内很多同行方案的安全性,就不过多展开了。但可以跟大家讲的是:点量软件为了加强加密技术的研究,同时做了一款矛的产品去检验这类加密技术,我们的点量视频解析,可以解开各大主流视频网站的视频地址加密算法,其中很多网站采用了flashCC技术,一样可以解开,这就是告诉我们:单纯用FlashCC技术是不安全的。看一家公司的产品,是否加密等级高,首先他要有很高的破解能力,否则他做的只能是自以为不可被破解的。所以FlashCC是要做,但不能只是FlashCC。

C)考虑视频加密还需要考虑兼容性,比如PC端、手机APP等。往往突破口是在某个弱项的入口,所以一定要每个入口都是安全的。我们的加密PC下、手机APP都是用自主研发的播放器,内置多重加密。当然,有些客户不需要手机APP,希望只用H5,这种,我们就采用不同的加密方法,因为HLS的安全等级弱一些,所以就采用不同的加密,即使这类被人利用了,也不影响其他视频和客户的安全。

以上是常用的一些视频加密的可选方案。其实除了考察视频加密技术,这种视频加密技术,既可以应用在PC播放器,也可以在手机端播放器上应用。还要考虑播放器的功能性,比如是否支持水印、字幕、是否支持问答等。用户可能通过翻录来破解,如果有水印等功能,可以追溯泄密用户。另外字幕、换肤等功能,也会影响客户体验等。