CN112689164B - 一种基于cdn的视频防盗链系统 - Google Patents
一种基于cdn的视频防盗链系统 Download PDFInfo
- Publication number
- CN112689164B CN112689164B CN202011496507.2A CN202011496507A CN112689164B CN 112689164 B CN112689164 B CN 112689164B CN 202011496507 A CN202011496507 A CN 202011496507A CN 112689164 B CN112689164 B CN 112689164B
- Authority
- CN
- China
- Prior art keywords
- module
- cdn
- video
- address
- user
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于CDN的视频防盗链系统。它包括定义模块、用户模块、视频地址生成模块、客户端模块、播放代理模块、第一判断模块、计算模块、异常响应模块、CDN模块、回源模块、第二判断模块、视频源模块,定义模块、用户模块依次连接;用户模块分别与计算模块和回源模块连接;视频地址生成模块、客户端模块、播放代理模块、第一判断模块依次连接;第一判断模块分别与计算模块和异常响应模块连接;计算模块、客户端模块、CDN模块、回源模块、第二判断模块依次连接;第二判断模块分别与异常响应模块和视频源模块连接。本发明的有益效果是:在原有CDN防盗链技术上增加一种自定义防盗链技术,提升视频安全性。
Description
技术领域
本发明涉及视频防盗处理相关技术领域,尤其是指一种基于CDN的视频防盗链系统。
背景技术
目前基于CDN(内容分发网络、主要进行加速和缓存)的视频防盗链技术大部分采用的是CDN厂商自身的防盗链标准,由于各个CDN厂商标准不一致、算法不可控,导致防盗链存在对接麻烦、可能会被破解的风险。
私有防盗链技术无法与现有CDN防盗链共存。
发明内容
本发明是为了克服现有技术中存在上述的不足,提供了一种提升视频安全性的基于CDN的视频防盗链系统。
为了实现上述目的,本发明采用以下技术方案:
一种基于CDN的视频防盗链系统,包括定义模块、用户模块、视频地址生成模块、客户端模块、播放代理模块、第一判断模块、计算模块、异常响应模块、CDN模块、回源模块、第二判断模块、视频源模块,
定义模块用于设置用户对应的防盗链CDN信息,与用户模块连接;
用户模块用于存储用户的防盗链CDN信息,分别与定义模块、计算模块和回源模块连接;
视频地址生成模块用于生成视频播放地址,与客户端模块连接;
客户端模块用于加密及请求视频播放地址,分别与播放代理模块、计算模块和CDN模块连接;
播放代理模块用于解密、校验及处理视频播放请求,与第一判断模块连接;
第一判断模块用于判断防盗链密钥有效性,分别与计算模块和异常响应模块连接;
计算模块用于响应CDN防盗链地址,与客户端模块连接;
异常响应模块用于处理不符合规范的请求,分别与第一判断模块和第二判断模块连接;
CDN模块用于响应视频内容,与回源模块连接;
回源模块用于接收及校验CDN模块请求,与第二判断模块连接;
第二判断模块用于判断用户CDN信息有效性,分别与异常响应模块和视频源模块连接;
视频源模块用于提供视频内容,是由服务端提供的服务。
本发明公开了一种基于CDN的视频防盗链技术方案,包括定义模块、用户模块、视频地址生成模块、客户端模块、播放代理模块、第一判断模块、计算模块、异常响应模块、CDN模块、回源模块、第二判断模块、视频源模块,通过该方案可以在原有CDN防盗链技术上增加一种自定义防盗链技术,提升视频安全性。
作为优选,定义模块由管理人员维护,针对每个客户定义不同的防盗链CDN信息;用户模块用于存储定义模块中定义的不同用户的CDN信息,提供给计算模块以及回源模块查询使用。
作为优选,视频地址生成模块是由服务端提供的功能,用于根据用户标识、视频标识获取到该视频的播放地址,同时携带CDN防盗链key,嵌入播放器播放或者直接浏览器中播放,其提供的地址必须为播放代理的地址,且地址中必须包含用户标识,按照规则生成:播放代理地址+用户信息+自定义路径+视频标识+视频类型+CDN防盗链key。
作为优选,客户端模块拿到视频地址生成模块返回的视频播放地址后,按照视频地址生成模块中的定义规则进行解析,得出相关信息,使用与服务端相同的密钥和算法进行DES加密;播放代理模块收到客户端模块发送的请求后,先对格式进行基本验证,格式遵循视频地址生成模块的规则,即播放代理地址+用户信息+自定义路径+视频标识+视频类型+CDN防盗链key,同步校验附带自定义防盗链key参数,处理掉非法请求,然后根据与客户端模块协商好的算法及密钥对自定义防盗链key进行解密,解密结果交由第一判断模块处理。
作为优选,第一判断模块接收到播放器代理模块解析的结果后,首先验证格式是否符合,然后对比用户信息与视频信息是否和请求地址中的信息匹配,最后判断过期时间是否已经到达,其中一条不符合后直接交由异常响应模块处理,全部符合条件交由计算模块处理。
作为优选,计算模块对第一判断模块转发过来的请求进行解析,拿到用户信息,然后去用户模块获取对应用户的CDN防盗链地址,再组装成CDN防盗链播放地址响应至客户端模块,同时附带CDN防盗链key,http响应码为302,客户端模块收到302状态码后,根据响应中的Location地址再次进行http-get请求,该请求交由CDN模块处理。
作为优选,CDN模块用于将视频内容从服务端获取后缓存至CDN节点上,当客户端模块是第一次请求时,CDN模块需要请求回源模块获取视频信息,非第一次请求时会根据客户端所在区域返回就近节点中的视频信息,每次请求时CDN都会校验CDN防盗链key的有效性及时效性。
作为优选,回源模块在收到CDN模块请求时会根据视频地址生成模块中定义的规则解析出用户信息,然后去用户模块获取对应用户的CDN防盗链地址,交由第二判断模块处理。
作为优选,第二判断模块收到回源模块解析出的结果后,需要把当前请求中的域名与对应用户的CDN防盗链地址进行对比,不符合条件交由异常响应模块处理,符合条件交由视频源模块处理;异常响应模块会根据不同的场景响应不同的http状态码至客户端模块。
本发明的有益效果是:可以在原有CDN防盗链技术上增加一种自定义防盗链技术,对用户上传的视频进行了双层防盗链校验,提升视频安全性。
附图说明
图1是本发明的系统流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1所述的实施例中,一种基于CDN的视频防盗链系统,包括定义模块、用户模块、视频地址生成模块、客户端模块、播放代理模块、第一判断模块、计算模块、异常响应模块、CDN模块、回源模块、第二判断模块、视频源模块,
定义模块用于设置用户对应的防盗链CDN信息,与用户模块连接;定义模块由管理人员维护,针对每个客户定义不同的防盗链CDN信息。信息包括CDN域名等,比如可以针对用户A定义如下:
{
userId:’userA’,
cdn:’cdn.danghongyun.com’,
cdnF:’cdn.f.danghongyun.com’
}
其中:
userId为用户标识
cdn为普通视频的CDN播放地址
cdnF为防盗链视频的CDN播放地址
用户模块用于存储用户的防盗链CDN信息,分别与定义模块、计算模块和回源模块连接;用户模块用于存储定义模块中定义的不同用户的CDN信息,提供给计算模块以及回源模块查询使用。
视频地址生成模块用于生成视频播放地址,与客户端模块连接;视频地址生成模块是由服务端提供的功能,用于根据用户标识、视频标识获取到该视频的播放地址,同时携带CDN防盗链key(按照CDN厂商的规则生成的加密后的信息),嵌入播放器播放或者直接浏览器中播放,其提供的地址必须为播放代理的地址,且地址中必须包含用户标识,按照规则生成:播放代理地址+用户信息+自定义路径+视频标识+视频类型+CDN防盗链key。样例如下:
http://player.proxy.danghongyun.com/userA/vod/2020/12/13/12345678.mp4?auth_key=1607859805-0-0-7f420f69a2daa51c68f9d66ca171f2e6
其中:
代理地址为:player.proxy.danghongyun.com
用户信息为:userA
自定义路径为:/vod/2020/12/13/
视频标识为:12345678
视频类型为:mp4
CDN防盗链key为:1607859805-0-0-7f420f69a2daa51c68f9d66ca171f2e6
客户端模块用于加密及请求视频播放地址,分别与播放代理模块、计算模块和CDN模块连接;客户端模块拿到视频地址生成模块返回的视频播放地址后,按照视频地址生成模块中的定义规则进行解析,得出用户信息、视频标识等相关信息,使用与服务端相同的密钥和算法进行DES加密(一种通用的对称加密算法)。加密格式为:用户信息@视频信息@过期时间,过期时间格式为:yyyyMMddHHmmss,范例:
密钥:DHY_ACVS_0009A7DC34CA4E8584C8CB777C5C6F68
待加密信息:userA@12345678@202012132359
加密后的密文:DCE0B424C2E2FEFD08B4F478CA77B934B2E5FB7A48A9358F6F73D833DB0932FC
加密后的请求地址为:
http://player.proxy.danghongyun.com/userA/vod/2020/12/13/12345678.mp4?auth_key=1607859805-0-0-7f420f69a2daa51c68f9d66ca171f2e6&private_key=DCE0B424C2E2FEFD08B4F478CA77B934B2E5FB7A48A9358F6F73D833DB0932FC
其中:
CDN防盗链key为:1607859805-0-0-7f420f69a2daa51c68f9d66ca171f2e6
自定义防盗链key为:DCE0B424C2E2FEFD08B4F478CA77B934B2E5FB7A48A9358F6F73D833DB0932FC
播放代理模块用于解密、校验及处理视频播放请求,与第一判断模块连接;播放代理模块收到客户端模块发送的请求后,先对格式进行基本验证,格式遵循视频地址生成模块的规则,即播放代理地址+用户信息+自定义路径+视频标识+视频类型+CDN防盗链key,同步校验附带自定义防盗链key参数,处理掉非法请求(非法请求交由异常响应模块处理),然后根据与客户端模块协商好的算法及密钥对自定义防盗链key进行解密,解密结果交由第一判断模块处理。
第一判断模块用于判断防盗链密钥有效性,分别与计算模块和异常响应模块连接;第一判断模块接收到播放器代理模块解析的结果后,首先验证格式是否符合:用户信息@视频信息@过期时间,然后对比用户信息与视频信息是否和请求地址中的信息匹配,最后判断过期时间是否已经到达,其中一条不符合后直接交由异常响应模块处理,全部符合条件交由计算模块处理。
计算模块用于响应CDN防盗链地址,与客户端模块连接;计算模块对第一判断模块转发过来的请求进行解析,拿到用户信息,然后去用户模块获取对应用户的CDN防盗链地址(cdnF字段的值),再组装成CDN防盗链播放地址响应至客户端模块,同时附带CDN防盗链key,http响应码为302,响应范例如下:
HTTP/1.1 302
Location:http://cdnF.danghongyun.com/userA/vod/2020/12/13/12345678.mp4?auth_key=1607859805-0-0-7f420f69a2daa51c68f9d66ca171f2e6
客户端模块收到302状态码后,根据响应中的Location地址再次进行http-get请求,该请求交由CDN模块处理。
异常响应模块用于处理不符合规范的请求,分别与第一判断模块和第二判断模块连接;异常响应模块会根据不同的场景响应不同的http状态码至客户端模块。比如:
【播放代理模块】中出现格式、参数校验不通过,返回:
HTTP/1.1 400
【第一判断模块】中出现不符合条件,返回:
HTTP/1.1 401
【第二判断模块】中出现不符合条件,返回:
HTTP/1.1 403
CDN模块用于响应视频内容,与回源模块连接;CDN模块是由目前各个主流CDN厂商组合而成,比如阿里CDN、华为CDN等,用于将视频内容从服务端获取后缓存至全国各地的CDN节点上,来减少网络传输和服务端请求数量,当客户端模块是第一次请求时,CDN模块需要请求回源模块获取视频信息,非第一次请求时会根据客户端所在区域返回就近节点中的视频信息,每次请求时CDN都会校验CDN防盗链key的有效性及时效性。
回源模块用于接收及校验CDN模块请求,与第二判断模块连接;回源模块在收到CDN模块请求时会根据视频地址生成模块中定义的规则解析出用户信息,然后去用户模块获取对应用户的CDN防盗链地址,交由第二判断模块处理。
第二判断模块用于判断用户CDN信息有效性,分别与异常响应模块和视频源模块连接;第二判断模块收到回源模块解析出的结果后,需要把当前请求中的域名与对应用户的CDN防盗链地址进行对比,不符合条件交由异常响应模块处理,符合条件交由视频源模块处理。对比范例如下:
回源模块收到的请求是:http://cdnABC.danghongyun.com/userA/vod/2020/12/13/12345678.mp4?auth_key=1607859805-0-0-7f420f69a2daa51c68f9d66ca171f2e6
当前请求对应的域名为:cdnABC.dangyongyun.com
当前请求对应的用户为:userA
而用户userA对应的CDN防盗链域名为:cdnF.danghongyun.com
因此判断为本次请求为非法请求
视频源模块用于提供视频内容;是由服务端提供的服务,用来获取视频内容。
本发明公开了一种基于CDN的视频防盗链技术方案,包括定义模块、用户模块、视频地址生成模块、客户端模块、播放代理模块、第一判断模块、计算模块、异常响应模块、CDN模块、回源模块、第二判断模块、视频源模块,通过该方案可以在原有CDN防盗链技术上增加一种自定义防盗链技术,对用户上传的视频进行了双层防盗链校验,提升视频安全性。
Claims (7)
1.一种基于CDN的视频防盗链系统,其特征是,包括定义模块、用户模块、视频地址生成模块、客户端模块、播放代理模块、第一判断模块、计算模块、异常响应模块、CDN模块、回源模块、第二判断模块、视频源模块,
定义模块用于设置用户对应的防盗链CDN信息,与用户模块连接;
用户模块用于存储用户的防盗链CDN信息,分别与定义模块、计算模块和回源模块连接;
视频地址生成模块用于生成视频播放地址,与客户端模块连接;其中,视频地址生成模块是由服务端提供的功能,用于根据用户标识、视频标识获取到该视频的播放地址,同时携带CDN防盗链key,嵌入播放器播放或者直接浏览器中播放,其提供的地址必须为播放代理的地址,且地址中必须包含用户标识,按照规则生成:播放代理地址+用户信息+自定义路径+视频标识+视频类型+CDN防盗链key;
客户端模块用于加密及请求视频播放地址,分别与播放代理模块、计算模块和CDN模块连接;其中,客户端模块拿到视频地址生成模块返回的视频播放地址后,按照视频地址生成模块中的定义规则进行解析,得出相关信息,使用与服务端相同的密钥和算法进行DES加密,加密后的请求地址为:播放代理地址+用户信息+自定义路径+视频标识+视频类型+CDN防盗链key+自定义防盗链key;
播放代理模块用于解密、校验及处理视频播放请求,与第一判断模块连接;其中,播放代理模块收到客户端模块发送的请求后,先对格式进行基本验证,格式遵循视频地址生成模块的规则,即播放代理地址+用户信息+自定义路径+视频标识+视频类型+CDN防盗链key,同步校验附带自定义防盗链key参数,处理掉非法请求,然后根据与客户端模块协商好的算法及密钥对自定义防盗链key进行解密,解密结果交由第一判断模块处理;
第一判断模块用于判断防盗链密钥有效性,分别与计算模块和异常响应模块连接;
计算模块用于响应CDN防盗链地址,与客户端模块连接;
异常响应模块用于处理不符合规范的请求,分别与第一判断模块和第二判断模块连接;
CDN模块用于响应视频内容,与回源模块连接;
回源模块用于接收及校验CDN模块请求,与第二判断模块连接;
第二判断模块用于判断用户CDN信息有效性,分别与异常响应模块和视频源模块连接;
视频源模块用于提供视频内容,是由服务端提供的服务。
2.根据权利要求1所述的一种基于CDN的视频防盗链系统,其特征是,定义模块由管理人员维护,针对每个客户定义不同的防盗链CDN信息;用户模块用于存储定义模块中定义的不同用户的CDN信息,提供给计算模块以及回源模块查询使用。
3.根据权利要求1所述的一种基于CDN的视频防盗链系统,其特征是,第一判断模块接收到播放器代理模块解析的结果后,首先验证格式是否符合,然后对比用户信息与视频信息是否和请求地址中的信息匹配,最后判断过期时间是否已经到达,其中一条不符合后直接交由异常响应模块处理,全部符合条件交由计算模块处理。
4.根据权利要求3所述的一种基于CDN的视频防盗链系统,其特征是,计算模块对第一判断模块转发过来的请求进行解析,拿到用户信息,然后去用户模块获取对应用户的CDN防盗链地址,再组装成CDN防盗链播放地址响应至客户端模块,同时附带CDN防盗链key,http响应码为302,客户端模块收到302状态码后,根据响应中的Location地址再次进行http-get请求,该请求交由CDN模块处理。
5.根据权利要求4所述的一种基于CDN的视频防盗链系统,其特征是,CDN模块用于将视频内容从服务端获取后缓存至CDN节点上,当客户端模块是第一次请求时,CDN模块需要请求回源模块获取视频信息,非第一次请求时会根据客户端所在区域返回就近节点中的视频信息,每次请求时CDN都会校验CDN防盗链key的有效性及时效性。
6.根据权利要求5所述的一种基于CDN的视频防盗链系统,其特征是,回源模块在收到CDN模块请求时会根据视频地址生成模块中定义的规则解析出用户信息,然后去用户模块获取对应用户的CDN防盗链地址,交由第二判断模块处理。
7.根据权利要求6所述的一种基于CDN的视频防盗链系统,其特征是,第二判断模块收到回源模块解析出的结果后,需要把当前请求中的域名与对应用户的CDN防盗链地址进行对比,不符合条件交由异常响应模块处理,符合条件交由视频源模块处理;异常响应模块会根据不同的场景响应不同的http状态码至客户端模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011496507.2A CN112689164B (zh) | 2020-12-17 | 2020-12-17 | 一种基于cdn的视频防盗链系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011496507.2A CN112689164B (zh) | 2020-12-17 | 2020-12-17 | 一种基于cdn的视频防盗链系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112689164A CN112689164A (zh) | 2021-04-20 |
CN112689164B true CN112689164B (zh) | 2022-06-28 |
Family
ID=75448763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011496507.2A Active CN112689164B (zh) | 2020-12-17 | 2020-12-17 | 一种基于cdn的视频防盗链系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112689164B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143577B (zh) * | 2021-11-26 | 2023-10-24 | 中电信数智科技有限公司 | 一种视频获取方法及系统 |
CN114979715B (zh) * | 2022-05-16 | 2024-02-23 | 山东浪潮超高清视频产业有限公司 | 一种基于视频基因实现的cdn防盗链生成方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871805A (zh) * | 2015-12-11 | 2016-08-17 | 乐视云计算有限公司 | 防盗链的方法及装置 |
CN107483978A (zh) * | 2017-07-19 | 2017-12-15 | 河南神州数码索贝科技有限公司 | 一种基于ffmpeg的视频防盗链方法 |
CN110213669A (zh) * | 2019-05-18 | 2019-09-06 | 杭州当虹科技股份有限公司 | 一种基于ts切片的视频内容防盗系统和方法 |
CN110365688A (zh) * | 2019-07-19 | 2019-10-22 | 湖南快乐阳光互动娱乐传媒有限公司 | 防盗链方法及装置 |
CN110381334A (zh) * | 2019-09-02 | 2019-10-25 | 湖南快乐阳光互动娱乐传媒有限公司 | 防盗链方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105657456A (zh) * | 2016-03-10 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 一种多媒体数据的处理方法、装置和系统 |
-
2020
- 2020-12-17 CN CN202011496507.2A patent/CN112689164B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871805A (zh) * | 2015-12-11 | 2016-08-17 | 乐视云计算有限公司 | 防盗链的方法及装置 |
CN107483978A (zh) * | 2017-07-19 | 2017-12-15 | 河南神州数码索贝科技有限公司 | 一种基于ffmpeg的视频防盗链方法 |
CN110213669A (zh) * | 2019-05-18 | 2019-09-06 | 杭州当虹科技股份有限公司 | 一种基于ts切片的视频内容防盗系统和方法 |
CN110365688A (zh) * | 2019-07-19 | 2019-10-22 | 湖南快乐阳光互动娱乐传媒有限公司 | 防盗链方法及装置 |
CN110381334A (zh) * | 2019-09-02 | 2019-10-25 | 湖南快乐阳光互动娱乐传媒有限公司 | 防盗链方法、装置及系统 |
Non-Patent Citations (1)
Title |
---|
流媒体服务器防盗链系统;袁楷等;《企业技术开发》;20070128(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112689164A (zh) | 2021-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105939484B (zh) | 一种音视频的加密播放方法及其系统 | |
US10057277B2 (en) | System and method for partial URL signing with applications to dynamic adaptive streaming | |
US6928545B1 (en) | Network content access control | |
US7243366B2 (en) | Key management protocol and authentication system for secure internet protocol rights management architecture | |
US7376624B2 (en) | Secure communication and real-time watermarking using mutating identifiers | |
US7627905B2 (en) | Content transfer system, content transfer method, content transmitting apparatus, content transmission method, content receiving apparatus, content reception method, and computer program | |
US20030065917A1 (en) | Encryption of streaming control protocols and their headers | |
US20030063750A1 (en) | Unique on-line provisioning of user terminals allowing user authentication | |
US20080270578A1 (en) | Method, Device And Data Download System For Controlling Effectiveness Of A Download Transaction | |
US20070083750A1 (en) | Device authentication system | |
US20040117430A1 (en) | Method and systems for protecting subscriber identification between service and content providers | |
CN109743586B (zh) | 流媒体直播防盗链方法及系统 | |
CN112689164B (zh) | 一种基于cdn的视频防盗链系统 | |
CN104980771A (zh) | 使用iptv进行流媒体点播的方法与系统 | |
WO2020206014A1 (en) | Digital rights management authorization token pairing | |
KR20050004173A (ko) | 일군의 관련 스트리밍 프로토콜들을 위한 보안파라미터들의 관계 | |
CN109873819B (zh) | 一种防止非法访问服务器的方法及系统 | |
RU2454708C2 (ru) | Способ реализации механизма отслеживания состояния в сеансе связи между сервером и клиентской системой | |
CN114124441B (zh) | 一种基于jwt的客户端认证方法及系统 | |
US20060031680A1 (en) | System and method for controlling access to a computerized entity | |
US20200364317A1 (en) | Method and system for identifying a user terminal in order to receive streaming protected multimedia content | |
US9405924B2 (en) | Self-keyed protection of anticipatory content | |
CN112613070A (zh) | 资源共享、访问方法、电子设备及计算机可读存储介质 | |
CN108696539B (zh) | 一种安全、公平及保护隐私的信息服务代理方法 | |
US20080005556A1 (en) | Method of Securing Operations Over a Network and Associated |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |