全部产品
视频点播

视频加密

更新时间:2017-08-24 19:30:19   分享:   

简介

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

阿里云视频加密是对视频数据加密,即使下载到本地,视频本身也是被加密的,无法恶意二次分发。视频加密可有效防止视频泄露和盗链问题,广泛用于在线教育、财经金融、行业培训、独播剧等在线版权视频领域。

阿里云视频加密方案

加密算法

阿里云私有加密算法,安全级别高,能够便捷、高效、安全地保护视频资源。

方案优势

1. 独立性:

每个媒体文件拥有独立的加密钥匙,能有效避免采用单一密钥时,一个密钥的泄露引起大范围的安全问题。

2. 安全性:

  • 视频点播提供完善的权限管理机制“子账号+播放凭证”;

  • 视频点播提供信封加密机制“密文Key+明文Key”,明文Key不落存储,所有过程只在内存中;

  • 视频点播提供安全的播放内核SDK。

注意事项

1.视频加密只支持输出HLS格式;

2.需使用视频点播提供的iOS/Android/Flash播放器对加密内容进行解密播放,H5播放器不支持加密视频的播放。

整体架构

架构图

阿里云视频加密方案包含两部分“加密转码”+“解密播放”。

加密转码

1. APP后台发起视频加密

业务方提交需要“数据加密”的转码作业。

2. 视频点播获取加密秘钥

视频点播服务负责通过“密钥管理服务KMS”生成“明文Key”,“密文Key”。

3. 视频加密转码

使用“明文Key” 来加密视频文件,转码完成后,“明文Key”丢弃,不存储。

4. 转码完成+消息通知

保存加密后的视频文件,并给业务方发送消息通知。

解密播放

1. 业务授权

移动端的APP或者Web页面访问视频时,先访问业务方自己的API或后端页面,业务方可以在这里加上自己的权限控制(例如需要登录才能播放, 建议使用HTTPS)。如果业务上允许播放,则通过业务方子账号的AK访问STS,获取播放凭证,并返回给APP/WEB端。

2. 获取播放地址

移动端的APP或者Web页面把播放凭证和媒体ID参数传给阿里云播放服务,播放器SDK会负责剩下的播放流程:

  • a.根据媒体ID从视频点播服务获取对应的多格式、多清晰的播放地址;

  • b.加密视频获取对应的加密钥匙。

3. 解密播放

视频云提供了安全的播放内核SDK,使用加密钥匙对内容解密,然后进行视频播放。

如何接入

事先准备

1. 开通视频点播服务

2. 配置点播加速域名

3. 完成点播加速域名CNAME绑定

接入步骤

1. 选择加密转码模板

操作步骤:在控制台 -> 全局设置 -> 转码设置中,点击修改设置, 勾选加密即可使用数据加密,保护您的视频。

注意:目前仅支持HLS的输出,即便勾选MP4,也不会对其进行加密保护。

开始数据加密

2. 视频上传

可以通过SDK上传、OpenAPI上传、控制台上传、OSS第三方工具上传等多种方式来将已有视频文件上传到视频点播,查看详情

3. 视频转码

视频上传完成后会自动触发转码,转码完成后视频状态标记为“正常”可播放,查看详情

4. 视频播放

视频点播提供iOS/Android/Flash多平台的播放SDK供集成,以便用户在自己的应用或网站中完成视频播放。

  • Web播放器(Flash):通过集成在视频管理-视频详情页模块的Web播放器代码片段,用户可以在自己的Web页面中嵌入播放器并实现播放。注意引入flash播放器 prism-flash-min.js ,查看详情

  • 移动端播放器(IOS\Android):提供了标准UI和无UI两种SDK,如用户没有特殊的UI定制需求,可以通过标准UI SDK快速集成到自己的应用中,Android请参考详情, iOS请参考详情

注:加密视频,需使用 播放凭证 方式进行播放,播放器需要的参数playauth,可调用API 接口或SDK获取 ,查看详情

示例

flash播放器小demo

  1. <!DOCTYPE HTML>
  2. <head>
  3. <meta charset="UTF-8">
  4. <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
  5. <title>加密视频测试页面</title>
  6. <link rel="stylesheet" href="//g.alicdn.com/de/prismplayer/1.9.4/skins/default/index-min.css" />
  7. <script type="text/javascript" src="//g.alicdn.com/de/prismplayer/1.9.4/prism-flash-min.js"></script>
  8. </head>
  9. <body>
  10. <div class="prism-player" id="J_prismPlayer"></div>
  11. <script type="text/javascript">
  12. var player = new prismplayer({
  13. id: 'J_prismPlayer',
  14. width: '100%',
  15. height:'540px',
  16. barMode: 0,
  17. vid: '<vid>',
  18. playauth: '<playauth>'
  19. });
  20. </script>
  21. </body>
  22. </html>

当播放视频为加密视频时,进度条下方会出现一个锁的标志,如下图:

加密播放

方案扩展

如果终端用户有离线下载需求,为保证视频安全,建议开启“安全下载”。将视频文件通过秘钥进行二次加密,下载后在SDK内部完成视频解密,保障离线视频仅能通过唯一应用进行安全播放,让离线视频更加安全。

tuozhan

本文导读目录
本文导读目录
以上内容是否对您有帮助?