阿里雲周源:一篇文章讀懂四代視頻加密技術演進

在剛剛圓滿落幕的LiveVideoStackCon峯會上,阿里雲高級技術專家周源進行了《視頻加密和DRM的實施實踐》主題分享。周源,有十多年音視頻研發經驗,以前在淘寶視頻負責開放平臺,目前在阿里雲視頻雲部門負責媒體處理,在大規模系統建設和雲計算方面都有很是豐富的實戰經驗。本文爲演講原文,但願對視頻內容安全從業者有一些啓發。算法

在視頻加密這塊,實際上是一個攻防戰,攻防的手段很是多,還會不斷的翻新,有不少技術手段,技術的發展也是突飛猛進。視頻保護技術其實已經升級了好幾代,我會給你們介紹下每一代技術是怎麼作的、背後的原理、遇到的問題以及業界的解法。會從數據加密、全鏈路保護、數字版權管理、內容識別四個方面來介紹。瀏覽器

數據加密原理——算法的選擇

最初,數據加密原理很是簡單,咱們在生活中若是有同樣東西你想保護它,你會怎麼辦,你的第一反應可能就是拿把鎖把他鎖起來,本身保護好鑰匙。在數字領域,這個「鎖」有好多種,一種叫對稱型的,一種叫非對稱型的。安全

這兩種算法分別有各自的優缺點,對稱型算法的優勢是計算量很是小,速度快,效率高。而它的缺點是密鑰的管理和分發很是困難,若是別人配了相同的一把鑰匙,就能夠打開這把鎖了,不夠安全。常見的算法包括AES、EDS。非對稱型算法的優缺點其實和對稱型是相對的,優勢是算法是公開的,你能夠看到全部細節,即便這樣,安全性也很是高。非對稱算法有兩種類型的鑰匙:公鑰和私鑰。公鑰能夠開放給全部人,內容只能經過私鑰加密,加密完成後,使用公鑰就能夠解密,可是不能進行加密。可是缺點是加密和解密花費的時間長,速度慢,因此不適合對大量數據加密,只適合少許數據的加密。常見的算法包括RSA、ECC。服務器

在視頻場景下,怎麼去權衡對稱加密和非對稱加密?

媒體介質經歷了幾回升級,最先是文本,幾十KB就是很是大的一個小說了;到了圖片就發展到了幾百KB,甚至MB的級別;現在視頻時代,量級上到GB級別。因此視頻的第一個特色是數據量大,加密算法速度不行的話是不夠實用化的。網絡

視頻的應用愈來愈普遍,它不只僅侷限於某一個平臺。用戶會在各類操做系統、各類終端設備上去觀看視頻,在選擇算法的同時,必定要考慮平臺標準化這塊。session

更進一步的話,須要考慮移動端的功耗問題,你們作視頻都在能耗和發熱作鬥爭,選擇算法的時候,必定要考慮功耗問題。ide

image

最終的選擇——AES算法

基於以上考慮,業界你們最終會選擇AES算法。它具備如下特色:阿里雲

  1. 安全性,AES算法從數學上證實是安全的。把加密好的文件給到你,你沒拿到鑰匙的狀況下,暴力破解須要花2104億年的時間,這幾乎是一個不可能完成的任務。如今也存在一種旁路攻擊的方法,攻擊的是實現方法,不是算法自己。攻擊成本比較高,在增長成本的前提下,實現上是有規避的方法。因此安全性仍是有保障的。
  2. 這個算法衡量了時-空佔比,速度快、消耗小,適合小型系統上工做。
  3. 算法也很是標準化,也在絕大部分的硬件芯片、軟件平臺中進行內置,能夠用硬件自己的能力快速作計算。

通常狀況下密鑰越長,安全性越高。可是密鑰短並不表明運算速度必定會快。同時,由於均衡了時-空佔比,AES算法的資源消耗也是最低的。因此,AES算法在對稱算法中是首選。雲計算

image

AES算法的經典應用——HLS數據加密

舉個例子,HLS協議使用M3U8文件格式。關鍵性的信息是下圖中橙色的一行,這裏加了KEY的信息。它的原理是播放器從網上把m3u8下載下來,解析後獲得KEY,而且傳遞給服務器詢問請求經過不經過,服務器若是認證經過,會把真實的KEY返回給播放器進行播放。加密

image

僅僅使用AES加密來包含內容時,它的安全問題出在哪裏呢?

它的最關鍵的問題是——鑰匙URL。由於URL要被寫在文件裏的,無論你作什麼變化,不管加session、referer、token,它都是標準的HTTP請求,這是HLS加密的最大風險點。

由於網絡請求是公開的,咱們怎麼保障網絡傳輸安全性?防護中間人攻擊?
而在客戶端拿到鑰匙後,其實是明文內容,客戶端的安全性又該如何保障?

如此咱們便有了新解法——全鏈路保護

這裏有兩個很重要的原則,第一個是中間網絡是不可信的,第二個是客戶端是不可信的。接下來看看這兩個問題如何解決。

關於中間網絡不可信,HTTPS是最經典的方案。由於HTTPS整個流程保證了沒有任何人能竊取中間的信息,安全的從服務端傳遞到客戶端。

image

它整個流程是:黑色的部分是公開的,誰看到都不會影響安全性。客戶端向服務端請求一次,服務端會返回公鑰,客戶端用公鑰去把本身的對稱鑰匙保護一次。接着把加密後的對稱鑰匙傳遞給服務端,服務端使用祕鑰解碼後獲得對稱鑰匙。這時候客戶端和服務端雙方都知道對稱鑰匙了,而後用對稱鑰匙對數據加密進行傳遞。這個方案即解決了安全性問題,又解決了效率問題。

關於客戶端不可信。一般客戶端是很是複雜的,常見的是瀏覽器,標準也不少(以下圖)。可是在整個規劃中,很重要的一點是:「有定義,但沒有實現」。每一個瀏覽器都支持H5的DRM方案,可是每一個瀏覽器的支持方式都是不同的。

image

H5整個流程是,當解碼器拿到加密數據以後,數據流會通過CDM,這個模塊會和外部系統進行通信,去和License服務獲取內容鑰匙和受權規則,通過了這一步才能真正把流解密成明文數據去作渲染。因此,雖然有了H5的規範,可是實際上仍是會被廠商綁定,客戶端安全性徹底由廠商提供的CDM來決定。

移動端方面,分爲Web端和APP。Web端瀏覽器是很是複雜的,各類定製的WebKit引擎不支持內容解碼模塊(Content Decryption Module),只能採用JavaScript去寫代碼,它是明文代碼,安全性不好。如今有一個新的技術WebAssembly,它是把JS編譯一下,增長了破解的難度,可是仍是沒有從源頭解決這個問題。APP是沒有任何標準了,都靠本身去定製。

如此看來,咱們想解決客戶端不可信這件事,其實還有不少障礙在裏面。同時,客戶端不可信帶來了不少問題,你無法知道你客戶端裏是好人仍是壞人,若是是惡意用戶,他的破壞力普通比較強,會給平臺帶來很大的損失。

全鏈路的保護解決了網絡傳輸的安全,可是客戶端的安全問題沒有獲得完全徹底的解決,因此在業界有了第三種解法:數字版權保護(DRM)。

更安全的加密方式——數字版權保護DRM

DRM基本是三足鼎立的狀況,微軟的PlayReady,谷歌的Widevine,蘋果的FairPlay。不一樣操做系統、瀏覽器和移動平臺須要不一樣的方案,因此看起來咱們沒辦法用一套方案把全部的加密都作完。

image

因此如何跨平臺把問題解決掉?——多重DRM解決方案

咱們分別來看看三個廠商的方案:PlayReady方案中,當你的設備和服務獲得一個認證後,才能接着發起License請求,分了兩個階段來提交。Widevine方案中,經過第一段來控制是否有權限複雜的鑰匙,再從License去拿真正的鑰匙。FairPlay方案中,播放器第一個流程是認證,第二個流程是獲取License。

如此,咱們有了多重DRM解決方案,它的流程是Player去問認證服務允不容許訪問視頻,後臺通過認證後,會給一個認證後的token。當認證容許訪問的時候,經過CDN分發網絡從源站獲取內容,當拿到內容後,有了token和視頻KEY ID,就會把License返回,這裏纔有真正能解密內容的鑰匙。

image

多重DRM能夠下降加密成本,對於不一樣平臺,把整個流程作一致化,只須要一份加密資產,下降了加密流程成本和管理成本。同時,由於原生 DRM 客戶端在其原平生臺上一般是免費提供的,也能夠消除客戶端的許可成本。

從技術角度上,整個業界有通用加密格式的規範,能夠很好的把加密內容安全地傳輸到客戶端。可是有一個現實狀況,FairPlay的加密算法是不一樣的,爲了實現多重DRM方案,咱們須要兩份加密資產,才能真正作到跨平臺的保護。

那麼DRM是不是最終的加密方案呢?從安全性上來說,DRM用了非對稱算法,可是依然會面臨主密鑰泄露這個問題,網上也出現HDCP主祕鑰泄露、4K視頻版權保護技術被破解等案例。

咱們用鑰匙去保護視頻、在全鏈路保護上作了不少改進,而且採用了更安全的多重DRM方案,咱們試圖用各類方法把內容保護起來,這些思路都叫被動保護。被動包含的每種方法都有本身的缺陷,因此咱們給出一種新的思路,叫內容識別。

主動保護——內容識別

目前,版權保護遇到的問題是「內容全部權」跟「版權」的關係愈來愈複雜,這使我想起凱文.凱利在《必然》中曾提出:「對已有事物的從新排列和再利用,而對傳統的財產觀念和全部權概念產生巨大的影響。」

這裏面就延伸出來不少問題,用戶是否對原有素材作了必定的轉化,仍是僅僅複製了原做?咱們應該是嚴格禁止仍是開放包容的態度?在這個全民導演的時代,咱們能夠看到不少用戶把本身錄製或者網上收集的素材重混起來,就成爲了很成功的新做品。固然,版權方也有真實的案例,即便得內容獲得了很好的二次傳播,還驚喜地得到額外的收益。面對這樣的狀況,咱們該如何進行高效地內容識別和保護?

image

視頻指紋——給視頻賦予惟一身份

阿里雲視頻雲團隊自研了視頻指紋技術,它是一種識別、提取、壓縮視頻的技術,能夠產生惟一的「指紋」來表明視頻文件進行視頻查找。你能夠經過算法獲得指紋信息,用這個指紋信息和版權庫中的視頻進行檢索匹配,就能夠很迅速地找到類似的視頻源。它不只判斷惟一性,還能夠找到究竟使用了視頻源的哪一段。

image

視頻指紋技術能夠解決以下的場景的問題:

1. 版權保護

新增視頻與版權庫作比對,對存在版權風險的視頻進行播放控制,下降侵權風險;對自有版權的視頻資源,從公網抓取視頻數據鑑別,防止自有版權內容被侵權。

2. 原創識別

能識別這段視頻是從哪一個片子剪輯出來的,識別視頻是不是原創視頻、剪輯後視頻、自媒體再創造視頻。

3. 廣告分紅

傳播沒關係,當能作到視頻回溯的時候,就能夠判斷新上傳的視頻原創性,檢索分紅庫召回認領視頻,找到真正的視頻版權主,從而支撐廣告分紅業務生態。

回顧

總體視頻保護技術歷經了幾回升級,最後,咱們進行一個回顧和總結。

數據加密

它是有安全基礎,有算法保障的,可是沒有解決問題

全鏈路保護

總體的保護方案,可是沒法落地,沒辦法大規模使用

數字版權管理(DRM)

更完善、更安全的保護方案,可是依舊存在風險

內容識別

改變思路,變被動爲主動,開拓更廣闊的空間

相關文章
相關標籤/搜索