線上影片常見加密方式及安全性透析
資訊化時代,多媒體的應用日漸成為人們生活中不可或缺的部分,無論是獲取最新資訊還是教育學習,影片都是直觀高效的媒介之一。
基於網際網路的快速傳播,眾多培訓機構也逐漸將線下原創版權課程遷移到線上平臺中,一方面可以更快的打響知名度,同時往往能帶來比較樂觀的收益。這也滋生了黑產,盜版隨之出現。如何防範原創影片被輕易盜版呢?針對該問題,筆者對市面上的影片防盜方案做了一定調研,如有任何不當之處,請指正。
本文將根據面向人群分類闡述。一種是防小白使用者,一種是防IT技術人員。
防小白使用者
什麼是小白使用者?小白使用者是指對計算機的瞭解,僅停留在會使用階段的人群。
怎麼防小白使用者下載影片呢?一般採用的方式,包括但不僅限於播放地址隱藏、動態url校驗、協議防範等方式進行影片保護。
播放地址隱藏
我們要知道,網站是基於HTTP協議的,如網站的圖片、css、js都是透過該協議進行傳輸,影片也不例外。由於http協議的開放性,很多瀏覽器或外掛都開發了對應的嗅探下載功能。如遨遊瀏覽器、360瀏覽器等。
***.com/space.php?do=playvideo&op=play_demo&iframe=0&aid=null&lid=22880<ype=31&width=640&height=400 比如該網站的課程,採用了某度雲的平臺,就是對播放地址進行了簡單的隱藏的方式。相關影片使用某些瀏覽器就可以下載。
動態url校驗
第一種地址隱藏的方式,地址是固定的,所以很容易被下載。為了解決這個問題,很多網站或平臺,選擇在原始基礎上,加入了自定義的sign計算,進行播放地址校驗。
一般來說動態url具有時效性,可以有效地防下載和盜鏈。如某網校採用的樂視雲平臺。
**o.cn/player/Index.aspx?Id=3d009f67-259f-4aff-a710-25926a59278d
經過分析此時的下載地址如下: ****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等。
***exi.com/DigitalLibrary/Course.aspx?Id=52811。這個網站就是採用了rtmp協議,並且限制10分鐘試看時間。可以使用專業工具的嗅探功能,就可以得到rtmp地址直接觀看或下載完整影片,從而實現跳過購買流程,安全性可見一般。
綜上所述,對於小白使用者的防範,多半是在url上做文章,並沒有實質性的資料加密,難度都很低。從安全性的角度考慮,各大網站或平臺應當及時摒棄以上加密方式。
防IT技術人員
IT技術人員,是指具有一定的計算機基礎,會利用現成工具乃至在程式方面,有深入研究的人群。如網站管理員,程式設計師等。
針對該部分人群,目前業界普遍採用的防範方式,包括但不僅限於播放器校驗,url編碼加密、影片加密等。
播放器校驗
區別於一般的校驗url地址,播放器校驗是指播放地址,只能透過特定播放器,進行域名白名單校驗才可以播放。作用主要在於防盜鏈和下載,一般直接訪問下載地址會403。
這種加密方式,一般可以透過對header偽造,新增referer等方式,實現403跳過校驗,實現影片下載,意義不大。
Url編碼加密
簡單來說,url編碼加密就是將播放地址自定義演算法編碼,建立私有協議的播放地址。播放需要專用的播放器進行地址解碼。
如某圖公考採用的某家雲平臺,就是採用這種方式。
**.com/cla/class_detail_62286.htm 經過除錯分析,並不能直接得到播放地址,但是可得到編碼加密的某家雲私有url。
bjcloudvod://Uml4e3c8NDRsZG8zf2pobHYwZ2ZxbWxngnZyNWpxcjRraTo5bzQ0PTcza2ZAZTNnajU4bGgyZz1rZ2dpb2c8bDY3Zj5BNDw5bTA0NzR6Mnp4b3JnbTB6cGtndDQ5Mzc5QDI5OmY1a2g6aGk7PWM2aUA3OTVrOzY5PWc1a2g5aWhBNGk_amBobXhbbU5dN2JzeTUzODc2ODw5ODZlPGdnOWxoOjlqNWU_PjU0aj81ODluNGdnQGVnQDhoPmZnZ2l3YmlNXDswans5
透過對播放器和js的分析,實現對加密的url解密,得到真實的播放地址。
(專用格式)
一般情況下,普通平臺的只要解析到真實地址就可以實現播放下載了。
某家雲在此基礎上,同時也對影片做了初步加密,這點做得還是不錯的。但是加密演算法過於簡單,透過解密,即可實現本地觀看。
3、影片加密
區別於對url進行處理,影片加密是對資料加密,達到即便被下載也無法播放的目的。目前比較知名的影片雲平臺,幾乎均有對影片進行加密處理。
Flash端多是自定義演算法,Html5大多基於HLS 協議使用或開發。
(一)Flash-FLV影片加密方案
方案一、flv部分資料加密,採用DES、AES128或其它演算法。
比如某網校採用的某C影片雲平臺,就是對flv的頭部資料進行加密,影片為pcf 格式。
**9.com/course.php?act=details&id=1317 獲取的下載地址
由於加密的資料較少,且演算法比較單一,所以存在被解密的風險。
網路上已經出現了相關的解密工具。目前採用此類方案的廠商,包含但不僅限於 某C影片、某家雲等。
(2)flv切片加密處理,一般也是採用DES、AES128、XOR或其它演算法。
針對第一種flv加密方式存在的問題,如演算法單一、影片過大。更多有實力的廠商,在此基礎上最佳化、衍生出更加優秀的解決方案。
採用切片方式的優點較多,如載入更快速、播放更流暢、每一個資料片段都採用了加密,解密難度更高。
1、比如某網校採用的某雲影片雲平臺,演示地址
**63.com/front/homepage!showSellWayInfo.action?queryAssessCondition.currentPage=1&querySellWayCondition.sellId=40
經過分析可以得到片段地址,每一段均是加密的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。
比如該網站採用的某訊雲平臺,**x.com/course/detail?goods_id=269
透過簡單除錯,得到對應的m3u8地址,再利用ffmpeg命令列便可實現下載。
251150518.vod2.myqcloud.com/4149f144vodtransgzp1251150518/c6fdf3479031868223044654629/KXN2BbJnqicA.f230.m3u8 命令列大致如下
目前採用該協議的廠商,包括但不僅限於某訊雲、某c影片、某寶影片等。
(2)基於hls協議最佳化
針對hls協議的問題,部分對技術有追求的廠商,便推出了一些最佳化處理方案。當然hls影片的洩漏,主要還是金鑰的洩漏,所以最佳化均是圍繞AES128金鑰的保護入手做處理。
1、某某soho採用了金鑰混淆錯序的方式。將原本的16位元組金鑰處理為20位元組,透過播放器進行復位解碼。該演算法容易被猜測出混淆錯序規則,存在一定的風險。
以某某soho官網的課程為例***soho.com/open/course/2
經過除錯分析,可以得到對應的m3u8索引文字,採用了氣球雲端儲存,***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。
以上內容為筆者整理相關資料合成見解,部分資料參考第三方或官網文件。
連結:
來源:站長之家
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31439365/viewspace-2639065/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JS常見加密混淆方式JS加密
- 常見加密演算法及常見加密演算法簡述加密演算法
- 【開發經驗】幾種常見的加密方式加密
- 爬蟲常見問題及解決方式爬蟲
- 2021課程加盟影片加密線上播放方案加密
- 密碼學系列——常見的加密方式(c#程式碼實操)密碼學加密C#
- 文字加密:常見的密碼加密解密方法加密密碼解密
- 短影片app原始碼,實現冪等設計的常見方式APP原始碼
- PHP常見的加密技術PHP加密
- 淺談常見的七種加密演算法及實現加密演算法
- iOS常見的幾種加密方法iOS加密
- 五種常見的DNS攻擊型別及應對方式DNS型別
- 9個常見的專案管理挑戰及應對方式專案管理
- 常見越權方式有哪些?
- 常見Flash XSS攻擊方式
- WEB常見的攻擊方式Web
- 線上加密影片一機一碼播放器怎麼做?加密播放器
- CrashSight 接入上報常見問題及解決方案
- druid連線池常見異常UI
- 線上加密/解密工具加密解密
- 要點梳理:TCP 連線及常見攻擊手法分析TCP
- Java常見的本地儲存方式Java
- 022.常見硬碟檢測方式硬碟
- 聊聊 HTTP 常見的請求方式HTTP
- RxJava 入門和常見使用方式RxJava
- (新)app逆向四(常見加密演算法)APP加密演算法
- 必讀:常見場景的加密選擇加密
- Linux基礎入門:⑥Linux常見壓縮工具及程式包安裝及管理方式Linux
- CentOS 常見異常及解決辦法CentOS
- css(三):常見元件及套路CSS元件
- 常見埠及安全測試
- Javascript 常見的迴圈方式總結JavaScript
- 常見的伺服器鑑權方式伺服器
- 資料庫建表和上線指令碼常見規範資料庫指令碼
- 淺談常用影片加密原理及加密的幾種應用形式加密
- TypeScript 之常見型別(上)TypeScript型別
- Linux上安裝MySQL的幾種常見方式的過程和步驟LinuxMySql
- Unity上使用華為AGC服務Demo常見操作及問題UnityGC