Server-直播码安全保护(安全防盗链)

功能介绍

所谓安全防盗链,是一种加了防盗链签名的URL,经过签名的URL能够跟阿麦打流服务器的安全机制进行配合,可以将URL的使用权限定在您的APP上,恶意第三方拿到URL也不能使用和传播。

(1)推流 - 推流URL加防盗链的必要性极高,尤其是在直播码跟用户ID(或者DB ID)绑定的情况下,因为客户的直播码ID很容易被攻击者窃取,进而伪装客户自己进行抢占式推流,所以为推流URL增加防盗链签名,确保只有真正的客户主人自己才能在登录后拿到防盗链签名非常有必要。

(2)播放 - 播放URL加防盗链并不是100%必要的,只有在您的视频源是热门资源时(比如某个独家的赛事直播)才比较有价值,因为您要防止您的竞争对手拿到播放地址后在自家的APP里上架这个节目。播放地址防盗链引入后的副作用就是播放时可能需要申请防盗链签名,导致直播打开速度不稳定。

原理介绍

下图都是典型的安全防盗URL,您会发现这些地址都有一个共同的特点,就是在原来的推流或者播放地址后拼接txSecret和txTime参数。

txTime声明了该播放器的有效时间,比如5分钟,当这个地址在5分钟后被再次使用时,阿麦打流服务器将会判定其为过期地址而拒绝服务。

但我们知道,简单声明txTime是没有意义的,因为任何攻击者都可以在一个窃取的URL后面拼接上一个声明100天过期的txTime,所以腾讯云需要有一种安全措施确保攻击者无法伪造txTime,这个安全措施就是txSecret。

txSecret是您的服务器计算出来的一个安全签名,计算公式是:txSecret = MD5( KEY + stream_id + txTime )

  • KEY
    需要您跟阿麦打流服务器在控制台上提交或者兑换的安全密钥,您应当确保除了您和阿麦打流服务器之外,外部无法获知,而且最好定期更换。
  • stream_id
    即直播码,当同时在线的主播比较多的时候,txTime 很容易碰撞,所以加入 stream_id 来防碰撞。
  • MD5
    最著名的单向不可逆HASH算法了,因为不可逆性,所以攻击者无法根据txSecret逆向计算出KEY,也就无法根据自己伪造的txTime计算出一个可以通过腾讯云验证的txSecret来。

合成方法

安全防盗链机制需要您的服务器和阿麦打流服务器协同才能完成,如下图:

【1】step1 - 交换秘钥
     首先,您需要在官网的控制台,协商一个加密密钥,这个加密密钥用于在您的服务器上生成防盗链签名,由于阿麦打流服务器跟您持有同样的密钥,所以您生成的防盗链签名,阿麦打流服务器是可以进行解密确认的。

加密秘钥分为推流防盗链KEY和播放防盗链KEY,前者用于生成推流防盗链URL,后者用于生成播放防盗链URL。目前在上可以自助配置推流防盗链KEY,如下图:

播放防盗链KEY由于同步周期长,不适合调试期频繁修改,如您需要配置请联系我们。

【2】step2 - 生成txTime
     签名中明文部分为txTime,含义是该链接的有效期,比如现在我当前的时间是2016-07-29 11:13:45,而且期望新生成的URL是在5分钟后即作废,那么txTime就可以设置为 2016-07-29 11:18:45。

不过这么长一串时间字符串放在URL里显然不太“经济”,实际适用中,我们是把 2016-07-29 11:18:45 转换成Unix时间戳,也就是1469762325 (转换方式各种后台编程语言都由直接可用的时间函数来处理),然后转换成16进制,也就是 txTime=579ACB15。

【3】 step3 - 生成txSecret
txSecret的生成方法是 = MD5(KEY+ stream_id + txTime),这里的 KEY 就是您在Step1中跟腾讯云交换的加密密钥,stream_id在本例中为 8888_test001,txTime为刚才计算的579ACB15,MD5即标准的MD5单向不可逆哈希算法。

 【4】step4 - 合成防盗链地址
现在我们有了推流(或者播放)URL,有了用来告知腾讯云该URL过期时间的txTime,有了只有腾讯云才能解密并且验证的txSecret,就可以拼合成一个防盗链的安全URL了。

时间: 2024-11-05 14:23:18

Server-直播码安全保护(安全防盗链)的相关文章

Nginx目录保护、防盗链、限速及多域名处理

http://www.opsers.org/server/nginx-directory-protection-anti-hotlinking-processing-speed-and-multi-domain.html NGiNX 是个非常优秀的HTTP 服务器软件,可以通过设置有实现许多功能,如目录保护.IP访问限制.防盗链.下载限速及设置多域名等等 一.NGINX目录保护及访问限制 Nginx保护目录的配置如下,目录密码保护文件是 /usr/local/nginx/htpasswd loc

流媒体直播防盗链安全控制

       防盗链概念主要是从网站的业务中起来,原有定义只要针对网站内容中的文字,图片被他人非法使用导致,随着网站内容的逐渐丰富,出现了更多音乐,视频,flash等方面内容,同时针对防盗链的技术要求也在不断加强.        视频直播业务的要求在这方面会更加重要,举例来说,一个教育网站,老师的实时授课视频,如果未经过授权,就被其他网站非法接入,在其他网站就可以随意的观看,这对于经营者来说,将是巨大的损失.如果一个现场的演唱会直播,同样在未经过授权的情况下,就可以被他人接入观看,那演唱会的销售

Apache安全优化:设置防盗链,隐藏版本信息 (内含Apache源码包和抓包工具)

防盗链:一些不良网站有时为了不增加成本又想扩充自己站点的内容,经常盗用其他网站的链接,一方面损害了原网站的合法利益,另一方面又加重了服务器的负担 隐藏版本信息:一般情况下,软件的漏洞信息和特定版本是相关的如果×××或别有用心之人得到了Apache的版本信息,就会使服务器遭受被×××的风险,为了防止这些事的发生,我们可以隐藏版本号,减少危险的发生 实验环境:一台linux作为web服务器,IP为192.168.100.222 一台win7作为盗链网站,IP为192.168.100.3 一台win7

Nginx优化与防盗链

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine X",是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发. Nginx以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理.负载平衡.但是Nginx并不支持cgi方式运行,原因是可以减少因此带来的一些程序上的漏洞.所以必须使

Linux之nginx优化与防盗链

Linux之nginx优化与防盗链 Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为"engine X",是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发. Nginx以事件驱动(epoll)的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理.负载平衡.但是Nginx并不支持cgi方式运行,原因是可以减少因

apache web服务器与防盗链的设置

一.安装apache2.4.23 新版本的httpd-2.4新增以下特性: 新增模块: mod_proxy_fcgi(可提供fcgi代理) mod_ratelimit(限制用户带宽) mod_request(请求模块,对请求做过滤) mod_remoteip(匹配客户端的IP地址) 对于基于IP的访问控制做了修改,不再支持allow,deny,order机制,而是统一使用require进行 还新增以下几条新特性: 1.MPM支持在运行时装载;不过要开启这种特性,在编译安装要启用这三种功能: --

配置防盗链及访问控制介绍

配置防盗链 防盗链,就是不让别人盗用你网站上的资源,这个资源,通常指的是图片.视频.歌曲.文档等. referer的概念 你通过A网站的一个页面http://a.com/a.html 里面的链接去访问B网站的一个页面http://b.com/b.html ,那么这个B网站页面的referer就是http://a.com/a.html. 也就是说,一个referer其实就是一个网址. 1.配置防盗链 [[email protected] 111.com]# vim /usr/local/apach

Apache网页优化与安全优化(网页压缩;网页缓存;网页防盗链;隐藏版本信息)

1,网页压缩 网站的访问速度是由多个因素所共同决定的包括: 1)应用程序的响应速度 2)网络带宽 3)服务器性能 4)与客户端之间的网络传输速度等等 其中最重要的就是Apache本身的响应速度,因此提升网站性能第一个需要着手进行处理的便是尽可能地提升Apache的执行速度,使用网页压缩可以提升应用程序的速度,而且不需要任何成本. Apache的压缩模块 Apache2.x内建了mod_deflate这个模块,使用gzip压缩算法.mod_deflate可使用DeflateCompressionL

Nginx学习之如何搭建文件防盗链服务

Nginx学习之如何搭建文件防盗链服务 前言 大家都知道现在很多站点下载资料都是要收费的,无论是积分还是金币,想免费只能说很少很少了,那么这些网站是如何做到资源防盗链的呢? 这里推荐一款比较容易上手的神器,Nginx本身提供了secure_link来完成防盗链功能,可以给服务器文件链接添加时间戳和校验码,从而保护服务器文件不被任意下载盗用. 时序图 Nginx配置 如何安装Nginx这里不再赘述,安装的时候记得开启ngx_http_secure_link_module即可. ./configur