AES 内容保护
Posted
技术标签:
【中文标题】AES 内容保护【英文标题】:AES Content Protection 【发布时间】:2017-08-27 20:13:23 【问题描述】:我想要将文件 m3u8 从 Wowza Streaming 流式传输到 jwPlayer。我也想让视频无法阅读或下载,我在链接中阅读: https://support.jwplayer.com/customer/portal/articles/1430261-aes-content-protection 关注链接:
var playerInstance = jwplayer("myElement");
playerInstance.setup(
file: 'sample_aes_stream.m3u8',
aestoken: 'EXAMPLE_AES_TOKEN'
);
我使用 AES 解密将我的视频 (.mp4) 加密为 index.m3u8,其中包含许多段文件 (.ts)。文件 m3u8 仅在有密钥文件时读取。但是在下面的演示中,我不明白
jwplayer("myElement").setup(
file: 'sample_aes_stream.m3u8',
aestoken: 'EXAMPLE_AES_TOKEN'
);
EXAMPLE_AES_TOKEN 是什么??? 关注链接:http://iphim.vn/xem-phim-phut-giay-sinh-tu-3136.html 您可以看到我无法使用 IDM(互联网下载管理器)下载视频。我想做但是不知道怎么做。请帮帮我!
【问题讨论】:
【参考方案1】:EXAMPLE_AES_TOKEN 是什么???
是解密视频内容的关键
请确保您的 JWPlayer 支持 HLS-AES128 加密
企业版能够解密流段 使用 AES-128 加密。使用加密时,m3u8 播放列表 文件需要引用对应的密钥文件,这样JW 玩家可以检索密钥进行解密。使用 aestoken 配置,播放器也可以传递一个token到key请求 URI,增强 AES 的安全性。
在 wowza 流媒体上,尝试How to secure Apple HTTP Live Streaming (AES-128 - external method)
-
您需要在 Wowza 进行配置。设置 Key 对视频进行编码。
提供密钥以解密视频内容的密钥网址
例如。如果我们在 Wowza 定义 key 是“PATRICKZ-KEY”。我们需要在 Key URL 处使用 same key
<?php
header('Content-Type: binary/octet-stream');
header('Pragma: no-cache');
echo hex2bin('PATRICKZ-KEY');
?>
【讨论】:
【参考方案2】:属性 aestoken 实际上是一个令牌。它不是解密视频的关键。 HLS 视频可以在其主播放列表中包含一个带有 url 的标签,您可以在其中获取 aes 密钥。例如,对于像
这样的主播放列表#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-VERSION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:10,
#EXT-X-KEY:METHOD=AES-128,URI="http://keyserver.com/key.enc",IV=0x1c341b1db8ff5399501511a99c8c7d14**
fileSequence0.ts
#EXTINF:10,
fileSequence1.ts
#EXT-X-ENDLIST
带有#EXT-X-KEY标签的行保存了处理aes解密的数据,包括密钥的url。
问题是 url 指出的资源应该受到某种东西的保护……在大多数情况下是一个令牌(通常是一个 JWT)。因此,jwplayer 将对该 url 发出一个 get 请求,附加一个带有键“token”且值等于属性“aestoken”值的查询参数。
所以,如果你的设置是
jwplayer("myElement").setup(
file: 'sample_aes_stream.m3u8',
aestoken: 'EXAMPLE_AES_TOKEN'
);
然后使用上面的示例播放列表,您的 jwplayer 将执行表单的获取请求
http://keyserver.com/key.enc?token=EXAMPLE_AES_TOKEN
获取加密密钥。此外,该查询参数在 jwplayer 的以下请求中传递。
看看https://developer.jwplayer.com/jwplayer/docs/jw8-enable-aes-decryption。
【讨论】:
以上是关于AES 内容保护的主要内容,如果未能解决你的问题,请参考以下文章