加密/解密HTTP Live Streaming的部分文件

时间:2013-04-28 10:08:12

标签: ios aes http-live-streaming drm playready

是否可以使用PlayReady和AES-128等行业标准加密技术加密/解密HTTP Live Streaming文件的较小片段?

我不知道iOS中默认的HLS实现如何与AES-128加密一起工作 - 即它是否仍能逐步下载部分段(TS)和流文件?或者它是否必须下载完整文件,解密整个内容然后才开始播放?

在我接触过的一些PlayReady客户端中,我观察到了后一种方法(先完全下载)。但它似乎是对播放延迟的一种可怕的妥协,以获得安全性(也许没有办法解决它)。

关于这个问题的一些启示会非常有帮助。谢谢!


P.S:参考技术文档或手册会很棒!

1 个答案:

答案 0 :(得分:1)

AES使用块大小为128位的块密码。因此,如果解密程序知道密钥和IV,它可以从第一个块返回明文 - 没有理由首先解密整个段/片段。

我猜你看到的PlayReady实现只是在文件基础上实现它,因为它稍微容易实现。但是,在启动解密之前,客户端无需检索整个文件的技术原因。

您可以通过使片段/片段非常大并检查客户端行为来验证客户端正在做什么。

快速搜索发现我这个项目正在解密HLS,因为它读取: https://code.google.com/p/mlbtv-hls-nexdef/source/browse/trunk/mlb.c