一篇文章解读阿里云视频点播内容安全机制-阿里云开发者社区

开发者社区> 樰篱> 正文

一篇文章解读阿里云视频点播内容安全机制

简介: 如何保障视频内容的安全,不被盗链、非法下载和传播,是困扰众多企业已久的问题,特别是独播剧、在线教育、财经金融、行业培训等在线版权视频领域尤为迫切,处理不好会造成极为严重的经济损失,甚至法律风险。阿里云视频点播提供了完善的内容安全保护机制,可以满足不同业务场景的安全需求。
+关注继续查看

1. 概述

如何保障视频内容的安全,不被盗链、非法下载和传播,是困扰众多企业已久的问题,特别是独播剧、在线教育、财经金融、行业培训等在线版权视频领域尤为迫切,处理不好会造成极为严重的经济损失,甚至法律风险。

阿里云视频点播提供了完善的内容安全保护机制,可以满足不同业务场景的安全需求。

image

2. 访问限制

访问限制是在云端配置视频资源的访问策略,达到基本的保护目的,主要手段有:

  • Referer、IP和UA(User-Agent)的黑白名单
  • 一定周期内,URL的访问次数限制、独立IP数限制

2.1 Referer黑白名单

  • 基于 HTTP 协议支持的 Referer机制,通过 Referer跟踪来源,对来源进行识别和判断,用户可配置访问的 Referer 黑、白名单(二者互斥)来限制视频资源被访问的情况。
  • 支持黑名单和白名单两种模式,访客对资源发起请求后,请求到达CDN 节点,节点会根据用户预设的防盗 链黑名单或白名单进行过滤,符合规则可顺利请求到视频数据;若不符合,请求会被拒绝,并返回403响应 码。
  • 配置后会自动添加泛域名支持,例如填写a.com,最终配置生效的是*.a.com,所有子级域名都会生效。
  • 由于移动端一般拿不到Referer,当前默认支持空Referer访问,可选择关闭。

示例
设置点播域名 vod-test1.cn-shanghai.aliyuncs.com 的Referer白名单为 aliyun.com,且不允许空Referer访问,请求 数据:

curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4'

返回
image

当请求带上允许的referer后即正常返回:

curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4' \
-H 'Referer: http://www.aliyun.com'

2.2 UA黑白名单

UA(User-Agent)是一个特殊字符串头,帮助服务端识别用户使用的操作系统及版本、CPU类型、浏览器及版本、 浏览器渲染引擎&语言和插件等。可通过UA黑白名单来限制特定浏览器或终端的访问。

如PC端IE9浏览器:

UserAgent:Mozilla/5.0(compatible;MSIE9.0;WindowsNT6.1;Trident/5.0;

可模拟HTTP请求验证:

curl -i 'http://vod-test1.cn-shanghai.aliyuncs.com/sv/5101d1f8-1643f9ab241/5101d1f8-1643f9ab241.mp4' \
-H 'User-Agent: iPhone OS;MI 5'

2.3 IP黑白名单

视频点播支持配置IP黑名单或白名单,拒绝或只允许特定IP的访问。

  • 支持IP列表添加,并支持添加IP网段,例如127.0.0.1/24。

网段127.0.0.1/24,24表示采用子网掩码中的前24位为有效位,即用32-24=8bit来表示主机号,该子网可以容纳2^8 - 2 = 254 台主机,故可表示IP网段范围:127.0.0.1~127.0.0.255。

  • 可选择优先使用 remote_addr 或 X-Forwarded-For(XFF) 作为请求端IP,或者同时匹配。

2.4 访问次数和独立IP数限制

点播服务可限制媒体资源在一定时间周期内(如1天)的最大访问次数和最大独立IP数,核心原理是所有请求先到中心化的访问计数服务进行验证,判断是否超过预设的阈值,若超过则拒绝服务,返回HTTP 403。

  • 该限制为URL(包括文件地址和签名信息)维度而非文件维度,但可配置忽略URL中的部分参数;限制的阈 值到域名粒度,可单独设置。
  • 访问计数服务是多区域部署的中心化服务,一个URL只能被调度到其中一个区域,以保证中心化计数。
  • CDN边缘节点收到请求后会访问中心化计数服务进行计数和验证。

2.5 小结

  • 访问限制的使用门槛很低,只需简单配置即可使用,能起到一定的保护作用,特别是Web端。
  • Referer和UA都是基于HTTP Header,容易被伪造,安全性低。
  • IP黑白名单机制和访问数限制,无法实现内容分发给大量C端用户,不适合广泛的内容消费场景,且后者在 阈值范围内也可能被非法访问。

3. 播放中心鉴权

播放地址若固定不变会带来持久的非法扩散传播,且无法有效遏制,视频点播提供的URL鉴权可通过生成动态的加密URL(包含权限验证、过期时效等信息)来区分合法请求,以达到保护视频资源的目的。

  • 开启URL鉴权后,点播的播放器SDK、获取播放地址的API/SDK都会自动生成带时效的播放URL;如需要自己生成鉴权的动态URL,则可使用下述 鉴权 法。
  • 开启URL鉴权后,所有媒体资源,包括视频、音频、封面、截图等地址都会进行鉴权。
  • 鉴权Key的设置是以域名为粒度,且存于服务端以确保安全;支持主、备Key平滑切换,若更换主Key,可使用备Key生成播放地址,以做为更换的桥接,实现交替更新。

鉴权方法

鉴权URL构成

http://DomainName/Filename?auth_key=timestamp-rand-uid-md5hash

鉴权URL由播放文件地址+验证串构成,验证串是根据鉴权key+过期时间通过md5算法计算得出,且具有时效性, 默认为3600秒(可后台配置)的有效时间,可在生成播放地址或获取地址时设置过期时间;若地址过期则访问时 CDN会返回HTTP 403。

动态地址示例

http://vod.example.com/video/aliyun-sample.mp4?auth_key=1500523200-0-0-80cd3862d699b7118eed99103f2a3a4f

示例中的auth_key参数值前缀1500523200(时间为2017-07-20 12:00:00),表示该地址会在2017-07-20 13:00:00过期。

更多信息可参考 阿里云视频点播-URL鉴权。

4. 业务方二次鉴权

播放中心鉴权使用了阿里云的默认鉴权中心,但由于没有客户业务请求信息的输入,对盗链等非法请求的判断还比较单一,使用二次鉴权会更加精准。

  • 二次鉴权是指点播CDN将用户的请求透传到客户的鉴权中心,由客户自己判定该请求是否合法,CDN根据 客户的判断结果执行相应动作:允许或拒绝访问。
  • 二次鉴权需要客户自己开发和部署鉴权中心,该鉴权中心的域名如果同时在 CDN上面加速,可以按照一定 规则缓存客户的鉴权结果,以减轻客户鉴权中心的压力。点播CDN会默将把用户请求的 headers 和 request_uri 透传到客户自定义的鉴权中心,并根据鉴权中心返回的结果执行相应的动作。过程如下图:

image

如业务方可将其用户的登录Cookie或UUID等信息隐藏于播放请求中,进而透传到自己的鉴权中心以判定是否为合法用户。

5. 视频加密

防盗链安全机制能有效保障用户的合法访问,但对于付费观看视频的场景,用户只需通过一次付费行为拿到视频合 法的防盗链播放URL,将视频下载到本地,进而实现二次分发。因此,防盗链方案对于视频版权保护是远远不够的。视频文件一旦泄露,会给付费观看模式造成十分严重的经济损失。

阿里云视频加密是对视频数据加密,即使下载到本地,视频本身也是被加密的,无法恶意二次分发,可有效防止视频泄露和盗链问题。

5.1 阿里云视频加密

阿里云视频加密采用私有的加密算法和安全传输机制,提供云端一体的视频安全方案,核心部分包括 “加密转码” 和 “解密播放”。

核心优势:

  • 每个媒体文件拥有独立的加密钥匙,能有效避免采用单一密钥时,一个密钥的泄露引起大范围的安全问题。
  • 提供信封加密机制“密文Key+明文Key”,仅密文Key入库,明文Key不落存储,所有过程只在内存中,用完 即销毁。
  • 提供安全的播放器内核SDK,涵盖iOS/Android/Flash多平台,自动对加密内容进行解密播放;H5播放器不支持加密视频的播放。
  • 播放器和云端使用私有加密协议进行密文传输,不传输明文Key,有效防止密钥被窃取。
  • 提供安全下载,缓存到本地的视频会再次加密,在确保无网离线播放前提下,防止视频被拷贝窃取。

注意:阿里云视频加密仅支持输出HLS格式,且只能使用阿里云播放器。 更多信息参考 阿里云-视频加密

5.2 HLS标准加密

HLS标准加密支持 HTTP Live Streaming 中规定的通用加密方案,使用AES-128对视频内容本身进行加密,同时能 支持所有的HLS播放器,用户可选择使用自研或开源的播放器。相比私有加密方案,灵活性更好,但使用门槛更 高、安全性更低:

  • 用户需搭建密钥管理服务,提供密钥生成(用于转码时对视频内容进行加密)和解密服务(用于播放时获取 解密密钥),也可基于 阿里云KMS 进行封装。
  • 用户需提供令牌颁发服务,用于验证播放端的身份,避免解密密钥被非法获取,此处为关键点,处理不好会千里之堤溃于蚁穴。
  • 播放器和云端传输明文Key,容易被窃取。

更多信息参考 阿里云-HLS标准加密

5.3 小结

视频加密方案各有优劣,一般来说,越是标准、通用,灵活性越高,但安全性越低,选择哪种方案取决于自己的业务场景,有所取舍:

安全等级:阿里云视频加密 > HLS标准加密

阿里云视频加密安全性明显高于HLS标准加密。

易用性:阿里云视频加密 > HLS标准加密

阿里云视频加密提供云端一体解决方案,只需简单配置并接入阿里云播放器即可无缝集成加密能力;HLS标准加密需自建密钥管理和令牌颁发服务。

通用性:HLS标准加密 > 阿里云视频加密

HLS标准加密可适配所有M3U8播放场景;阿里云视频加密仅支持阿里云播放器 (Android/iOS/Flash)。

使用费用:阿里云视频加密 = HLS标准加密

阿里云视频加密和HLS标准加密都可免费使用。

  • iOS/Android/Flash使用阿里云视频加密或HLS标准加密会有很好的安全性;但由于H5端为明文,要保证更高的安全性首选商业DRM(Chrome等浏览器的原生支持)。

了解与开通视频点播服务

了解视频安全解决方案

活动推荐

12月20日杭州站【云栖TechDay-音视频技术实战沙龙】,多位视频云专家现场解读短视频、直播、视频AI、视频加速技术实践,赢取阿里云公仔及代金券,点击了解活动详情及免费报名:https://yq.aliyun.com/event/678

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云点播视频安全宝典系列(二)- 访问限制
阿里云视频点播系统视频安全系列
362 0
dedecms数据库内容替换安全确认码不显示怎么解决
  ytkah今天在网站迁移服务器时发现,dedecms数据库内容替换安全确认码无法显示,这个安全码的位置是在核心 - 批量维护 - 数据库内容替换,有个安全码填写,这里教你怎么直接忽略这个验证码。打开dede/sys_data_replace.php,找到以下代码(大约在45行),删除或者注释掉,这个时候我们再次进行数据库内容替换时就无需输入安全确认码了。
1012 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4614 0
阿里云视频点播服务添加视频字幕的实现方案
本文给出了一个为视频点播服务里的视频添加字幕的方案。
2368 0
蚂蚁金服共享智能平台荣获“世界人工智能产业安全十大创新实践”
8月30日,在2019世界人工智能大会上,蚂蚁金服共享智能平台荣获“世界人工智能产业安全十大创新实践”。
973 0
Joyent公司CTO谈容器安全:安全性是容器部署面临的首要问题
本文讲的是Joyent公司CTO谈容器安全:安全性是容器部署面临的首要问题【编者的话】随着容器技术的发展,越来越多的IT企业开始关注容器技术。面对视安全如生命的企业级项目,如何才能帮助他们快速扫清拥抱容器技术的障碍?致力于容器云服务的Joyent公司CTO Bryan Cantrill在第97期The New Stack Analysts中探讨了Joyent对容器安全问题的一些看法。
1057 0
+关注
樰篱
阿里云产品运营,专注边缘计算和视频云产品与技术传播
514
文章
59
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载