信息化時代,多媒體的應用日漸成爲人們生活中不可或缺的部分,不管是獲取最新資訊仍是教育學習,視頻都是直觀高效的媒介之一。php
基於互聯網的快速傳播,衆多培訓機構也逐漸將線下原創版權課程遷移到在線平臺中,一方面能夠更快的打響知名度,同時每每能帶來比較樂觀的收益。這也滋生了黑產,盜版隨之出現。如何防範原創視頻被輕易盜版呢?針對該問題,筆者對市面上的視頻防盜方案作了必定調研,若有任何不當之處,請指正。css
本文將根據面向人羣分類闡述。一種是防小白用戶,一種是防IT技術人員。html
防小白用戶android
什麼是小白用戶?小白用戶是指對計算機的瞭解,僅停留在會使用階段的人羣。git
怎麼防小白用戶下載視頻呢?通常採用的方式,包括但不只限於播放地址隱藏、動態url校驗、協議防範等方式進行視頻保護。程序員
播放地址隱藏web
咱們要知道,網站是基於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 好比該網站的課程,採用了某度雲的平臺,就是對播放地址進行了簡單的隱藏的方式。相關視頻使用某些瀏覽器就能夠下載。api
動態url校驗瀏覽器
第一種地址隱藏的方式,地址是固定的,因此很容易被下載。爲了解決這個問題,不少網站或平臺,選擇在原始基礎上,加入了自定義的sign計算,進行播放地址校驗。
通常來講動態url具備時效性,能夠有效地防下載和盜鏈。如某網校採用的樂視雲平臺。
http://users.wa**o.cn/player/Index.aspx?Id=3d009f67-259f-4aff-a710-25926a59278d
通過分析此時的下載地址以下: http://1****29/play.videocache.lecloud.com/256/19/103/bcloud/121442/ver_00_22-1101707449-avc-800000-aac-61969-1*****0fdb2b1705aa116313dfd2-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&geo***sid=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
一般狀況下,該類下載地址存在必定的參數校驗,包括了時間戳 sign 等。但sign計算規則通常都比較簡單,容易被識破僞造。
這種方式一樣也能夠經過瀏覽器或插件下載。不過須要自行判斷,哪一個地址纔是真實的文件地址。
協議防範
鑑於http協議的開放性,那麼視頻如何避免被瀏覽器或插件嗅探呢?一些網站選擇從協議入手,採用非http的協議進行視頻播放,如rtmp協議。
rtmp協議由來已久,是adobe公司推出的視頻播放協議,穩定性和安全性較http更好,應用普遍。rtmp協議,須要專用的服務器,如FMS,開源的有red5,技術成本比較高。
至於安全性方面,針對rtmp協議,目前已經有較多的嗅探下載工具出現。如某抓、rtmpdumper等。
http://e.100***exi.com/DigitalLibrary/Course.aspx?Id=52811。這個網站就是採用了rtmp協議,而且限制10分鐘試看時間。可使用專業工具的嗅探功能,就能夠獲得rtmp地址直接觀看或下載完整視頻,從而實現跳過購買流程,安全性可見通常。
綜上所述,對於小白用戶的防範,多半是在url上作文章,並無實質性的數據加密,難度都很低。從安全性的角度考慮,各大網站或平臺應當及時摒棄以上加密方式。
防IT技術人員
IT技術人員,是指具備必定的計算機基礎,會利用現成工具乃至在程序方面,有深刻研究的人羣。如網站管理員,程序員等。
針對該部分人羣,目前業界廣泛採用的防範方式,包括但不只限於播放器校驗,url編碼加密、視頻加密等。
播放器校驗
區別於通常的校驗url地址,播放器校驗是指播放地址,只能經過特定播放器,進行域名白名單校驗才能夠播放。做用主要在於防盜鏈和下載,通常直接訪問下載地址會403。
這種加密方式,通常能夠經過對header僞造,添加referer等方式,實現403跳過校驗,實現視頻下載,意義不大。
Url編碼加密
簡單來講,url編碼加密就是將播放地址自定義算法編碼,建立私有協議的播放地址。播放須要專用的播放器進行地址解碼。
如某圖公考採用的某家雲平臺,就是採用這種方式。
http://v.hu**.com/cla/class_detail_62286.htm 通過調試分析,並不能直接獲得播放地址,可是可獲得編碼加密的某家雲私有url。
bjcloudvod://Uml4e3c8NDRsZG8zf2pobHYwZ2ZxbWxngnZyNWpxcjRraTo5bzQ0PTcza2ZAZTNnajU4bGgyZz1rZ2dpb2c8bDY3Zj5BNDw5bTA0NzR6Mnp4b3JnbTB6cGtndDQ5Mzc5QDI5OmY1a2g6aGk7PWM2aUA3OTVrOzY5PWc1a2g5aWhBNGk_amBobXhbbU5dN2JzeTUzODc2ODw5ODZlPGdnOWxoOjlqNWU_PjU0aj81ODluNGdnQGVnQDhoPmZnZ2l3YmlNXDswans5
經過對播放器和js的分析,實現對加密的url解密,獲得真實的播放地址。
http://dal-video.baijiayun.com/cf73f30601fa8b0aa44ea0b8cddcff8e/5a99193d/00-x-upload/video/10437153_3fc2ef54b2b9540c8334f1da7dc91f9a_dfqYhIU4_mp4/10437153_3fc2ef54b2b9540c8334f1da7dc91f9a_dfqYhIU4.ev1(專用格式)
通常狀況下,普通平臺的只要解析到真實地址就能夠實現播放下載了。
某家雲在此基礎上,同時也對視頻作了初步加密,這點作得仍是不錯的。可是加密算法過於簡單,經過解密,便可實現本地觀看。
三、視頻加密
區別於對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.bokecc.com/flvs/cb/Qx8ov/hePPu36VDu-2.pcf?t=1519883947&key=692CCC2A7E07BBF08960BD53F916FFF9
因爲加密的數據較少,且算法比較單一,因此存在被解密的風險。
網絡上已經出現了相關的解密工具。目前採用此類方案的廠商,包含但不只限於 某C視頻、某家雲等。
(2)flv切片加密處理,通常也是採用DES、AES12八、XOR或其它算法。
針對第一種flv加密方式存在的問題,如算法單1、視頻過大。更多有實力的廠商,在此基礎上優化、衍生出更加優秀的解決方案。
採用切片方式的優勢較多,如加載更快速、播放更流暢、每個數據片斷都採用了加密,解密難度更高。
一、好比某網校採用的某雲視頻雲平臺,演示地址
http://www.233**63.com/front/homepage!showSellWayInfo.action?queryAssessCondition.currentPage=1&querySellWayCondition.sellId=40
通過分析能夠獲得片斷地址,每一段均是加密的smf文件,地址存在規律性
http://videop-cdl.capitalcloud.net/pub-625073743425235001/ent-699271777343257237/ren-699272949902880543/1/699272949902880543_2_0_5000.smf
http://videop-cdl.capitalcloud.net/pub-625073743425235001/ent-699271777343257237/ren-699272949902880543/1/699272949902880543_2_5000_10000.smf
http://videop-cdl.capitalcloud.net/pub-625073743425235001/ent-699271777343257237/ren-699272949902880543/1/699272949902880543_2_10000_15000.smf
通過分析,其實每一段都是flv片斷,進行了簡單的加密。因爲分片算法比較單一,存在不足,因此仍是可能被解碼合併的。
二、某某威視也採用flv切片加密技術,其算法更復雜,並會自動升級,目前市面上沒有對應的解密方案
目前採用此類flv優化方案的廠商,包括但不只限於某量、某山(某雲)等。
(二)HTML5-HLS視頻加密方案
鑑於flash跨平臺的兼容性問題及漏洞,愈來愈多的廠商更加青睞在H5做視頻加密方案,同時實現pc及移動端的視頻保護。目前較爲普遍採用的是apple hls 協議。
HLS協議理論能夠參考該類文章http://blog.csdn.net/jwzhangjie/article/details/974402
目前hls協議的使用,包含了原生協議和自定義優化兩種。
(1)原生hls協議
Hls協議天生的優點,使得大部分廠商即可以直接採用,並未作任何處理。但因爲協議的公開性,目前網絡上已經有對應的解密方案,其中不乏傻瓜式工具類。如ffmpeg。
好比該網站採用的某訊雲平臺,http://www.hz**x.com/course/detail?goods_id=269
經過簡單調試,獲得對應的m3u8地址,再利用ffmpeg命令行即可實現下載。
http://1251150518.vod2.myqcloud.com/4149f144vodtransgzp1251150518/c6fdf3479031868223044654629/KXN2BbJnqicA.f230.m3u8 命令行大體以下
目前採用該協議的廠商,包括但不只限於某訊雲、某c視頻、某寶視頻等。
(2)基於hls協議優化
針對hls協議的問題,部分對技術有追求的廠商,便推出了一些優化處理方案。固然hls視頻的泄漏,主要仍是密鑰的泄漏,因此優化均是圍繞AES128密鑰的保護入手作處理。
一、某某soho採用了密鑰混淆錯序的方式。將本來的16字節密鑰處理爲20字節,經過播放器進行復位解碼。該算法容易被猜想出混淆錯序規則,存在必定的風險。
以某某soho官網的課程爲例http://demo.***soho.com/open/course/2
通過調試分析,能夠獲得對應的m3u8索引文本,採用了氣球雲存儲,http://demo.***soho.com/hls/3182/playlist/XZA3vMgVaxNQFagdbte5t8ORCfX0tC5e.m3u8
各個清晰度m3u8採用了編碼加密,有時效性,僅能訪問一次,防範作的仍是不錯的。
能夠看到視頻採用了AES128的加密算法。密鑰的地址,第一次訪問的時候,是20字節,「f8864726x4r6f34w4r36」,其後每次訪問都是不一樣的16字節。
其實真實的祕鑰,就藏在了第一次的20字節裏面,以後的16字節都是假的祕鑰。
咱們須要從20字節中找到真實祕鑰,從而實現解密。具體算法不作闡述。
二、某某威視目前針對hls作了兩種優化方案,分別是web受權和app受權。
(1)Web受權
介紹:爲了兼容微信平臺和web頁面,採用了sign校驗,一次訪問即失效。有效防止盜鏈和下載。
該方式與某soho方案相似,經過對m3u8地址,進行sign計算校驗,並增長了時效性,不排除被猜想規則,僞造下載地址的可能性。
(2)App受權
介紹:採用服務器校驗和傳輸密鑰,將本來的16字節加密處理爲32字節,SDK受權解密進行解碼。
這種方式是對密鑰key數據自己進行加密處理。目前尚無解密方案出現,安全級別極高。固然隨着時間的遷移,不排除之後有對應的解密方案出爐。
目前基於hls協議進行優化處理的廠商,包括但不只限於某某威視、某soho。
以上內容爲筆者整理相關資料合成看法,部分數據參考第三方或官網文檔。
連接:https://www.chinaz.com/news/2018/0426/879603.shtml 來源:站長之家