阿里云视频加密是对视频数据加密
如果key暴露了后,视频也就破解了。
阿里云的uri不再是key的地址了,获取key的难度大大提升了。
阿里云的uri不再是key的地址了,获取key的难度大大提升了。
阿里云视频加密
更新时间:2021-07-15 14:46
阿里云视频加密可针对视频数据进行加密,本文为您介绍优势、整体架构和接入方法,并提供方案扩展方法。
背景
防盗链URL不能防止用户通过一次付费行为拿到付费视频合法的防盗链URL,将视频下载到本地,进而实现二次分发。因此,防盗链方案对于视频版权保护是远远不够的。
优势介绍
阿里云视频加密是对视频数据加密,即使下载到本地,视频本身也是被加密的,无法恶意二次分发。视频加密可有效防止视频泄露和盗链问题,广泛用于在线教育、财经金融、行业培训、独播剧等在线版权视频领域。
采用阿里云私有加密算法,安全级别高,能够便捷、高效、安全地保护视频资源。
- 每个媒体文件拥有独立的加密钥匙,能有效避免采用单一密钥时,一个密钥的泄露引起大范围的安全问题。
- 视频点播提供完善的权限管理机制“子账号+播放凭证”。
- 视频点播提供信封加密机制”密文Key+明文Key”,明文Key不存储,所有过程只在内存中。
- 视频点播提供安全的播放内核SDK。
整体架构
阿里云视频加密方案包含两部分:加密转码 + 解密播放。

- 加密转码
- App后台发起视频加密
业务方提交需要数据加密的转码作业。 - 视频点播获取加密密钥
视频点播服务负责通过密钥管理服务KMS生成明文Key和密文Key。 - 视频加密转码
使用明文Key来加密视频文件,转码完成后,明文Key丢弃,不存储。 - 转码完成+消息通知
保存加密后的视频文件,并给业务方发送消息通知。
- App后台发起视频加密
- 解密播放
- 业务授权
移动端的App或者Web页面访问视频时,先访问业务方自己的API或后端页面,业务方可以在这里加上自己的权限控制(例如需要登录才能播放,建议使用HTTPS)。如果业务上允许播放,则通过业务方子账号的AK访问STS,获取播放凭证,并返回给App/Web端。 - 获取播放地址
移动端的App或者Web页面把播放凭证和媒体ID参数传给阿里云播放服务,播放器SDK会负责剩下的播放流程:- 根据媒体ID从视频点播服务获取对应的多格式、多清晰的播放地址。
- 加密视频获取对应的加密钥匙。
- 解密播放
视频云提供了安全的播放内核SDK,使用加密钥匙对内容解密,然后进行视频播放。
- 业务授权
注意
- 视频加密只支持输出HLS格式。
- 需使用视频点播提供的iOS、Android、H5、Flash播放器对加密内容进行解密播放。
接入方法
前提条件:
接入流程:
- 在控制台的添加转码模版组页面,单击添加模板。具体操作,请参见转码设置。
- 将基本参数区域中的封装格式设置为hls。
- 在高级参数区域打开视频加密开关,使用数据加密。
- 视频上传
可以通过SDK上传、OpenAPI上传、控制台上传、OSS第三方工具上传等多种方式来将已有视频文件上传到视频点播。更多信息,请参见媒体上传概述。 - 视频转码
视频上传完成后会自动触发转码,转码完成后视频状态标记为正常可播放。更多信息,请参见转码设置。 - 视频播放
视频点播提供iOS、Android、H5、Flash多平台的播放SDK供集成,以便您在自己的应用或网站中完成视频播放。
说明 加密视频,需使用播放凭证方式进行播放,播放器需要的参数playauth,可调用API接口或SDK获取。更多信息,请参见获取视频播放凭证。 - 视频流管理
加密转码输出的内容,流信息会标示“加密”,更多信息,请参见播放信息 PlayInfo。在控制台也会展示私有加密标示,便于进行多种方式的内容管理。
方案扩展
如果终端用户有离线下载需求,为保证视频安全,建议开启安全下载。具体操作,请参见下载设置。将视频文件通过密钥进行二次加密,下载后在SDK内部完成视频解密,保障离线视频仅能通过唯一应用进行安全播放,让离线视频更加安全。

1 #EXTM3U 2 #EXT-X-VERSION:3 3 #EXT-X-ALLOW-CACHE:YES 4 #EXT-X-TARGETDURATION:10 5 #EXT-X-KEY:MEATHOD=AES-128,URI="NTEyYmI2ZTAtMTk3Ni00ZTc4LTgxMjEtNDY1MzE1ODYwY2U1cjk1ZnJSRTJ0OUJPTFJHb1VZMElycWZuNUdqR3dJMFFBQUFBQUFBQUFBQjEwaU80ek1qdHdIRm9mdDdNQmNjOEZOdm04L2IxYlVFeXJLS0pINUhmaEtvSVAvZ3JNZlJH" 6 #EXT-X-MEDIA-SEQUENCE:0 7 #EXTINF:10.000000, 8 Base64.decode64('NTEyYmI2ZTAtMTk3Ni00ZTc4LTgxMjEtNDY1MzE1ODYwY2U1cjk1ZnJSRTJ0OUJPTFJHb1VZMElycWZuNUdqR3dJMFFBQUFBQUFBQUFBQjEwaU80ek1qdHdIRm9mdDdNQmNjOEZOdm04L2IxYlVFeXJLS0pINUhmaEtvSVAvZ3JNZlJH') 9 => "512bb6e0-1976-4e78-8121-465315860ce5r95frRE2t9BOLRGoUY0Irqfn5GjGwI0QAAAAAAAAAAB10iO4zMjtwHFoft7MBcc8FNvm8/b1bUEyrKKJH5HfhKoIP/grMfRG" 10 # 阿里云HLT私秘 11 # https://help.aliyun.com/document_detail/68613.html 12 d9bf59bfb5f14e3fb46676acb0aaa0ce-f409fd0e79eb35a7104fbffa0a39da7b-fd-encrypt-stream-00001.ts 13 https://video.qkduo.cn/a98fc836fb7b4c51bd5569edcd5eb5b0/d9bf59bfb5f14e3fb46676acb0aaa0ce-64ee6137c07d9c61cced72f488be8f2d-sd-encrypt-stream-00077.ts 14 #EXTINF:10.000000, 15 d9bf59bfb5f14e3fb46676acb0aaa0ce-f409fd0e79eb35a7104fbffa0a39da7b-fd-encrypt-stream-00002.ts 16 #EXTINF:10.000000, 17 d9bf59bfb5f14e3fb46676acb0aaa0ce-f409fd0e79eb35a7104fbffa0a39da7b-fd-encrypt-stream-00003.ts 18 #EXTINF:10.000000, 19 d9bf59bfb5f14e3fb46676acb0aaa0ce-f409fd0e79eb35a7104fbffa0a39da7b-fd-encrypt-stream-00004.ts 20 #EXTINF:10.000000, 21 d9bf59bfb5f14e3fb46676acb0aaa0ce-f409fd0e79eb35a7104fbffa0a39da7b-fd-encrypt-stream-00005.ts 22 #EXTINF:10.000000, 23 d9bf59bfb5f14e3fb46676acb0aaa0ce-f409fd0e79eb35a7104fbffa0a39da7b-fd-encrypt-stream-00006.ts 24 #EXTINF:10.000000,
阅读量: 695
发布于:
修改于:
发布于:
修改于: