阿里云视频加密(私有加密)可针对视频数据进行加密,视频即使被下载到本地,视频本身也是被加密的,无法恶意二次分发,可有效防止视频泄露和盗链等问题。相比HLS标准加密,私有加密更安全,使用门槛更低。本文为您介绍私有加密的接入方法,并提供扩展方案。
背景
防盗链URL不能防止用户通过一次付费行为拿到付费视频合法的防盗链URL,将视频下载到本地,进而实现二次分发。因此,防盗链方案对于视频版权保护是不够的。视频文件一旦泄露,会给付费观看模式造成十分严重的经济损失。
优势介绍
阿里云视频加密是对视频数据加密,即使下载到本地,视频本身也是被加密的,无法恶意二次分发。视频加密可有效防止视频泄露和盗链问题,广泛用于在线教育、财经金融、行业培训、独播剧等在线版权视频领域。
采用阿里云私有加密算法,安全级别高,能够便捷、高效、安全地保护视频资源。
每个媒体文件拥有独立的加密密钥,能有效避免采用单一密钥时,一个密钥的泄露引起大范围的安全问题。
视频点播提供完善的权限管理机制“子账号+播放凭证”。
视频点播提供信封加密机制“密文Key+明文Key”,明文Key不存储,所有过程只在内存中。
视频点播提供安全的播放内核SDK。
整体架构
阿里云视频加密方案包含两部分:加密转码 + 解密播放。
加密转码
App后台发起视频加密
业务方提交需要数据加密的转码作业。(上图中流程①)
视频点播获取加密密钥
视频点播服务负责通过密钥管理服务KMS生成明文Key和密文Key。(上图中流程②)
视频加密转码
使用明文Key来加密视频文件,转码完成后,明文Key丢弃,不存储。(上图中流程③)
转码完成+消息通知
保存加密后的视频文件,并给业务方发送消息通知。(上图中流程④)
解密播放
业务授权
移动端的App或者Web页面访问视频时,先访问业务方自己的API或后端页面,业务方可以在这里加上自己的权限控制(例如需要登录才能播放,建议使用HTTPS)。如果业务上允许播放,则通过业务方子账号的AK访问STS,获取播放凭证,并返回给App/Web端。
获取播放地址
移动端的App或者Web页面把播放凭证和媒体ID参数传给阿里云播放服务,播放器SDK会负责剩下的播放流程:
根据媒体ID从视频点播服务获取对应的多格式、多清晰度的播放地址。
加密视频获取对应的加密密钥。
解密播放
视频云提供了安全的播放内核SDK,使用加密密钥对内容解密,然后进行视频播放。
使用前须知
阿里云视频加密仅支持输出HLS、MP4格式,且只能使用视频点播提供的阿里云播放器SDK对加密内容进行解密播放。
暂不支持在移动端iOS平台的Web播放器中播放私有加密视频,此场景推荐使用HLS标准加密对视频进行加密。
MP4格式的私有加密视频现仅支持使用iOS/Android阿里云播放器SDK播放。详情请参见播放器SDK加密播放兼容说明。
如何使用
前提条件
已经开通了视频点播服务。开通步骤请参见开通视频点播。
已在视频点播中配置加速域名,具体步骤请参见添加加速域名。
如需进行MP4私有加密,则必须在创建私有加密转码模板组之前,已创建并获取包含播放器授权的License,详情请参见管理License。
视频加密
创建私有加密转码模板组。
(可选)创建工作流并关联私有加密的转码模板组。
在工作流中将转码、审核、截图等各种类型的媒体处理任务按一定流程进行编排,后续在上传媒体或媒体处理环节触发工作流时,可以使媒体文件按预先编排好的一系列任务流程自动发起处理。
您可以将关联了私有加密转码模板组的媒体转码节点添加到工作流环节中,当前仅支持通过控制台方式创建工作流。详细操作,请参见工作流。
发起私有加密转码。
视频点播支持在上传媒体和媒体处理环节去触发转码。可以直接基于转码模板组发起转码,或基于包含媒体转码节点的工作流去发起转码。控制台方式详细操作请参见步骤二:发起转码,OpenAPI方式详细操作请参见步骤二:发起转码。
查看私有加密转码结果。
异步等待结果通知
如果您已配置视频点播的事件通知,可以通过接收单个清晰度转码完成或全部清晰度转码完成回调消息获取转码任务信息。
同步进行查询任务
视频播放
经过阿里云视频加密(私有加密)加密过的视频,只能使用视频点播提供的阿里云播放器SDK对加密内容进行解密播放。
阿里云播放器SDK提供iOS、Android、Web(H5、Flash)多平台的播放器SDK供集成,以便您在自己的应用或网站中完成私有加密视频的播放。
使用阿里云播放器SDK前,需要先获取播放器的License授权,详情请参见管理License。
集成阿里云播放器SDK前,请先了解各平台播放器SDK对私有加密的支持兼容详情,详情请参见播放器SDK加密播放兼容说明。
使用阿里云播放器SDK播放私有加密视频的具体操作步骤,请参见播放私有加密视频-Web端、播放私有加密视频-Android端、播放私有加密视频-iOS端。
方案扩展
如果终端用户有离线下载需求,为保证视频安全,建议开启安全下载。具体操作,请参见下载设置。将视频文件通过密钥进行二次加密,下载后在SDK内部完成视频解密,保障离线视频仅能通过唯一应用进行安全播放,让离线视频更加安全。