HLS-M3U8流媒体视频加密KEY介绍以及平台案例!

Posted 上官兮唐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HLS-M3U8流媒体视频加密KEY介绍以及平台案例!相关的知识,希望对你有一定的参考价值。

首先介绍M3U8(M3U)

M3U8其实是 HTTP Live Streaming(缩写为 HLS) 协议的部分内容,而 HLS (HTTP Live Streaming)是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括m3u(8)的索引文件,TS媒体分片文件和key加密串文件。

M3U8文件内链接地址又分为绝对地址与相对地址,绝对地址即完整地址,相对地址依赖当前文件目录地址!媒体分片文件与key加密串文件有N多种,例如常见码流分片格式ts、m4s、bbts、mp4等,常见key加密串:key文件、网址、明文,同时部分key对应有IV值,增加加密强度!

以M3U8文件加密Ts码流分片为例:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-ALLOWCACHE:1
#EXT-X-KEY:METHOD=AES-128,URI="域名/e775250b62/4/e775250b62d01c179fb6370ae3759a34_1.key",IV=0x864267cc19f34ec1066e016e0da856ee
#EXTINF:10.000000,
https://域名/e775250b62/0/1234567890123/4/75/9a/34_1/e775250b62d01c179fb6370ae3759a34_1_0.ts?pid=1668781305998X1650713&device=desktop

其中#EXT-X-KEY:METHOD=AES-128,表示TS加密类型为AES-128,其中加密参数链接为”域名/e775250b62/4/e775250b62d01c179fb6370ae3759a34_1.key”,对应IV为"0x864267cc19f34ec1066e016e0da856ee"
一般加密为JS混淆或wasm,通过上面M3U8文件内加密KEY参数进行逆向解密得到base64 key:vTXHSbdTixwRuG6ydfoD3A==

加密算法模式:

  ECB: 电码本模式(Electronic Codebook Book)
   CBC: 密码分组链接模式(Cipher Block Chaining)
   CTR: 计算器模式(Counter)
   CFB: 密码反馈模式(Cipher FeedBack)
   OFB: 输出反馈模式(Output FeedBack)

AES的工作模式体现在把明文块加密成密文块的过程中!

AES填充方式:

1.NoPadding
2.PKCS7Padding
3.ZeroPadding
4.AnsiX923
5.Iso10126
6.Iso97971

AES明文块拆分的长度固定为128bit,当一段长度不足128bit,或者超过128bit,但不是其倍数时,就没法把明文按128bit长度分成等长的明文块,这时候就需要对明文块进行填充,将其补齐为128bit!


常见M3U8数字版权保护加密:

普通JS混淆、Wasm、Apple  FairPlay Drm、优酷 Copyright DRM、Marlin DRM、爱奇艺BBTS、Google widevine、vdocipher drm等等。。。

Apple  FairPlay Drm:#EXT-X-KEY:METHOD=SAMPLE-AES,URI="skd://5652421",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"

保利威 Drm:#EXT-X-KEY:METHOD=AES-128,URI="网址/e775250b62/4/e775250b62d01c179fb6370ae3759a34_1.key",IV=0x864267cc19f34ec1066e016e0da856ee

气球云 Drm:#EXT-X-KEY:METHOD=AES-128,URI="网址/sdk_api/video/hls_clef/sd?resNo=2c531c09106e46469dd0ac6d00ab9d6a&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsZXZlbCI6InNkIiwicGxheUF1ZGlvIjpudWxsLCJubyI6IjJjNTMxYzA5MTA2ZTQ2NDY5ZGQwYWM2ZDAwYWI5ZDZhIiwianRpIjoiNmE0MTJkNWUtYzRhMC00MSIsInRpbWVzIjoxLCJleHAiOjE2Njg3OTIwNjcsImVuY3J5cHQiOjMsIm5hdGl2ZSI6MCwiaGxzQ2xlZkVuY3J5cHRWZXJzaW9uIjozfQ.I37KD6P3AbmUVzTZT9UWPdt49MZ9KCNozZVIwJ7aevU&ssl=1",IV=0xfe99ec584abfaae7ec901b2820b162b5

阿里云 Drm:#EXT-X-KEY:MEATHOD=AES-128,URI="Njk2NTAzZGEtOGMxZS00NjJkLWI5NTItMGQ3M2M4MDQzMjU5dW9wdlFNVGVxekxvTkJKOEhCQTVUa2REd0MvN3U1ZEJBQUFBQUFBQUFBQS9WcTJ2dTZXbGd4RkQwZEZYa3FCd2Q3Q1FjS1VHZEl0ZDF1YjdFVDRLQUZGMHlncDM2cVBF"

腾讯视频 Google Widevine Drm:#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,URI="data:text/plain;base64,AAAANnBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABYaB3RlbmNlbnQiC3owMDMyMWd1YmNq",KEYID=0x02DF301A8F3051D172B3695532391EA7,KEYFORMATVERSIONS="1",KEYFORMAT="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"


本文不讨论解密key,仅做学习研究,禁止任何违反法律与道德的行为!欢迎各位大佬交流指点~
 

大厂音视频职位内推--百度智能云

百度智能云视联网平台C++高级研发工程师

工作职责:

  • 负责百度视频云智能视联网平台EVS平台开发、架构优化;
  • 负责百度视频云智能视联网平台流媒体服务和音视频转码开发、性能优化;
  • 负责百度视频云智能视联网平台安防视频监控通用协议接入、优化、私有协议开发;
  • 能够根据开发经验,改进技术框架、规范开发模式、进行技术积累;
  • 能够对客户需求场景进行技术拆解、方案制定、输出交付;

职责要求:

  • 计算机或相关专业本科以上学历;
  • 具有3年以上软件开发经验,2年以上音视频处理、直播或者视频监控系统开发经验;
  • 熟悉RTP/RTMP/RTSP/FLV/HLS等流媒体传输协议
  • 熟悉SIP、GB28181、ONVIF等视频监控协议开发;
  • 熟练掌握C/C++语言,熟悉网络编程、多线程编程技术,有分布式系统开发和设计经验
  • 熟练掌握Linux/UNIX,了解基本的shell编程;
  • 具备优秀的逻辑思维能力,对解决挑战性问题充满热情,善于解决问题和分析问题;
  • 有强烈的上进心和求知欲,善于学习新事物,渴望用技术改变未来;
  • 良好的团队合作精神,较强的沟通能力和学习能力;

优先:

  • 具有直播、流媒体处理、音视频转码等相关工作经验者优先;
  • 具有音视频会议、视频监控产品平台开发经验者优先;
  • 熟悉视频图像

以上是关于HLS-M3U8流媒体视频加密KEY介绍以及平台案例!的主要内容,如果未能解决你的问题,请参考以下文章

m3u8格式转换mp4

关于m3u8格式的视频文件ts转mp4下载和key加密问题

FFMPEG 流媒体协议

uc文件m3u8里边有k0怎么办 uc文件怎么转换视频

.ts视频采用m3u8方式,已知是 AES-128 为加密方式,求教

m3u8在线提取工具:M3U8 Downloader 高速专业m3u8下载器下载