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




















 
 
 

 
 
 
 