媒体转码HLS标准加密详解

本文涉及的产品
对象存储 OSS,20GB 3个月
视频点播 VOD,流量+存储+转码
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 视频加密是对视频内容保护的一种手段,对视频中的内容进行加密,可有效防止视频泄露和盗链问题,广泛用于在线教育及财经等领域。阿里云目前支持两种加密方式: 私有加密 和 HLS标准加密,HLS标准加密需要客户自己保护密钥,此文档介绍HLS标准加密

作者:何昔

  1. 基本概念

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

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

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

  1. 原理

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

  1. 操作

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播放器不支持

  1. 业务安全

如果用户想要业务安全,那么可以考虑客户端访问加密视频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=业务方颁发的令牌 ,此地址中,携带了业务方搬发的令牌,业务方进行验证即可

  1. 业务方需要做的事情

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

相关文章
|
6月前
|
编解码 缓存 安全
视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题
视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题视频点播这边在执行 HLS标准加密 转码后的视频,在解密播放上有些技术问题
211 1
|
存储 安全 数据安全/隐私保护
产品百科 |HLS 标准加密安全播放
为了加强标准加密视频在解密播放时解密秘钥的安全性,业务方需要同时提供令牌服务和解密服务,其中令牌服务生成鉴权令牌,解密服务用于验证令牌和获取解密秘钥。
产品百科 |HLS 标准加密安全播放
|
开发框架 .NET 数据安全/隐私保护
视频点播HLS 标准加密实现 .net解密服务器搭建说明
解密服务器搭建成功了,但是访问之后出现解密失败或者无法访问加密的m3u8,可以从如下几点确认可能的原因。
视频点播HLS 标准加密实现 .net解密服务器搭建说明
|
应用服务中间件 数据安全/隐私保护 nginx
为SRS流媒体服务器添加HLS加密功能(附源码)
为SRS流媒体服务器添加HLS加密功能(附源码) 之前测试使用过nginx的HLS加密功能,会使用到一个叫做nginx-rtmp-module的插件,但此插件很久不更新了,网上搜索到一个中国制造的叫做SRS的流媒体服务器,比较活跃,而且据说这个流媒体服务器的性能和功能都强大不少,但遗憾的是没有HLS加密功能。
2789 0
|
6天前
|
SQL 安全 算法
网络防御的艺术:探索安全漏洞、加密技术与培养安全意识
【10月更文挑战第42天】在数字时代的浪潮中,网络安全已成为我们不可忽视的盾牌。本文将带您深入探索常见的网络漏洞、加密技术的奥秘以及如何提升个人和组织的安全意识。我们将通过实际案例分析,揭示黑客攻击的策略和防御方法,同时提供实用的安全建议,旨在为读者打造一道坚固的网络安全防线。
66 56
|
2天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的知识,并提供一些实用的技巧和建议,帮助读者更好地保护自己的网络安全和信息安全。
|
1天前
|
安全 算法 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在当今数字化时代,网络安全和信息安全已经成为了全球关注的焦点。随着技术的发展,网络攻击手段日益狡猾,而防范措施也必须不断更新以应对新的挑战。本文将深入探讨网络安全的常见漏洞,介绍加密技术的基本概念和应用,并强调培养良好安全意识的重要性。通过这些知识的分享,旨在提升公众对网络安全的认识,共同构建更加安全的网络环境。
|
1天前
|
SQL 安全 算法
网络安全的隐形盾牌:漏洞防御与加密技术
在数字化时代,网络安全成为保护个人隐私和公司资产不可或缺的一部分。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及提升安全意识的必要性。通过分析不同类型的网络攻击案例,我们将了解如何识别和应对这些威胁。同时,文章还将介绍基础的加密技术概念,并通过代码示例展示如何在实际中应用这些技术来保护数据。最后,讨论为何提高个人和组织的安全意识是防范网络威胁的关键。
|
3天前
|
SQL 监控 安全
网络安全的盾牌与利剑:漏洞防御与加密技术解析
在数字时代的洪流中,网络安全如同一场没有硝烟的战争。本文将深入探讨网络安全的核心议题,从网络漏洞的发现到防御策略的实施,以及加密技术的运用,揭示保护信息安全的关键所在。通过实际案例分析,我们将一窥网络攻击的手段和防御的艺术,同时提升个人与企业的安全意识,共同构筑一道坚固的数字防线。
|
4天前
|
存储 安全 网络安全
网络安全的盾牌与矛:漏洞、加密与意识的博弈
在数字时代的战场上,网络安全成了保护数据不受侵犯的关键防线。本文将深入探讨网络安全的三大支柱——漏洞挖掘、加密技术以及安全意识的重要性,并分享相关技术和策略。我们将从网络攻击者常用的漏洞入侵方式讲起,介绍如何通过有效的加密措施来加固防御,同时强调培养良好安全意识的必要性。文章旨在为读者提供一系列实用的网络安全知识,帮助他们在这场看不见硝烟的战争中,既能铸造坚不可摧的盾牌,又能磨砺锋利的矛。