一篇文章解讀阿裏雲視頻點播內容安全機制
1. 概述
如何保障視頻內容的安全,不被盜鏈、非法下載和傳播,是困擾眾多企業已久的問題,特別是獨播劇、在線教育、財經金融、行業培訓等在線版權視頻領域尤為迫切,處理不好會造成極為嚴重的經濟損失,甚至法律風險。
阿裏雲視頻點播提供了完善的內容安全保護機制,可以滿足不同業務場景的安全需求。
2. 訪問限制
訪問限制是在雲端配置視頻資源的訪問策略,達到基本的保護目的,主要手段有:
Referer、IP和UA(User-Agent)的黑白名單
一定周期內,URL的訪問次數限制、獨立IP數限制
2.1 Referer黑白名單
基於 HTTP 協議支持的 Referer機制,通過 Referer跟蹤來源,對來源進行識別和判斷,用戶可配置訪問的 Referer 黑、白名單(二者互斥)來限制視頻資源被訪問的情況。
支持黑名單和白名單兩種模式,訪客對資源發起請求後,請求到達CDN 節點,節點會根據用戶預設的防盜 鏈黑名單或白名單進行過濾,符合規則可順利請求到視頻數據;若不符合,請求會被拒絕,並返回403響應 碼。
配置後會自動添加泛域名支持,例如填寫a.com,最終配置生效的是*.a.com,所有子級域名都會生效。
由於移動端一般拿不到Referer,當前默認支持空Referer訪問,可選擇關閉。
示例
設置點播域名 vod-test1.cn-shanghai.aliyuncs.com 的Referer白名單為 aliyun.com,且不允許空Referer訪問,請求 數據:
curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4'
返回
當請求帶上允許的referer後即正常返回:
curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4' \ -H 'Referer: http://www.aliyun.com'
2.2 UA黑白名單
UA(User-Agent)是一個特殊字符串頭,幫助服務端識別用戶使用的操作系統及版本、CPU類型、瀏覽器及版本、 瀏覽器渲染引擎&語言和插件等。可通過UA黑白名單來限制特定瀏覽器或終端的訪問。
如PC端IE9瀏覽器:
UserAgent:Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0;
可模擬HTTP請求驗證:
curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4' \ -H 'User-Agent: iPhone OS;MI 5'
2.3 IP黑白名單
視頻點播支持配置IP黑名單或白名單,拒絕或只允許特定IP的訪問。
支持IP列表添加,並支持添加IP網段,例如127.0.0.1/24。
網段127.0.0.1/24,24表示采用子網掩碼中的前24位為有效位,即用32-24=8bit來表示主機號,該子網可以容納2^8 - 2 = 254 臺主機,故可表示IP網段範圍:127.0.0.1~127.0.0.255。
可選擇優先使用 remote_addr 或 X-Forwarded-For(XFF) 作為請求端IP,或者同時匹配。
2.4 訪問次數和獨立IP數限制
點播服務可限制媒體資源在一定時間周期內(如1天)的最大訪問次數和最大獨立IP數,核心原理是所有請求先到中心化的訪問計數服務進行驗證,判斷是否超過預設的閾值,若超過則拒絕服務,返回HTTP 403。
該限制為URL(包括文件地址和簽名信息)維度而非文件維度,但可配置忽略URL中的部分參數;限制的閾 值到域名粒度,可單獨設置。
訪問計數服務是多區域部署的中心化服務,一個URL只能被調度到其中一個區域,以保證中心化計數。
CDN邊緣節點收到請求後會訪問中心化計數服務進行計數和驗證。
2.5 小結
訪問限制的使用門檻很低,只需簡單配置即可使用,能起到一定的保護作用,特別是Web端。
Referer和UA都是基於HTTP Header,容易被偽造,安全性低。
IP黑白名單機制和訪問數限制,無法實現內容分發給大量C端用戶,不適合廣泛的內容消費場景,且後者在 閾值範圍內也可能被非法訪問。
3. 播放中心鑒權
播放地址若固定不變會帶來持久的非法擴散傳播,且無法有效遏制,視頻點播提供的URL鑒權可通過生成動態的加密URL(包含權限驗證、過期時效等信息)來區分合法請求,以達到保護視頻資源的目的。
開啟URL鑒權後,點播的播放器SDK、獲取播放地址的API/SDK都會自動生成帶時效的播放URL;如需要自己生成鑒權的動態URL,則可使用下述 鑒權 法。
開啟URL鑒權後,所有媒體資源,包括視頻、音頻、封面、截圖等地址都會進行鑒權。
鑒權Key的設置是以域名為粒度,且存於服務端以確保安全;支持主、備Key平滑切換,若更換主Key,可使用備Key生成播放地址,以做為更換的橋接,實現交替更新。
鑒權方法
鑒權URL構成
http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash
鑒權URL由播放文件地址+驗證串構成,驗證串是根據鑒權key+過期時間通過md5算法計算得出,且具有時效性, 默認為3600秒(可後臺配置)的有效時間,可在生成播放地址或獲取地址時設置過期時間;若地址過期則訪問時 CDN會返回HTTP 403。
動態地址示例
http://vod.example.com/video/aliyun-sample.mp4?auth_key=1500523200-0-0-80cd3862d699b7118eed99103f2a3a4f
示例中的auth_key參數值前綴1500523200(時間為2017-07-20 12:00:00),表示該地址會在2017-07-20 13:00:00過期。
更多信息可參考 阿裏雲視頻點播-URL鑒權。
4. 業務方二次鑒權
播放中心鑒權使用了阿裏雲的默認鑒權中心,但由於沒有客戶業務請求信息的輸入,對盜鏈等非法請求的判斷還比較單一,使用二次鑒權會更加精準。
二次鑒權是指點播CDN將用戶的請求透傳到客戶的鑒權中心,由客戶自己判定該請求是否合法,CDN根據 客戶的判斷結果執行相應動作:允許或拒絕訪問。
二次鑒權需要客戶自己開發和部署鑒權中心,該鑒權中心的域名如果同時在 CDN上面加速,可以按照一定 規則緩存客戶的鑒權結果,以減輕客戶鑒權中心的壓力。點播CDN會默將把用戶請求的 headers 和 request_uri 透傳到客戶自定義的鑒權中心,並根據鑒權中心返回的結果執行相應的動作。過程如下圖:
如業務方可將其用戶的登錄Cookie或UUID等信息隱藏於播放請求中,進而透傳到自己的鑒權中心以判定是否為合法用戶。
5. 視頻加密
防盜鏈安全機制能有效保障用戶的合法訪問,但對於付費觀看視頻的場景,用戶只需通過一次付費行為拿到視頻合 法的防盜鏈播放URL,將視頻下載到本地,進而實現二次分發。因此,防盜鏈方案對於視頻版權保護是遠遠不夠的。視頻文件一旦泄露,會給付費觀看模式造成十分嚴重的經濟損失。
阿裏雲視頻加密是對視頻數據加密,即使下載到本地,視頻本身也是被加密的,無法惡意二次分發,可有效防止視頻泄露和盜鏈問題。
5.1 阿裏雲視頻加密
阿裏雲視頻加密采用私有的加密算法和安全傳輸機制,提供雲端一體的視頻安全方案,核心部分包括 “加密轉碼” 和 “解密播放”。
核心優勢:
每個媒體文件擁有獨立的加密鑰匙,能有效避免采用單一密鑰時,一個密鑰的泄露引起大範圍的安全問題。
提供信封加密機制“密文Key+明文Key”,僅密文Key入庫,明文Key不落存儲,所有過程只在內存中,用完 即銷毀。
提供安全的播放器內核SDK,涵蓋iOS/Android/Flash多平臺,自動對加密內容進行解密播放;H5播放器不支持加密視頻的播放。
播放器和雲端使用私有加密協議進行密文傳輸,不傳輸明文Key,有效防止密鑰被竊取。
提供安全下載,緩存到本地的視頻會再次加密,在確保無網離線播放前提下,防止視頻被拷貝竊取。
註意:阿裏雲視頻加密僅支持輸出HLS格式,且只能使用阿裏雲播放器。 更多信息參考 阿裏雲-視頻加密
5.2 HLS標準加密
HLS標準加密支持 HTTP Live Streaming 中規定的通用加密方案,使用AES-128對視頻內容本身進行加密,同時能 支持所有的HLS播放器,用戶可選擇使用自研或開源的播放器。相比私有加密方案,靈活性更好,但使用門檻更 高、安全性更低:
用戶需搭建密鑰管理服務,提供密鑰生成(用於轉碼時對視頻內容進行加密)和解密服務(用於播放時獲取 解密密鑰),也可基於 阿裏雲KMS 進行封裝。
用戶需提供令牌頒發服務,用於驗證播放端的身份,避免解密密鑰被非法獲取,此處為關鍵點,處理不好會千裏之堤潰於蟻穴。
播放器和雲端傳輸明文Key,容易被竊取。
更多信息參考 阿裏雲-HLS標準加密
5.3 小結
視頻加密方案各有優劣,一般來說,越是標準、通用,靈活性越高,但安全性越低,選擇哪種方案取決於自己的業務場景,有所取舍:
安全等級:阿裏雲視頻加密 > HLS標準加密
阿裏雲視頻加密安全性明顯高於HLS標準加密。
易用性:阿裏雲視頻加密 > HLS標準加密
阿裏雲視頻加密提供雲端一體解決方案,只需簡單配置並接入阿裏雲播放器即可無縫集成加密能力;HLS標準加密需自建密鑰管理和令牌頒發服務。
通用性:HLS標準加密 > 阿裏雲視頻加密
HLS標準加密可適配所有M3U8播放場景;阿裏雲視頻加密僅支持阿裏雲播放器 (Android/iOS/Flash)。
使用費用:阿裏雲視頻加密 = HLS標準加密
阿裏雲視頻加密和HLS標準加密都可免費使用。
iOS/Android/Flash使用阿裏雲視頻加密或HLS標準加密會有很好的安全性;但由於H5端為明文,要保證更高的安全性首選商業DRM(Chrome等瀏覽器的原生支持)。
原文鏈接
一篇文章解讀阿裏雲視頻點播內容安全機制