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