打造更安全的視頻加密,雲點播版權保護實踐

語言: CN / TW / HK

在中國,以在線教育、職業培訓、OTT 服務商等為代表的網絡視頻行業,其付費規模逐步增長。然而,針對網絡視頻的盜版侵權行為層出不窮,對版權方利益造成了嚴重的損失。因此,這一類用户急切地希望其高質量的視頻內容能受到加密保護,僅允許自己的付費用户觀看。

雲點播高度關注用户的視頻內容安全,在視頻加密的安全性和加密速度上深入思考並不斷創新。下面將為您詳細介紹雲點播在視頻加密的技術實踐。

- 基礎加密方案 -

Apple 的 HLS 是當前行業應用最廣的在線音視頻流格式,並且 HLS 也提供了一種使用對稱密鑰加密方案,一般被稱為 HLS Encryption。

HLS Encryption 的基本原理是,內容平台將 HLS 中的各個 TS 文件使用 AES-128 的密鑰(Key)和初始向量進行加密。然後,在 M3U8 文件指明播放器解密時所需要的信息。

1 #EXTM3U 2 #EXT-X-VERSION:3 3 #EXT-X-KEY:METHOD=AES-128,URI="http://keyprovider",IV=0x1234 4 …

如上面的 M3U8 所示,若 HLS 被加密,解密所需要的信息被包含在  EXT-X-KEY 標籤中:

  • TS 內容被使用 AES-128 加密;

  • 內容密鑰從 http://keyprovider 地址獲取;

  • 解密的初始向量為 0x123。

  • 雲點播的第一版加密方案,我們稱之為「基礎加密方案」,其解密過程如上圖所示:

    1. 播放器下載 M3U8 之後,向 EXT-X-KEY 中 URI 指定的地址請求內容密鑰;
    2. 提供內容密鑰的 URI 是用户的業務服務器,當密鑰請求被鑑權通過之後,向雲點播請求對應的內容密鑰;
    3. 雲點播向用户的業務服務器派發內容密鑰;
    4. 用户業務服務器將內容密鑰派發給播放器,供播放器解密內容並播放。

    雲點播的「基礎加密方案」,是基於 HLS Encryption 實現的標準方案。採用這種方案加密之後,任何終端播放該視頻,都必須通過業務服務器的合法校驗並獲取內容密鑰,否則無法播放。

    雖然,「基礎加密方案」能夠實現對視頻的加密保護,但是內容密鑰的傳輸存在安全性問題。根據 HLS Encryption 的設計,播放器從 EXT-X-KEY 中 URI 指定的地址獲得內容密鑰,並用該密鑰解密視頻內容。但是,這裏獲得的內容密鑰是未經保護的。

    如圖所示,當我們使用 Chrome 瀏覽器播放 HLS 加密視頻時,可以開啟調試模式捕捉獲取內容密鑰的網絡請求。

    在請求的應答體中,內容密鑰的原始二進制內容被展示出來了。這意味着,攻擊者只需要啟用瀏覽器調試模式,或者其他的網絡抓包工具,就能拿到內容密鑰,造成密鑰的泄露。

    - 私有加密方案 -

    針對「基礎加密方案」存在的問題,雲點播的思考是,能不能對內容密鑰本身做一層保護呢?於是,雲點播提出了一種「私有加密方案」。

    具體的流程如上圖所示:

    1. 播放器向業務服務器請求籤名;
    2. 業務服務器對播放請求鑑權,通過後派發簽名;
    3. 播放器隨機生成臨時密鑰,和簽名一併發送給雲點播服務器(通過 M3U8 中 EXT-X-KEY 中 URI 指定);
    4. 雲點播服務器校驗簽名後,使用播放器發送的隨機密鑰,對內容密鑰加密並返回給客户端;
    5. 客户端使用之前生成隨機密鑰進行解密,得到原始內容密鑰,再解密內容並播放。

    「私有加密方案」通過客户端生成的臨時密鑰,對原始內容密鑰進行加密。相比於標準的「基礎加密方案」,避免了內容密鑰直接暴露給攻擊者,提高了安全性。

    採用「私有加密方案」後,極大地提升了攻擊者破解加密內容的門檻,有效杜絕了市面上一大批破解加密的插件和黑產軟件的攻擊。

    然而,「私有加密方案」本質上是一種軟件級的加密加強方案,理論上攻擊者通過反編譯等手段,仍有可能弄清楚私有加密的具體機制,而進行鍼對性的破譯。

    - 商業級 DRM -

    以 Apple 的 Fairplay 和 Google 的 Widevine 為代表的商業級 DRM,採用硬件級的加解密形式,是目前行業內公認的安全級別最高的版權保護解決方案。

    商業級 DRM 的原理是,DRM 系統把內容密鑰進行加密後封裝到許可證中,通過許可證服務派發給播放設備。播放設備中的專門解密模塊負責提取出許可證中的原始內容密鑰,解密視頻播放。因為從許可證中提取出內容密鑰,以及使用內容密鑰解密視頻流的過程,都發生在播放設備的專門硬件之中,因而可以保證解密過程和解密結果不被泄露。

    如上圖所示,當設備從內容服務器(Web Server)下載到商業級 DRM 保護的內容後,向許可證服務器(Lincese Server)請求許可證,並將許可證交給設備內核由專門硬件進行解密。

    然而,作為一家視頻平台,直接接入任何一家商業級 DRM 系統都需要極高的成本。首先,商業級 DRM 一般需要對接入方進行嚴格的審核,並需要通過一系列認證和考試,才會授予接入的資質。另外,不同商業級 DRM 系統的實現均有差異,學習成本高,對各類流格式和平台的支持程度也各不相同。

    雲點播提供了專業穩定的 KMS 和許可證服務器,為用户屏蔽了商業級 DRM 的複雜性。具體的播放流程如上圖所示:

    1. 播放器向業務服務器請求籤名;
    2. 業務服務器對播放請求進行鑑權,通過後派發簽名;
    3. 播放器將簽名和許可證請求發給許可證服務器;
    4. 許可證服務器對簽名鑑權通過後,派發許可證。

    最終,客户端獲取許可證中的原始內容密鑰,解密內容並播放。

    雲點播目前已經集成 FairPlay 和 Widevine 兩種主流 DRM 系統,幫助用户快速享受對視頻內容的行業最高水平的保護水平。

    - 加密方案的選擇 -

    從「基礎加密方案」,到「私有加密方案」再到「商業級 DRM」,加密的安全性逐級加強,那麼是否意味着「商業級 DRM」就是一定是適合所有用户的最佳方案呢?

    事實上,更高的安全級別是以更低的平台適配度作為代價的:

    • 基礎加密方案:基本適用於所有可以播放 HLS 的終端,適配度最高;

    • 私有加密方案:可適配所有移動端,但 Web 端僅適配支持 MSE 的瀏覽器(例如 safari 不支持);

    • 商業級 DRM:國內部分品牌手機和 PC 閹割了 DRM 模塊,適配度最低。 

    雲點播的私有加密方案可支持播放時自動降級。開啟後,如播放終端的瀏覽器不支持 MSE,能自動降級到基礎加密方式播放。但是商業級 DRM 對於終端的硬件要求十分苛刻,如設備不支持 DRM 時,將導致播放失敗。

    因此,建議用户根據自身實際的播放場景和對安全級別的要求進行權衡。例如:

    • OTT 用户對於電影等內容保護級別要求極高,且播放終端相對單一(電視盒子),建議採用商業級 DRM;
    • 需要支持多端播放(移動端、PC、Web、小程序等)的教育培訓類用户,建議採用私有加密方案。

    騰訊雲與尚硅谷聯合推出的精品項目課程《硅谷課堂 —— 基於騰訊雲產品搭建在線課堂》已上線 “騰訊雲開發者社區”。硅谷課堂是一款基於微信公眾號 B2C 模式的在線學習平台,此課程包含了如何應用騰訊雲文件存儲和視頻點播服務、騰訊雲 CODING DevOps 產品搭建在線學習平台。整套課程共 28 小時,通過系統化的理論講解和上機演示為開發者提供完整的項目實戰解析,幫助 Java 程序員積累項目經驗。   乾貨滿滿,機構名師手把手教學!\ 快來領取全套課程!\ 《硅谷課堂 —— 基於騰訊雲產品搭建在線課堂》\ 更有騰訊雲產品免費試用等你領取!\  騰訊雲產品代金券\ 騰訊雲音視頻產品免費試用中心