天天看點

網際網路泛娛樂直播安全的解決之道

阿裡雲的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、世界杯等大型活動的洗禮,在應對大流量突發上有豐富的經驗。完善的内部監控,可以在故障發生前提前排除隐患,秒級生效的故障切換能力,可以做到觀衆無感。基礎架構穩定了,在流量洪峰來臨時,更多是彈性資源的快速補充,阿裡雲的資源儲備在業界是數一數二的,快速的資源建設能力,可以從容應對任何的流量洪峰。

直播安全是一個系統性的工程,需要管理上和技術上采取多重保障措施。

點選觀看直播回放。

繼續閱讀