在線視頻常見加密方式及安全性透析

信息化時代,多媒體的應用日漸成爲人們生活中不可或缺的部分,無論是獲取最新資訊還是教育學習,視頻都是直觀高效的媒介之一。
  基於互聯網的快速傳播,衆多培訓機構也逐漸將線下原創版權課程遷移到在線平臺中,一方面可以更快的打響知名度,同時往往能帶來比較樂觀的收益。這也滋生了黑產,盜版隨之出現。如何防範原創視頻被輕易盜版呢?針對該問題,筆者對市面上的視頻防盜方案做了一定調研,如有任何不當之處,請指正。
  本文將根據面向人羣分類闡述。一種是防小白用戶,一種是防IT技術人員。
  防小白用戶
  什麼是小白用戶?小白用戶是指對計算機的瞭解,僅停留在會使用階段的人羣。
  怎麼防小白用戶下載視頻呢?一般採用的方式,包括但不僅限於播放地址隱藏、動態url校驗、協議防範等方式進行視頻保護。
 播放地址隱藏
  我們要知道,網站是基於HTTP協議的,如網站的圖片、css、js都是通過該協議進行傳輸,視頻也不例外。由於http協議的開放性,很多瀏覽器或插件都開發了對應的嗅探下載功能。如遨遊瀏覽器、360瀏覽器等。
http://e.e***.com/space.php?do=playvideo&op=play_demo&iframe=0&aid=null&lid=22880&ltype=31&width=640&height=400 比如該網站的課程,採用了某度雲的平臺,就是對播放地址進行了簡單的隱藏的方式。相關視頻使用某些瀏覽器就可以下載。
 動態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(專用格式)
  一般情況下,普通平臺的只要解析到真實地址就可以實現播放下載了。
  某家雲在此基礎上,同時也對視頻做了初步加密,這點做得還是不錯的。但是加密算法過於簡單,通過解密,即可實現本地觀看。
3、視頻加密
  區別於對url進行處理,視頻加密是對數據加密,達到即便被下載也無法播放的目的。目前比較知名的視頻雲平臺,幾乎均有對視頻進行加密處理。
Flash端多是自定義算法,Html5大多基於HLS 協議使用或開發。
(一)Flash-FLV視頻加密方案
  方案一、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、AES128、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片段,進行了簡單的加密。由於分片算法比較單一,存在不足,所以還是可能被解碼合併的。
2、某某威視也採用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密鑰的保護入手做處理。
1、某某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字節中找到真實祕鑰,從而實現解密。具體算法不做闡述。
2、某某威視目前針對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
來源:站長之家
;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章