APP下载

一种双策略CDN防盗链的设计与实现

2017-03-11马亮

中国新通信 2017年3期

马亮

【摘要】 首先对单策略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.