馬亮
【摘要】 首先對單策略CDN防盜鏈的局限性進行分析,然后針對性提出雙策略CDN防盜鏈,進而設(shè)計雙策略CDN防盜鏈架構(gòu),闡述雙策略CDN防盜鏈業(yè)務(wù)流程,最后詳細敘述雙策略CDN 防盜鏈的功能實現(xiàn)過程。
【關(guān)鍵詞】 CDN 防盜鏈 雙策略
Design and implementation of a dual-strategy CDN anti-leech
Abstract:Firstly,limitations of single-strategy CDN anti-leeches are analyzed.Then a dual-strategy CDN anti-leech is put forwarded accordingly,and an architecture of dual-strategy CDN anti-leeches is designed. Furthermore, the business process is illustrated. Finally, the implementation of process of the dual-strategy CDN anti-leech functions is described in detail.
Keywords: CDN;anti-leech;dual-strategy
引言
盜鏈是指非法服務(wù)提供商通過技術(shù)手段繞過其它有利益的最終用戶界面,直接在自己的網(wǎng)站上向最終用戶提供其它合法服務(wù)提供商的服務(wù)內(nèi)容。盜鏈繞過了合法服務(wù)提供商通過該內(nèi)容獲取正當利益的頁面,一方面侵犯了被盜鏈網(wǎng)站的正常商業(yè)利益,另一方面也加重了被盜鏈網(wǎng)站服務(wù)器的負擔。而CDN專門負責內(nèi)容的分發(fā),涉及大量的內(nèi)容資產(chǎn),因此,防盜鏈是CDN系統(tǒng)不可或缺的組成部分。
目前,大多數(shù)CDN系統(tǒng)采用單策略的防盜鏈校驗機制,這種機制在CDN業(yè)務(wù)發(fā)展初期能夠滿足其基本的防盜鏈需求。但隨著業(yè)務(wù)快速的發(fā)展,這種機制的局限性逐步凸顯出來,接入CDN的CP數(shù)量快速增長,新CP接入CDN時,CP的防盜鏈模塊和整個CDN系統(tǒng)的防盜鏈模塊均需進行對接,涉及面較大,工作量較多,不利于業(yè)務(wù)的快速上線。[1]
針對上述問題,CDN單策略防盜鏈需改進成雙策略防盜鏈,一個策略專門對外,由CP制定,主要在CDN外部進行校驗,另一策略專門對內(nèi),在CDN內(nèi)部進行校驗,以此降低適配不同CP的防盜鏈規(guī)則帶來的開發(fā)成本,并進一步加強CDN安全性。
一、雙策略防盜鏈系統(tǒng)架構(gòu)
雙策略防盜鏈分為外部防盜鏈策略和內(nèi)部防盜鏈策略。外部防盜鏈策略是指CP與終端之間約定的防盜鏈規(guī)則,規(guī)則依CP而定;內(nèi)部防盜鏈策略是指終端和CDN節(jié)點之間的防盜鏈規(guī)則,規(guī)則是通用的。
外部和內(nèi)部之間的防盜鏈策略轉(zhuǎn)換通過GSLB進行轉(zhuǎn)換,GSLB將外部防盜鏈策略轉(zhuǎn)換為內(nèi)部策略,GSLB是CDN系統(tǒng)唯一的訪問入口。
雙策略防盜鏈涉及5類網(wǎng)元組成:CP、GSLB、安全管控網(wǎng)元、邊緣節(jié)點和內(nèi)容中心。
(1)CP:產(chǎn)生原始URL,包含外部防盜鏈策略。
(2)GSLB:負責校驗外部防盜鏈策略;負責URL參數(shù)改寫;負責生成和校驗內(nèi)部防盜鏈策略。
(3)安全管控網(wǎng)元:負責更新內(nèi)部防盜鏈策略的密鑰、管控策略的下發(fā)和應(yīng)急安全控制。
(4)內(nèi)容中心:回源采用白名單方式。
(5)邊緣節(jié)點:根據(jù)內(nèi)部防盜鏈策略完成請求URL的防盜鏈校驗功能。
二、雙策略防盜鏈業(yè)務(wù)流程
雙策略防盜鏈業(yè)務(wù)流程如下:(1)終端從CP門戶請求播放地址,CP門戶生成播放鏈接并根據(jù)CP自有的防盜鏈規(guī)則做加密處理、使用與CDN約定的服務(wù)域名,最終向終端返回播放地址。(2)終端請求播放,域名經(jīng)DNS接收指向GSLB。(3)GSLB根據(jù)CP的防盜鏈規(guī)則進行校驗,若合法,重新根據(jù)內(nèi)部的防盜鏈規(guī)則生成播放地址、并根據(jù)本地調(diào)度策略,替換域名為CDN側(cè)的服務(wù)域名。(4)GSLB給終端返回302重定向指令。(5)終端重新請求播放,域名經(jīng)DNS調(diào)度后,調(diào)度至邊緣節(jié)點。(6)CDN邊緣節(jié)點根據(jù)“內(nèi)部防盜鏈策略”實施校驗。(7)如果邊緣節(jié)點本地未命中,邊緣節(jié)點從內(nèi)容中心回源。(8)內(nèi)容中心通過IP白名單校驗回源合法性。(9)如果內(nèi)容中心本地未命中,內(nèi)容中心從源站回源。(10)源站通過IP白名單校驗回源合法性。(11)校驗通過后,源站返回媒體流,經(jīng)內(nèi)容中心、邊緣節(jié)點,最終至終端。[2]
三、雙策略防盜鏈功能實現(xiàn)
雙策略防盜鏈通過GSLB、邊緣節(jié)點、內(nèi)容中心、安全管控等實現(xiàn)。
3.1 GSLB
GSLB需實現(xiàn)如下功能。(1)終結(jié)外部防盜鏈校驗。根據(jù)適配規(guī)則對由CP生成的播放請求進行校驗。(2)生成內(nèi)部防盜鏈信息。根據(jù)請求參數(shù)、訪問時間和用戶IP生成包含MD5摘要的AuthInfo加密串。(3)按需啟用不同校驗?zāi)J健R罁?jù)用戶信息進行盜鏈行為的初步判斷和驗證。(4)自身安全防護支持所有網(wǎng)元防攻擊和合規(guī)性兩類防護機制。防攻擊針對多個業(yè)務(wù)屬性的非正常訪問行為實現(xiàn)拒絕訪問,包括IP、UA、IMEI、referer和手機號等;合規(guī)性只允許符合規(guī)則的訪問通過,例如針對GSLB的ts請求等。各業(yè)務(wù)屬性應(yīng)支持頻次、黑名單、白名單,并可根據(jù)業(yè)務(wù)通道實現(xiàn)多個業(yè)務(wù)屬性的組合判斷。
3.2邊緣節(jié)點
邊緣節(jié)點需實現(xiàn)如下功能。(1)校驗內(nèi)部防盜鏈信息。解密AuthInfo,根據(jù)MD5摘要、訪問時間和用戶IP等實現(xiàn)防盜鏈校驗。(2)建立會話過程信息緩存。會話信息用于校驗會話過程中一致性判斷,支撐防盜鏈校驗和自身安全防護機制運行。(3)根據(jù)策略采用校驗?zāi)J?。依?jù)用戶信息采用不同校驗?zāi)J?。?)自身安全防護支持所有網(wǎng)元防攻擊和合規(guī)性兩類防護機制。防攻擊針對多個業(yè)務(wù)屬性的非正常訪問行為實現(xiàn)拒絕訪問,包括IP、UA、IMEI、refer和手機號等;合規(guī)性只允許符合規(guī)則的訪問通過,例如針對同一會話過程中的不同IMEI等。各業(yè)務(wù)屬性應(yīng)支持頻次、黑名單、白名單,并可根據(jù)業(yè)務(wù)通道實現(xiàn)多個業(yè)務(wù)屬性的組合判斷。
3.3內(nèi)容中心
內(nèi)容中心需實現(xiàn)如下功能。
(1)白名單機制:不參與防盜鏈校驗,采用白名單安全機制,簡化防盜鏈整體流程。
(2)實現(xiàn)自身安全防護:對于規(guī)則外異常請求實現(xiàn)拒絕訪問。
3.4安全管控網(wǎng)元
安全管控網(wǎng)元需實現(xiàn)如下功能。
(1)密鑰更新和管理:定期生成密鑰,管理全網(wǎng)防盜鏈密鑰版本。AES密鑰和MD5密鑰以密鑰組方式同步更新和管理。
(2)管控策略的下發(fā):多租戶管控策略下發(fā)和更新。
(3)應(yīng)急安全控制:針對特定內(nèi)容,緊急下線和控制。
(4)支持至少2層業(yè)務(wù)屬性字段(例如門戶域名+2級域名)的防盜鏈策略和自身安全防護策略的配置啟用。
(5)支持分級操作員權(quán)限管理。管理權(quán)限支持至少2層業(yè)務(wù)屬性字段(例如門戶域名+2級域名)的防盜鏈策略和自身安全防護策略的參數(shù)配置。
3.5 內(nèi)部防盜鏈策略
3.5.1加密規(guī)則
內(nèi)部防盜鏈策略加密規(guī)則如下。
(1)GSLB獲取用戶的IP地址和當前時間戳。
? 用戶訪問IP:用戶訪問系統(tǒng)源IP地址,格式為IPv4地址的32位二進制值,或IPv6地址的128位二進制值。
? 時間戳:為系統(tǒng)向用戶授權(quán)播放時的時間戳,為十六進制字符串格式,采用UTC時間。
(2)生成MD5校驗和
將已通過GSLB外部防盜鏈策略校驗的URL中參數(shù)部分與新探測時間戳和MD5密鑰拼接生成URI。
MD5值為16字節(jié)長的二進制。GSLB通過MD5算法將以上URI加密,生成MD5摘要,采用小寫字母。
(3)URL加密
使用AES進行加解密,加密串AuthInfo=AES(用戶訪問IP+時間戳+MD5,密鑰)。根據(jù)加密串AuthInfo,并拼接至原始URL的結(jié)尾處,形成最終的URL。CDN在業(yè)務(wù)流程中如需額外拼接URL參數(shù),必須在AuthInfo之后完成。
3.5.2校驗規(guī)則
當用戶按照GSLB加密后的URL訪問時,服務(wù)節(jié)點將校驗URL所帶加密串AuthInfo。通過密鑰解析出用戶IP地址和時間戳的值。
? 校驗當前訪問用戶IP地址與AuthInfo中解析出的IP地址是否一致。
? 查看當前系統(tǒng)時間與AuthInfo解析出的時間戳時間差是否超時效(時效在CDN中進行配置)。
? 校驗解析出的MD5值與AuthInfo解析出的URL明文參數(shù)部分+時間戳計算的MD5值是否一致。
如上述3個校驗點都符合要求,則允許用戶訪問;否則不允許用戶訪問該鏈接。當合法用戶通過了防盜鏈機制檢驗后,CDN不能以解密的明文方式再次進行重定向。[3]
四、結(jié)論
CDN系統(tǒng)的單策略防盜鏈改進為雙策略防盜鏈后,降低了接入CP的工作量,縮短了業(yè)務(wù)接入時間,在一定程度上提高了系統(tǒng)安全性。
參 考 文 獻
[1] 雷葆華,孫穎,王峰等. CDN技術(shù)詳解[M]. 電子工業(yè)出版社.2012年:246-249.
[2] 倪偉,王寓辰,南海濤等. 中國移動內(nèi)容網(wǎng)絡(luò)總體技術(shù)要求[S]. 中國移動通信有限公司研究院.2014年:44-47.
[3] 倪偉、郭嵩、田旭等. 中國移動內(nèi)容網(wǎng)絡(luò)接口規(guī)范[S]. 中國移動通信有限公司研究院.2014年:142-145.