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

語言: 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="https://keyprovider",IV=0x1234 4 …

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

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

  • 內容金鑰從 https://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 程式設計師積累專案經驗。   乾貨滿滿,機構名師手把手教學!\ 快來領取全套課程!\ 《矽谷課堂 —— 基於騰訊雲產品搭建線上課堂》\ 更有騰訊雲產品免費試用等你領取!\  騰訊雲產品代金券\ 騰訊雲音影片產品免費試用中心