互聯網泛娛樂直播安全的解決之道

阿里雲的CDN和視頻雲產品在直播安全場景下有廣泛的應用,阿里巴巴集團的淘寶、優酷等業務的直播正是基於這些產品底層能力,構建了強大的直播安全體系。這個基於阿里巴巴集團自身業務實踐打磨出來的架構設計,也被衆多上雲客戶所採用。本篇文章,阿里雲產品架構師小流將與大家分享這些架構實踐背後的一些思考,希望對在尋找穩定、高效、經濟的直播安全體系的開發者有所幫助。

分享主要分三塊:
首先,對系統架構做一個整體介紹,先了解系統架構的全貌。
然後,把架構中的核心內容拆解出來,進行詳細的解讀。
最後,探討這個架構的優勢。

整體系統架構

2020年11月4日,國家網信辦正式發佈《互聯網直播服務管理規定》,對互聯網直播服務提供者、互聯網直播發布者和用戶的相關行爲作出規範,對一些不合法的直播行爲做出了約束。新規要求:互聯網直播服務,要“先審後發、即時阻斷”。該規定自2020年12月1日起施行。下圖的架構設計,囊括了直播內容的產生、存儲和消費的整個生命週期,每個階段都有相應的措施,通過“防、控、封、堵”等多種方式,來確保直播安全。

第1塊橙色部分是內容生產安全模塊。這個模塊主要是對內容生產者進行身份驗證,以確保內容生產者的合法性,儘可能從源頭上規避非法發佈者產生非法內容。是直播安全的第一道防線。
第2塊是審覈及管控模塊,對應架構圖中的黃色部分。這個模塊是整個直播安全體系的核心,這個模塊主要對內容生產後進行檢查審覈,並對非法內容的播放進行管控。
第3塊是播放安全模塊,對應架構圖中淺藍色部分。這個模塊主要是對觀衆身份進行驗證,以確保直播內容不被別人所用,保障內容的安全性,同時,有效解決盜鏈問題,確保資產安全,避免資損。
上面3個模塊是傳統直播安全體系必備的模塊,主要解決內容的安全問題,契合了《互聯網直播服務管理規定》中先審後發、即時阻斷的要求。我們在實際的業務運維中發現,直播基礎架構與直播的質量和穩定性息息相關,基礎架構的安全也至關重要。因此,我們把架構安全也納入直播安全體系裏面來。圖中金色部分是架構安全模塊,在這裏面有一些特殊的設計,我們後面會講到。

各個模塊詳細解讀

一、內容生產安全

我們知道,直播是一種實時性、互動性顯著的互聯網傳播內容的形式。不同於傳統的文字、圖片、視頻等傳播形式,直播緊密的將用戶與直播內容交互在一起,用戶本身也是內容生產的一份子。因此,很有必要對生產內容的用戶進行嚴格管控,進行有效的身份驗證。要對身份進行驗證,最有效的手段就是進行鑑權。
鑑權有多種方式。通常是通過時間戳管控有效期,通過加密算法驗證身份合法性。傳統方案的做法是:用戶與平臺協商一個密鑰,將用戶推流的url、時間戳、密鑰等信息構成一個字符串,按照約定的算法將字符串轉化成相應的鑑權信息;相關信息發送到CDN節點後,由CDN進行比對;如果時間戳在約定範圍內,且鑑權值正確,則正常服務;反之,則拒絕。這種方案,需要把密鑰部署到CDN。這樣,除了平臺內部以外,多了一個鑑權key泄露的風險。所以,在我們設計的方案裏,我們推薦對內容安全有要求的用戶,使用遠程鑑權。

我們看上邊這個架構圖。遠程鑑權的方案裏,用戶在下發推流地址時,將按照加密規則生成的url下發到推流端。推流端請求到CDN節點,CDN節點在收到推流請求時,根據約定,通過http等方式將相關的鑑權信息,比如:url參數、UA、ClientIp等等,透傳給用戶自有的遠程鑑權服務器。鑑權服務根據透傳的信息,驗證合法性,並響應鑑權結果給到CDN節點。CDN節點,根據回調的結果,進行處理。

當然,遠程鑑權可以與傳統的本地鑑權組合使用,先在本地做一層判斷,再進行遠程鑑權。這種做法,可有效解決推流key泄露導致的盜推,同時避免大量非法推流請求透傳至遠程鑑權服務器,將服務器打爆。

二、審覈及管控安全

近些年來,由於視頻業務爆發,對視頻監管及審覈提出了更高的要求,視頻直播的識別及審覈規格要升級。審覈規格的升級,往往意味着技術難度和成本的增加。如何在滿足業務需求的情況下,選擇成本最優的智能審覈方案,是每個直播平臺面對的難題。一般情況,要做嚴格的審覈,採用1s一張的非關鍵幀的截圖,是一個比較穩妥的做法。但非關鍵幀的截圖,對截圖服務的機器開銷會比較大,即客戶的使用成本會比較高。如果是大平臺,流的數量非常大,全量走非關鍵幀截圖,成本開銷會非常大。因此,考慮採用差異化的截圖策略,在成本和收益上,做到一個平衡,以期通過技術手段,在避免成本的浪費的同時,最大程度上做到識別不遺漏。比如:核心大主播,這類主播數量少,但重要性高,容易被人關注及攻擊,走非關鍵幀截圖;敏感高危類目走非關鍵幀截圖;遊戲直播和賽事直播走關鍵幀截圖。這裏說的非關鍵幀截圖,是指強制1s一張截圖;關鍵幀截圖,是根據用戶推流的gop,每個gop截一張。

我們來看整體的架構設計:平臺主播推流到阿里雲CDN;阿里雲CDN,在收流後,回調客戶截圖決策服務;客戶截圖決策服務,基於歷史主播評分、主播分類(比如高危、疑似、普通等)決策流的截圖策略,並確定截圖週期頻率,下發到阿里雲截圖服務;阿里雲截圖服務,根據決策回調,對流進行截圖;對於客戶截圖決策服務無法決策的流,阿里雲截圖服務會根據流的屬性分析來自動決策(比如:在流剛入系統時,進行安全的非關鍵幀截圖,後續解析發現視頻流的關鍵幀,符合關鍵幀截圖條件時,切換到關鍵幀截圖)。客戶審覈服務實時拉取阿里雲截圖並審覈,然後根據審覈結果,實時進行處理。如果是高危的,調用阿里雲流封禁接口,實時封禁主播推流,同時更新截圖決策服務,標註主播違規標識,便於後續的截圖決策。疑似的,更新截圖決策服務,標註主播疑似違規標識,調整截圖策略;普通的,則不做處理。

截圖審覈目前也有很多基於AI的智能審覈能力,可以大量節省人工審覈的成本。阿里雲也有相應的產品,可以做集成。

除了截圖審覈外,通過標準的錄製服務,錄製直播內容,並進行存儲,結合截圖審覈,可以進行人工的二次審覈及審覈確認,審覈結果,可以同步到決策服務,進行策略的干預和更新。

三、播放安全

內容生產安全和內容審覈管控是從內容的產生和管理角度去解決安全問題,這兩個是直播內容安全的基礎。但是在一些一旦犯錯就會產生巨大影響的場景下,需要有更嚴格的管控措施。這就要求我們在播放側,也需要有一些安全措施來加以保障。比如一些敏感內容或者大型活動的直播,這類內容的關注度超高,一旦內容審覈有所遺漏,哪怕只是一幀畫面,也會產生巨大的輿論影響,造成播出事故。對於這種場景,推薦使用阿里雲直播產品延遲播放的能力,給審覈以足夠的時間進行逐幀確認,確保播出安全。延遲播放在日常一些需要確保時效性的場景下是不適用的,因而延遲播放的能力需要能細化到對直播流粒度的管理。當然,有一些業務場景,比如部分用戶需要實時,而部分用戶需要延遲,也可以採用延遲播放來滿足。

播放安全還需要具備通過技術手段避免資損產生的能力。資損有兩類,一類是盜鏈,即非法用戶通過非法途徑播放內容。盜鏈往往會造成直播內容泄密,導致正常業務受到影響,使得平臺花費大量資源製造的內容產生的價值大打折扣。更可惡的是,盜鏈產生的流量費用,往往還需要平臺承擔。對於盜鏈,主要的管控措施,就是進行鑑權。基礎的鑑權,比如ua、referer、時間戳、md5等能解決掉一部分盜鏈問題,但是盜鏈和防盜鏈跟安全的攻防一樣,有來有往,需要不斷的更新或者升級防盜鏈能力,纔能有效的遏制盜鏈。因此,我們比較推薦採用遠程鑑權的方式來做防盜鏈。拉流的遠程鑑權和推流的遠程鑑權類似,這裏就不再展開了。無論是基礎鑑權還是遠程鑑權,都是在拉流接入時候驗證身份,並不能做到萬無一失。DRM是另一種更高階的防盜鏈技術,這種技術主要是對視頻幀逐幀加密,在播放端再解密。DRM的防盜鏈效果更好,但需要有比較強的視頻處理的技術能力。

另一類資損,是對不在播的內容做了錯誤的資源位推薦,影響用戶體驗,造成推薦資源的浪費。這類問題,主要是對熱門主播的直播狀態管理不準確造成的。我們推薦的做法是將直播的業務下播和真正的CDN下播結合起來,通過CDN的關播回調,來確認是否直播下播,對於CDN已下播,但直播間未關閉的,則關閉直播間的相關邏輯。其做法是,當用戶的直播管控中心收到業務關播信息,則查詢CDN的關播信息,若CDN顯示流還在線,則調用阿里雲封禁服務,進行斷流。另外,直播管控中心定時從CDN同步流在線狀態,對於流已不在線,但業務關播仍顯示在線的,超出預定時間的,則關閉直播間相關邏輯。爲了確認流狀態更新的安全,避免接口泄露,被有心人利用,我們也建議回調做鑑權,只有通過鑑權的回調,才能採信,接受更新。

四、架構安全

上面三塊內容,從全鏈路上都保證了直播內容的安全,但在日常運維中,還有穩定性的要求。只有在穩定有質量保證的直播平臺上構建的直播內容安全措施,纔是有意義的。同時,在有些場景下,比如大型活動,超高的關注度,流量洪峯的衝擊,對穩定性有更高的要求。沒有一個有效的架構來支撐,一旦有點風吹草動,往往會造成活動事故。我們把這類場景衍生出來的需求,納入到架構安全裏面來。架構安全,本質是要保證日常運營和大型活動的推播穩定,尤其是在大型活動時,能夠承受住流量洪峯,在故障時,有快速調整和恢復的能力。

在技術上,主要依賴全鏈路災備來實現。首先是傳輸鏈路容災:CDN直播的推拉流是多層架構,CDN內部傳輸具備故障自動切換的能力,當檢測到某條傳輸鏈路有問題時,自動切換到另外的鏈路上,生效時間秒級。其次是多中心容災,阿里雲的架構裏,直播中心是所有處理直播視頻的樞紐,一旦中心出現問題,整個直播將受到巨大的影響。阿里雲的直播中心本身是高可用架構,基本上可以滿足日常的穩定性要求。在高可用架構的基礎上,採用多中心融災的方案,解決單一直播中心故障造成大面積直播中斷的問題。需要說明的是,多中心容災的成本較大,建議在大型活動等特殊場景下再啓用。

除了上述傳輸層面的全鏈路容災,我們還推薦採用主備合流的方式,來確保架構安全。其做法是,將傳輸融災向下延伸至推流端,推流方從不同區域或運營商推多路流至CDN,CDN在直播中心進行合流,選擇其中一路對外分發,當該路流出現異常時,可秒級切換至另一路流,這樣可以做到用戶切換無感知。

架構的優勢

上面詳細介紹了整體的系統架構,那麼爲什麼要用這樣的架構?這樣的架構有什麼優勢呢?我們來看:

首先,從前面的介紹可以看到,整個架構的每一層,都有強大的鑑權能力。我們推薦的遠程鑑權,優點尤其明顯,因爲key是直播業務方自己保管的,不需要給第三方商業CDN部署,鑑權算法也不需要同步給第三方,減少了暴露的風險。遠程鑑權可以根據業務情況及時調整,有更好的靈活性。也可以針對推流和播放,實現不同的策略,比如:推流用同步鑑權,保證核心內容安全;播放用異步鑑權,保證數據安全的同時,不影響播放秒開;重點流,鑑權服務可以自助設置特殊策略,多重保障。另外,阿里雲直播CDN產品,具有業界領先的邊緣編程能力,基於該能力,可以快速實現鑑權的自定義。

其次,我們推薦的審覈管控架構,是經濟且高效的方案。通過這個架構,可以做到成本與收益的平衡。管控力度可以到具體的流,非常的精細化。當出現異常時,可以秒級對直播信號進行阻斷,風險控制可以說是非常及時、立竿見影。截圖審覈、錄製審覈和延遲播放等多種審覈管控機制,逐層的篩選和控制,讓非法內容無處藏身。

最後,我們提供的整個直播基礎架構,具備全鏈路的災備能力,容災能力強。阿里雲邊緣雲具備國內領先的CDN能力,經受了多年雙11、世界盃等大型活動的洗禮,在應對大流量突發上有豐富的經驗。完善的內部監控,可以在故障發生前提前排除隱患,秒級生效的故障切換能力,可以做到觀衆無感。基礎架構穩定了,在流量洪峯來臨時,更多是彈性資源的快速補充,阿里雲的資源儲備在業界是數一數二的,快速的資源建設能力,可以從容應對任何的流量洪峯。

原文鏈接

本文爲阿里雲原創內容,未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章