信息时代,多媒体的应用逐渐成为人们生活中不可或缺的一部分。无论是获取最新资讯,还是教育学习,视频都是最直观、最高效的媒体之一。基于互联网的快速普及,不少培训机构逐渐将线下原创版权课程迁移至线上平台。一方面,他们可以更快地获得知名度,同时,他们往往可以带来更乐观的收益。这也滋生了黑产,盗版也随之而来。如何防止原创视频被轻易盗版?针对这一问题,笔者对市面上的视频防盗方案进行了一些研究。如有不当之处,敬请指正。本文将按照人群分类进行讲解。一是防止新手用户,二是防止IT技术人员。1.防止新手用户什么是新手用户?新手用户是指对计算机有所了解,只停留在使用阶段的人。如何防止新手用户下载视频?常用的方法包括但不限于隐藏播放地址的视频保护、动态url验证、协议防护等。1.隐藏播放地址我们要知道网站是基于HTTP协议的。比如网站的图片、css、js都是通过这个协议传输的,视频也不例外。由于http协议的开放性,很多浏览器或插件都开发了相应的嗅探下载功能。如傲游浏览器,360浏览器等http://e.e*.com/space.php?do=playvideo&op=play_demo&iframe=0&aid=null&lid=22880<ype=31&width=640&height=400例如本站课程采用某度云平台,是修改播放地址的简单隐藏方式。相关视频可使用傲游浏览器下载。2、动态url验证第一种方式隐藏地址,地址是固定的,很容易被下载。为了解决这个问题,很多网站或者平台选择在原有的基础上增加自定义符号计算来校验播放地址。一般来说,动态网址具有时效性,可以有效防止下载和盗链。比如某网校采用的乐视云平台。http://users.wa**o.cn/player/Index.aspx?id=3d009f67-259f-4aff-a710-25926a59278d经过分析,此时的下载地址如下:http://129/play.videocache.lecloud.com/256/19/103/bcloud/121442/ver_00_22-1101707449-avc-800000-aac-61969-10fdb2b1705aa116313dfd2-1495075183392.mp4?crypt=72aa7f2e948&b=879&nlh=4096&nlt=60&bf=86&p2p=1&video_type=mp4&termid=2&tss=no&platid=2=1519887000&nkey=22ab7366672c34cf45ff3abca0c1a564&nkey2=12672f233895fe89b49d0328161fadec&auth_key=1519887000-1-0-2-209-c08a24f6e01c7227fc9be939f3a4385d&geosid=235117191&tm=1519868986&key=4e34e1d64057a46346c4b42795e1c173&payff=0&cu**8&dur=1210&p1=3&p2=31&p3=310&cf=h5-android&p=101&playid=0&tag=mobile&sign=bcloud_121442&pay=0这种下载地址一般情况下都会有一定的参数校验,包括timestampsign等。但是符号计算规则一般都比较简单,很容易被伪造。该方法也可以通过浏览器或插件下载。不过需要自己判断哪个地址才是真正的文件地址。3、协议防护鉴于http协议的开放性,视频如何避免被浏览器或插件嗅探?有些网站选择从协议入手,使用非http协议进行视频播放,比如rtmp协议。rtmp协议历史悠久,是adobe公司推出的一种视频播放协议。它比http具有更好的稳定性和安全性,被广泛使用。rtmp协议需要专用服务器,比如FMS,red5是开源的,技术成本比较高。至于安全,对于rtmp协议,已经有很多嗅探下载工具了。比如catch,rtmpdumper等。http://e.100*exi.com/DigitalLibrary/Course.aspx?Id=52811。本站使用rtmp协议,浏览时间限制在10分钟以内。可以使用专业工具的嗅探功能获取rtmp地址直接观看或下载完整视频,从而跳过购买过程,安全性可见一般。综上所述,新手用户的防御多是在url上做文章,没有实质性的数据加密,难度很低。从安全角度考虑,各大网站或平台应及时放弃上述加密方式。2、抗IT技术人员IT技术人员是指有一定的计算机基础,会使用现成的工具,甚至对程序有深入研究的人。如站长、程序员等。针对这部分人群,业内普遍采用的防范手段包括但不限于播放器验证、url编码加密、视频加密等。1.播放器验证不同于一般的验证url地址。播放器验证是指播放地址,必须通过特定播放器和域名白名单验证才能播放。主要功能是防止盗链和下载。一般直接访问下载地址会出现403,这种加密方式,一般通过伪造header,加referer等方式,可以实现403跳过验证,实现视频下载,意义不大。2.url编码加密简单来说,url编码加密就是将广播地址用自定义的算法进行编码,创建一个私有协议的广播地址。播放需要专用播放器进行地址解码。比如某图公测采用的某云平台就是采用这种方式。http://v.hu**.com/cla/class_detail_62286.htm经过调试分析,无法直接获取到播放地址,但可以获取到某云的加密私有url。bjcloudvod://Uml4e3c8NDRsZG8zf2pobHYwZ2ZxbWxngnZyNWpxcjRraTo5bzQ0PTcza2ZAZTNnajU4bGgyZz1rZ2dpb2c8bDY3Zj5BNDw5bTA0NzR6Mnp4b3JnbTB6cGtndDQ5Mzc5QDI5OmY1a2g6aGk7PWM2aUA3OTVrOzY5PWc1a2g5aWhBNGk_amBobXhbbU5dN2JzeTUzODc2ODw5ODZlPGdnOWxoOjlqNWU_PjU0aj81ODluNGdnQGVnQDhoPmZnZ2l3YmlNXDswans5通过对播放器和js的分析,实现对加密的url解密,得到真实的播放地址。http://dal-video.baijiayun.co...(specialformat)Undernormalcircumstances,as只要将真实地址解析到通用平台即可播放和下载。在此基础上,某云还对视频进行了初步加密,算是不错了。但加密算法过于简单,通过解密即可实现本地观看。3.视频加密不同于处理url。视频加密就是对数据进行加密,即使下载了也无法播放。目前比较知名的视频云平台几乎都是对视频进行加密。Flash端多为自定义算法,Html5多为使用或基于HLS协议开发。(一)Flash-FLV视频加密方案方案1、flv部分数据加密,采用DES、AES128或其他算法。比如某网校采用的C视频云平台,对flv的头部数据进行了加密,视频为pcf格式。http://www.k**9.com/course.php?act=details&id=1317获取下载地址http://cd14-ccd1-1.play.bokec...因为加密的数据比较少,而且算法比较简单,存在被解密的风险。网上已经出现了相关的解密工具。目前采用此类方案的厂商包括但不限于某视讯、某云等。(2)flv切片加密处理一般采用DES、AES128、XOR等算法。针对第一种flv加密方式算法单一,视频过大等问题。更有实力的厂商会在此基础上优化衍生出更好的解决方案。采用分片方式的优点有很多,比如加载速度更快,播放更流畅,而且每个数据段都经过加密,解密难度更大。1、比如某网校采用的某云视频云平台,演示地址http://www.233**63.com/front/homepage!showSellWayInfo.action?queryAssessCondition.currentPage=1&querySellWayCondition.sellId=40经过分析,可以得到分片地址,每一节都是一个加密的smf文件,地址具有规律性http://videop-cdl.capitalclou...http://videop-cdl.capitalclou...http://videop-cdl.capitalclou..经过分析,每个段其实就是一个flv段,只是简单的加密了一下。由于分片算法比较简单,有不足之处,还是可以解码合并的。2、同方威视某某也采用了flv切片加密技术,其算法比较复杂,并且会自动升级,目前市面上还没有相应的解密方案。以下为官方介绍。当然,世界上没有不透风的墙,不排除未来会有视频解密的方案。目前采用此类flv优化方案的厂商包括但不限于某某同方威视、某某山(某某云)等。(2)HTML5-HLS视频加密方案鉴于跨平台兼容性和flash的漏洞,越来越多的厂商倾向于使用H5作为视频加密方案,同时实现PC端和移动端的视频保护。目前广泛使用的是applehls协议。HLS协议理论可以参考这类文章http://blog.csdn.net/jwzhangj...目前hls协议的使用包括原生协议和自定义优化。(1)原生hls协议Hls协议的先天优势让大部分厂商无需任何处理直接采用。但是由于协议的开放性,网上已经有了相应的解密方案,其中不乏傻瓜式的工具。比如ffmpeg。比如本站使用的一个迅云平台,http://www.hz**x.com/course/detail?goods_id=269,通过简单调试,获取到对应的m3u8地址,即可实现下载通过使用ffmpeg命令行。http://1251150518.vod2.myqclo...命令行大致如下。目前采用该协议的厂商包括但不限于迅云、Xx视频、Xbao视频等。(2)基于hls协议的优化针对hls协议存在的问题,一些追求技术的厂商推出了一些优化方案.当然hls视频的泄露主要是key的泄露,所以优化从AES128key的保护入手。1、某某soho采用了密钥混淆乱序的方法。将原来的16字节密钥处理成20字节,通过播放器复位解码。该算法容易被猜到混淆乱序规则,存在一定的风险。以某soho官网的课程为例:http://demo.*soho.com/open/course/2经过调试分析,可以得到对应的m3u8索引文本,使用的是气球云存储。http://demo.*soho.com/hls/3182/playlist/XZA3vMgVaxNQFagdbte5t8ORCfX0tC5e.m3u8每个分辨率m3u8采用编码加密,时效性强,只能访问一次,预防还是不错的。可以看到视频使用了AES128加密算法。key的地址,第一次访问时,是20个字节,“f8864726x4r6f34w4r36”,之后每次访问都是不同的16个字节。事实上,真正的秘钥隐藏在前20个字节中,后面的16个字节都是假秘钥。我们需要从这20个字节中找到真正的密钥来解密它。具体算法不详述。2、同方威视目前对hls有两种优化方案,分别是web授权和app授权。(1)网页授权介绍:为兼容微信平台和网页,采用签名验证,访问一次后失效。有效防止盗链和下载。这种方法类似于SOHO解决方案。通过对m3u8地址进行符号计算和校验,增加时效性,不排除猜测规则伪造下载地址的可能。(2)App授权介绍:将原来的16字节加密,通过服务器校验和传输密钥处理成32字节,SDK授权解密进行解码。这种方式是对密钥数据本身进行加密。目前没有解密方案,安全级别极高。当然,随着时间的推移,不排除未来会推出相应的解密方案。目前基于hls协议优化处理的厂商包括但不限于某某同方威视和某某soho。以上内容为笔者整理相关资料综合意见,部分数据参考第三方或官网文档。
