媒体转码HLS标准加密详解

本文涉及的产品
对象存储 OSS,OSS 加速器 50 GB 1个月
简介: 视频加密是对视频内容保护的一种手段,对视频中的内容进行加密,可有效防止视频泄露和盗链问题,广泛用于在线教育及财经等领域。阿里云目前支持两种加密方式: 私有加密 和 HLS标准加密,HLS标准加密需要客户自己保护密钥,此文档介绍HLS标准加密

1. 基本概念

秘钥管理服务(Key Management Service,简称KMS)
一项安全管理服务,主要负责数据秘钥的生产、加密、解密等工作。开通请点击这里

数据秘钥(Data Key,简称DK)也称明文密钥
DK为加密数据使用的明文数据密钥

信封数据密钥(Enveloped Data Key,简称EDK)也称密文密钥
EDK为通过信封加密技术保密后的密文数据密钥

2. 原理

HLS标准加密是通过MTS调用KMS服务生成明文秘钥DK进行加密,将对应的密文秘钥EDK 通过keyuri发送给客户,keyuri 是客户创建HLS标准加密工作流的时候需要传入的一个参数,是用户业务服务器的URL地址;用户业务服务器keyuri可以通过 KMS的API接口解密接收到的密文秘钥EDK得到明文秘钥DK,再进行base64decode返回给客户端,客户端通过该值解密播放视频;

3. 操作

1)开通KMS

2)调用sdk 创建工作流,传入对应的参数(点击查看demo

工作流中关键配置

开始活动结点:InputFile:{"Bucket":"bucketdemo", "Location ":"oss-cn-hangzhou", "ObjectPrefix":"HLS-Encryption"};
此配置表示:内容创作者上传视频到杭州 oss://bucketdemo/HLS-Encryption 这个路径下会自动触发加密转码;

转码活动结点:Encryption:{"Type":"hls-aes-128", "KeyUri":"https://decrypt.demo.com"};
转码完成后,KeyUri的配置会出现在m3u8文件中,供播放器使用,内容类似:URI="https://decrypt.demo.com?Ciphertext=aabbccddeeff&MediaId=fbbf98691ea44b7c82dd75c5bc8b9271"
其中Ciphertext参数的内容就是密文秘钥EDK,MediaID就是该媒体资源的媒体ID;其中用户业务服务器KeyUri可以通过 KMS的API接口解密接收到的密文秘钥EDK,得到明文秘钥DK,再进行base64decode返回给客户端,客户端通过该值解密播放视频;

3)上传视频

两种方法上传视频,都会自动触发加密转码
I 通过MTS控制台上传视频至刚刚创建的工作流
II 通过OSS上传工具上传视频至oss://bucketdemo/HLS-Encryption路径
III 转码完成后,m3u8文件内容示例

 #EXTM3U
 #EXT-X-VERSION:3
 #EXT-X-TARGETDURATION:5
 #EXT-X-MEDIA-SEQUENCE:0
 #EXT-X-KEY:METHOD=AES-128,URI="https://decrypt.demo.com?Ciphertext=aabbccddeeff&MediaId=fbbf98691ea44b7c82dd75c5bc8b9271"
 #EXTINF:4.127544,
 15029611683170-00001.ts
 #EXT-X-ENDLIST    

4) 播放

播放器播放加密转码后的m3u8资源:https://vod.demo.com/test.m3u8
播放器解析得到EXT-X-KEY:METHOD=AES-128,URI=https://decrypt.demo.com?Ciphertext=aabbccddeeff&MediaId=fbbf98691ea44b7c82dd75c5bc8b9271 的URI部分内容,向URI请求获取明文秘钥DK 的base64decode数据;业务端接收到请求,根据Ciphertext=aabbccddeeff解析得到密文秘钥EDK: aabbccddeeff,业务端调用KMS API接口解析密文秘钥EDK,得到明文秘钥DK,进行base64decode返回给播放器端;播放器端根据得到的明文秘钥DK 的base64decode数据解密播放m3u8视频;

播放器支持:safari浏览器,苹果系的 H5播放都支持,VLC支持,MTS WEB播放器不支持

4. 业务安全

如果用户想要业务安全,那么可以考虑客户端访问加密视频m3u8的时候加参数MtsHlsUriToken;
比如正常的播放地址为https://vod.demo.com/test.m3u8, 当拼接携带MtsHlsUriToken参数后为https://vod.demo.com/test.m3u8?MtsHlsUriToken=业务方颁发的令牌

播放时,播放器向阿里CDN请求https://vod.demo.com/test.m3u8?MtsHlsUriToken=业务方颁发的令牌 ,阿里CDN会动态修改m3u8文件中的解密URI(EXT-X-KEY:METHOD=AES-128,URI="https://decrypt.demo.com?Ciphertext=aabbccddeeff&MediaId=fbbf98691ea44b7c82dd75c5bc8b9271"),如原为https://decrypt.demo.com?Ciphertext=aabbccddeeff&MediaId=fbbf98691ea44b7c82dd75c5bc8b9271 , 修改后为 https://decrypt.demo.com?Ciphertext=aabbccddeeff&MediaId=fbbf98691ea44b7c82dd75c5bc8b9271&MtsHlsUriToken=业务方颁发的令牌

所以,播放器最终请求解密URI为:https://decrypt.demo.com?Ciphertext=aabbccddeeff&MediaId=fbbf98691ea44b7c82dd75c5bc8b9271&MtsHlsUriToken=业务方颁发的令牌 ,此地址中,携带了业务方搬发的令牌,业务方进行验证即可

5. 业务方需要做的事情

1】搭建颁发及验证MtsHlsUriToken令牌服务
2】校验解密令牌,推荐一个令牌只允许使用一次
3】解密密钥:EDK即Ciphertext, 此时,要调用KMS服务的解密接口进行解密 接口说明, 解密后,可缓存,以减少不必要的网络IO
4】解密拿到DK即明文密钥,需要base64decode, 然后返回给播放器

目录
相关文章
|
机器学习/深度学习 并行计算 PyTorch
安装GPU版本tensorflow、pytorch
安装GPU版本tensorflow、pytorch
安装GPU版本tensorflow、pytorch
|
8月前
|
存储 弹性计算 人工智能
阿里云渠道商:云文件存储 NAS是什么?
阿里云NAS提供云端共享存储,多台服务器可同时访问同一文件,解决版本混乱难题。支持跨地域挂载、自动备份与按需付费,适用于团队协作、数据共享等场景,开箱即用,免运维,助力企业高效上云。
|
7月前
|
人工智能 自然语言处理 算法
2025年第13批中国深度合成算法备案分析报告
2025年9月,第13批深度合成算法备案公布,共586项,累计达4420项。北京、广东、浙江、上海居前列,民企为主力,覆盖教育、医疗、金融等领域。文本与对话生成占主导,数字人、多模态技术加速落地。AI应用向行业纵深发展,合规标识成常态,监管趋严推动产业规范创新。
|
存储 安全 C语言
C++ String揭秘:写高效代码的关键
在C++编程中,字符串操作是不可避免的一部分。从简单的字符串拼接到复杂的文本处理,C++的string类为开发者提供了一种更高效、灵活且安全的方式来管理和操作字符串。本文将从基础操作入手,逐步揭开C++ string类的奥秘,帮助你深入理解其内部机制,并学会如何在实际开发中充分发挥其性能和优势。
|
编解码 自然语言处理 开发者
通义音乐生成技术InspireMusic开源!
通义音乐生成技术InspireMusic开源!
1324 2
|
人工智能 算法 Serverless
短视频创作助手 | AI剧本生成与动画创作
短视频行业的快速发展得益于移动互联网和智能手机的普及,4G、5G网络的推广使用户对视频内容的需求大增。短视频以其短小精悍、易于传播的特点迅速吸引了大量用户。平台如抖音、快手通过算法推荐和社交功能推动了用户增长和内容生态繁荣。AI剧本生成与动画创作方案则进一步降低了创作门槛,简化从剧本到视频成片的过程。该方案利用阿里云的大模型服务平台百炼、函数计算FC和对象存储OSS等产品,实现了自动化流程,涵盖故事剧本撰写、插图设计、声音合成至视频合成,极大缩短了创作周期,提高了内容产出速度。部署简单快捷,耗时约5分钟,使得非技术人员也能轻松上手,满足企业和个人创作者的需求。
|
数据安全/隐私保护 索引 Python
详尽分享视频相关的hls协议、VLC播放器、m3u文件的播放
详尽分享视频相关的hls协议、VLC播放器、m3u文件的播放
594 0
pandas list\dict 转换为DataFrame
pandas list\dict 转换为DataFrame
pandas list\dict 转换为DataFrame
|
缓存 自然语言处理 负载均衡
理解大模型在分布式系统中的应用和优化策略
理解大模型在分布式系统中的应用和优化策略