互聯(lián)網(wǎng)泛娛樂直播安全的解決之道
阿里云的CDN和視頻云產(chǎn)品在直播安全場景下有廣泛的應(yīng)用,阿里巴巴集團的淘寶、優(yōu)酷等業(yè)務(wù)的直播正是基于這些產(chǎn)品底層能力,構(gòu)建了強大的直播安全體系。這個基于阿里巴巴集團自身業(yè)務(wù)實踐打磨出來的架構(gòu)設(shè)計,也被眾多上云客戶所采用。本篇文章,阿里云產(chǎn)品架構(gòu)師小流將與大家分享這些架構(gòu)實踐背后的一些思考,希望對在尋找穩(wěn)定、高效、經(jīng)濟的直播安全體系的開發(fā)者有所幫助。
分享主要分三塊:首先,對系統(tǒng)架構(gòu)做一個整體介紹,先了解系統(tǒng)架構(gòu)的全貌。然后,把架構(gòu)中的核心內(nèi)容拆解出來,進行詳細的解讀。最后,探討這個架構(gòu)的優(yōu)勢。
整體系統(tǒng)架構(gòu)
2020年11月4日,國家網(wǎng)信辦正式發(fā)布《互聯(lián)網(wǎng)直播服務(wù)管理規(guī)定》,對互聯(lián)網(wǎng)直播服務(wù)提供者、互聯(lián)網(wǎng)直播發(fā)布者和用戶的相關(guān)行為作出規(guī)范,對一些不合法的直播行為做出了約束。新規(guī)要求:互聯(lián)網(wǎng)直播服務(wù),要“先審后發(fā)、即時阻斷”。該規(guī)定自2020年12月1日起施行。下圖的架構(gòu)設(shè)計,囊括了直播內(nèi)容的產(chǎn)生、存儲和消費的整個生命周期,每個階段都有相應(yīng)的措施,通過“防、控、封、堵”等多種方式,來確保直播安全。
第1塊橙色部分是內(nèi)容生產(chǎn)安全模塊。這個模塊主要是對內(nèi)容生產(chǎn)者進行身份驗證,以確保內(nèi)容生產(chǎn)者的合法性,盡可能從源頭上規(guī)避非法發(fā)布者產(chǎn)生非法內(nèi)容。是直播安全的第一道防線。第2塊是審核及管控模塊,對應(yīng)架構(gòu)圖中的黃色部分。這個模塊是整個直播安全體系的核心,這個模塊主要對內(nèi)容生產(chǎn)后進行檢查審核,并對非法內(nèi)容的播放進行管控。第3塊是播放安全模塊,對應(yīng)架構(gòu)圖中淺藍色部分。這個模塊主要是對觀眾身份進行驗證,以確保直播內(nèi)容不被別人所用,保障內(nèi)容的安全性,同時,有效解決盜鏈問題,確保資產(chǎn)安全,避免資損。上面3個模塊是傳統(tǒng)直播安全體系必備的模塊,主要解決內(nèi)容的安全問題,契合了《互聯(lián)網(wǎng)直播服務(wù)管理規(guī)定》中先審后發(fā)、即時阻斷的要求。我們在實際的業(yè)務(wù)運維中發(fā)現(xiàn),直播基礎(chǔ)架構(gòu)與直播的質(zhì)量和穩(wěn)定性息息相關(guān),基礎(chǔ)架構(gòu)的安全也至關(guān)重要。因此,我們把架構(gòu)安全也納入直播安全體系里面來。圖中金色部分是架構(gòu)安全模塊,在這里面有一些特殊的設(shè)計,我們后面會講到。
各個模塊詳細解讀
一、內(nèi)容生產(chǎn)安全
我們知道,直播是一種實時性、互動性顯著的互聯(lián)網(wǎng)傳播內(nèi)容的形式。不同于傳統(tǒng)的文字、圖片、視頻等傳播形式,直播緊密的將用戶與直播內(nèi)容交互在一起,用戶本身也是內(nèi)容生產(chǎn)的一份子。因此,很有必要對生產(chǎn)內(nèi)容的用戶進行嚴格管控,進行有效的身份驗證。要對身份進行驗證,最有效的手段就是進行鑒權(quán)。鑒權(quán)有多種方式。通常是通過時間戳管控有效期,通過加密算法驗證身份合法性。傳統(tǒng)方案的做法是:用戶與平臺協(xié)商一個密鑰,將用戶推流的url、時間戳、密鑰等信息構(gòu)成一個字符串,按照約定的算法將字符串轉(zhuǎn)化成相應(yīng)的鑒權(quán)信息;相關(guān)信息發(fā)送到CDN節(jié)點后,由CDN進行比對;如果時間戳在約定范圍內(nèi),且鑒權(quán)值正確,則正常服務(wù);反之,則拒絕。這種方案,需要把密鑰部署到CDN。這樣,除了平臺內(nèi)部以外,多了一個鑒權(quán)key泄露的風(fēng)險。所以,在我們設(shè)計的方案里,我們推薦對內(nèi)容安全有要求的用戶,使用遠程鑒權(quán)。
我們看上邊這個架構(gòu)圖。遠程鑒權(quán)的方案里,用戶在下發(fā)推流地址時,將按照加密規(guī)則生成的url下發(fā)到推流端。推流端請求到CDN節(jié)點,CDN節(jié)點在收到推流請求時,根據(jù)約定,通過http等方式將相關(guān)的鑒權(quán)信息,比如:url參數(shù)、UA、ClientIp等等,透傳給用戶自有的遠程鑒權(quán)服務(wù)器。鑒權(quán)服務(wù)根據(jù)透傳的信息,驗證合法性,并響應(yīng)鑒權(quán)結(jié)果給到CDN節(jié)點。CDN節(jié)點,根據(jù)回調(diào)的結(jié)果,進行處理。
當然,遠程鑒權(quán)可以與傳統(tǒng)的本地鑒權(quán)組合使用,先在本地做一層判斷,再進行遠程鑒權(quán)。這種做法,可有效解決推流key泄露導(dǎo)致的盜推,同時避免大量非法推流請求透傳至遠程鑒權(quán)服務(wù)器,將服務(wù)器打爆。
二、審核及管控安全
近些年來,由于視頻業(yè)務(wù)爆發(fā),對視頻監(jiān)管及審核提出了更高的要求,視頻直播的識別及審核規(guī)格要升級。審核規(guī)格的升級,往往意味著技術(shù)難度和成本的增加。如何在滿足業(yè)務(wù)需求的情況下,選擇成本最優(yōu)的智能審核方案,是每個直播平臺面對的難題。一般情況,要做嚴格的審核,采用1s一張的非關(guān)鍵幀的截圖,是一個比較穩(wěn)妥的做法。但非關(guān)鍵幀的截圖,對截圖服務(wù)的機器開銷會比較大,即客戶的使用成本會比較高。如果是大平臺,流的數(shù)量非常大,全量走非關(guān)鍵幀截圖,成本開銷會非常大。因此,考慮采用差異化的截圖策略,在成本和收益上,做到一個平衡,以期通過技術(shù)手段,在避免成本的浪費的同時,最大程度上做到識別不遺漏。比如:核心大主播,這類主播數(shù)量少,但重要性高,容易被人關(guān)注及攻擊,走非關(guān)鍵幀截圖;敏感高危類目走非關(guān)鍵幀截圖;游戲直播和賽事直播走關(guān)鍵幀截圖。這里說的非關(guān)鍵幀截圖,是指強制1s一張截圖;關(guān)鍵幀截圖,是根據(jù)用戶推流的gop,每個gop截一張。
我們來看整體的架構(gòu)設(shè)計:平臺主播推流到阿里云CDN;阿里云CDN,在收流后,回調(diào)客戶截圖決策服務(wù);客戶截圖決策服務(wù),基于歷史主播評分、主播分類(比如高危、疑似、普通等)決策流的截圖策略,并確定截圖周期頻率,下發(fā)到阿里云截圖服務(wù);阿里云截圖服務(wù),根據(jù)決策回調(diào),對流進行截圖;對于客戶截圖決策服務(wù)無法決策的流,阿里云截圖服務(wù)會根據(jù)流的屬性分析來自動決策(比如:在流剛?cè)胂到y(tǒng)時,進行安全的非關(guān)鍵幀截圖,后續(xù)解析發(fā)現(xiàn)視頻流的關(guān)鍵幀,符合關(guān)鍵幀截圖條件時,切換到關(guān)鍵幀截圖)。客戶審核服務(wù)實時拉取阿里云截圖并審核,然后根據(jù)審核結(jié)果,實時進行處理。如果是高危的,調(diào)用阿里云流封禁接口,實時封禁主播推流,同時更新截圖決策服務(wù),標注主播違規(guī)標識,便于后續(xù)的截圖決策。疑似的,更新截圖決策服務(wù),標注主播疑似違規(guī)標識,調(diào)整截圖策略;普通的,則不做處理。
截圖審核目前也有很多基于AI的智能審核能力,可以大量節(jié)省人工審核的成本。阿里云也有相應(yīng)的產(chǎn)品,可以做集成。
除了截圖審核外,通過標準的錄制服務(wù),錄制直播內(nèi)容,并進行存儲,結(jié)合截圖審核,可以進行人工的二次審核及審核確認,審核結(jié)果,可以同步到?jīng)Q策服務(wù),進行策略的干預(yù)和更新。
三、播放安全
內(nèi)容生產(chǎn)安全和內(nèi)容審核管控是從內(nèi)容的產(chǎn)生和管理角度去解決安全問題,這兩個是直播內(nèi)容安全的基礎(chǔ)。但是在一些一旦犯錯就會產(chǎn)生巨大影響的場景下,需要有更嚴格的管控措施。這就要求我們在播放側(cè),也需要有一些安全措施來加以保障。比如一些敏感內(nèi)容或者大型活動的直播,這類內(nèi)容的關(guān)注度超高,一旦內(nèi)容審核有所遺漏,哪怕只是一幀畫面,也會產(chǎn)生巨大的輿論影響,造成播出事故。對于這種場景,推薦使用阿里云直播產(chǎn)品延遲播放的能力,給審核以足夠的時間進行逐幀確認,確保播出安全。延遲播放在日常一些需要確保時效性的場景下是不適用的,因而延遲播放的能力需要能細化到對直播流粒度的管理。當然,有一些業(yè)務(wù)場景,比如部分用戶需要實時,而部分用戶需要延遲,也可以采用延遲播放來滿足。
播放安全還需要具備通過技術(shù)手段避免資損產(chǎn)生的能力。資損有兩類,一類是盜鏈,即非法用戶通過非法途徑播放內(nèi)容。盜鏈往往會造成直播內(nèi)容泄密,導(dǎo)致正常業(yè)務(wù)受到影響,使得平臺花費大量資源制造的內(nèi)容產(chǎn)生的價值大打折扣。更可惡的是,盜鏈產(chǎn)生的流量費用,往往還需要平臺承擔(dān)。對于盜鏈,主要的管控措施,就是進行鑒權(quán)。基礎(chǔ)的鑒權(quán),比如ua、referer、時間戳、md5等能解決掉一部分盜鏈問題,但是盜鏈和防盜鏈跟安全的攻防一樣,有來有往,需要不斷的更新或者升級防盜鏈能力,才能有效的遏制盜鏈。因此,我們比較推薦采用遠程鑒權(quán)的方式來做防盜鏈。拉流的遠程鑒權(quán)和推流的遠程鑒權(quán)類似,這里就不再展開了。無論是基礎(chǔ)鑒權(quán)還是遠程鑒權(quán),都是在拉流接入時候驗證身份,并不能做到萬無一失。DRM是另一種更高階的防盜鏈技術(shù),這種技術(shù)主要是對視頻幀逐幀加密,在播放端再解密。DRM的防盜鏈效果更好,但需要有比較強的視頻處理的技術(shù)能力。
另一類資損,是對不在播的內(nèi)容做了錯誤的資源位推薦,影響用戶體驗,造成推薦資源的浪費。這類問題,主要是對熱門主播的直播狀態(tài)管理不準確造成的。我們推薦的做法是將直播的業(yè)務(wù)下播和真正的CDN下播結(jié)合起來,通過CDN的關(guān)播回調(diào),來確認是否直播下播,對于CDN已下播,但直播間未關(guān)閉的,則關(guān)閉直播間的相關(guān)邏輯。其做法是,當用戶的直播管控中心收到業(yè)務(wù)關(guān)播信息,則查詢CDN的關(guān)播信息,若CDN顯示流還在線,則調(diào)用阿里云封禁服務(wù),進行斷流。另外,直播管控中心定時從CDN同步流在線狀態(tài),對于流已不在線,但業(yè)務(wù)關(guān)播仍顯示在線的,超出預(yù)定時間的,則關(guān)閉直播間相關(guān)邏輯。為了確認流狀態(tài)更新的安全,避免接口泄露,被有心人利用,我們也建議回調(diào)做鑒權(quán),只有通過鑒權(quán)的回調(diào),才能采信,接受更新。
四、架構(gòu)安全
上面三塊內(nèi)容,從全鏈路上都保證了直播內(nèi)容的安全,但在日常運維中,還有穩(wěn)定性的要求。只有在穩(wěn)定有質(zhì)量保證的直播平臺上構(gòu)建的直播內(nèi)容安全措施,才是有意義的。同時,在有些場景下,比如大型活動,超高的關(guān)注度,流量洪峰的沖擊,對穩(wěn)定性有更高的要求。沒有一個有效的架構(gòu)來支撐,一旦有點風(fēng)吹草動,往往會造成活動事故。我們把這類場景衍生出來的需求,納入到架構(gòu)安全里面來。架構(gòu)安全,本質(zhì)是要保證日常運營和大型活動的推播穩(wěn)定,尤其是在大型活動時,能夠承受住流量洪峰,在故障時,有快速調(diào)整和恢復(fù)的能力。
在技術(shù)上,主要依賴全鏈路災(zāi)備來實現(xiàn)。首先是傳輸鏈路容災(zāi):CDN直播的推拉流是多層架構(gòu),CDN內(nèi)部傳輸具備故障自動切換的能力,當檢測到某條傳輸鏈路有問題時,自動切換到另外的鏈路上,生效時間秒級。其次是多中心容災(zāi),阿里云的架構(gòu)里,直播中心是所有處理直播視頻的樞紐,一旦中心出現(xiàn)問題,整個直播將受到巨大的影響。阿里云的直播中心本身是高可用架構(gòu),基本上可以滿足日常的穩(wěn)定性要求。在高可用架構(gòu)的基礎(chǔ)上,采用多中心融災(zāi)的方案,解決單一直播中心故障造成大面積直播中斷的問題。需要說明的是,多中心容災(zāi)的成本較大,建議在大型活動等特殊場景下再啟用。
除了上述傳輸層面的全鏈路容災(zāi),我們還推薦采用主備合流的方式,來確保架構(gòu)安全。其做法是,將傳輸融災(zāi)向下延伸至推流端,推流方從不同區(qū)域或運營商推多路流至CDN,CDN在直播中心進行合流,選擇其中一路對外分發(fā),當該路流出現(xiàn)異常時,可秒級切換至另一路流,這樣可以做到用戶切換無感知。
架構(gòu)的優(yōu)勢
上面詳細介紹了整體的系統(tǒng)架構(gòu),那么為什么要用這樣的架構(gòu)?這樣的架構(gòu)有什么優(yōu)勢呢?我們來看:
首先,從前面的介紹可以看到,整個架構(gòu)的每一層,都有強大的鑒權(quán)能力。我們推薦的遠程鑒權(quán),優(yōu)點尤其明顯,因為key是直播業(yè)務(wù)方自己保管的,不需要給第三方商業(yè)CDN部署,鑒權(quán)算法也不需要同步給第三方,減少了暴露的風(fēng)險。遠程鑒權(quán)可以根據(jù)業(yè)務(wù)情況及時調(diào)整,有更好的靈活性。也可以針對推流和播放,實現(xiàn)不同的策略,比如:推流用同步鑒權(quán),保證核心內(nèi)容安全;播放用異步鑒權(quán),保證數(shù)據(jù)安全的同時,不影響播放秒開;重點流,鑒權(quán)服務(wù)可以自助設(shè)置特殊策略,多重保障。另外,阿里云直播CDN產(chǎn)品,具有業(yè)界領(lǐng)先的邊緣編程能力,基于該能力,可以快速實現(xiàn)鑒權(quán)的自定義。
其次,我們推薦的審核管控架構(gòu),是經(jīng)濟且高效的方案。通過這個架構(gòu),可以做到成本與收益的平衡。管控力度可以到具體的流,非常的精細化。當出現(xiàn)異常時,可以秒級對直播信號進行阻斷,風(fēng)險控制可以說是非常及時、立竿見影。截圖審核、錄制審核和延遲播放等多種審核管控機制,逐層的篩選和控制,讓非法內(nèi)容無處藏身。
最后,我們提供的整個直播基礎(chǔ)架構(gòu),具備全鏈路的災(zāi)備能力,容災(zāi)能力強。阿里云邊緣云具備國內(nèi)領(lǐng)先的CDN能力,經(jīng)受了多年雙11、世界杯等大型活動的洗禮,在應(yīng)對大流量突發(fā)上有豐富的經(jīng)驗。完善的內(nèi)部監(jiān)控,可以在故障發(fā)生前提前排除隱患,秒級生效的故障切換能力,可以做到觀眾無感。基礎(chǔ)架構(gòu)穩(wěn)定了,在流量洪峰來臨時,更多是彈性資源的快速補充,阿里云的資源儲備在業(yè)界是數(shù)一數(shù)二的,快速的資源建設(shè)能力,可以從容應(yīng)對任何的流量洪峰。
























