【问题标题】:Android cast playing a video with custom encryptionAndroid cast 使用自定义加密播放视频
【发布时间】:2019-08-12 01:04:20
【问题描述】:

我有一个播放一些视频内容的安卓应用。该视频是 mp4,带有一些简单的自定义加密。 在android中,播放器(ExoPlayer)在播放时实时解密视频。

它使用这样的代码:

// overriding the function that reads the video file to insert the decryption
public int read(byte[] buffer, int offset, int readLength) throws FileDataSourceException {
        // ...
        // buffer[] holds the video bits, decrypt them here
        buffer[offset] = (byte)(buffer[offset] ^ 1234);

        // ...
    }
}

我现在想添加对 Chrome cast 的支持 - 以便能够将视频从手机流式传输到电视。

但是查看 api 我看不到实现解密算法的方法。 据我所知,它支持未加密的视频或具有某些标准 DRM 的视频。

是否可以实现自定义加密,类似于上面的代码?

【问题讨论】:

  • 如果您正在寻找 Chromecast 支持的 DRM,有一篇关于 ChocoTv 上 DRM 加密支持的可用博文。这将使 Chromecast 支持 Android 平台的 HLS AES-128 加密。查看此site 了解更多详情。
  • @jess 谢谢,我去看看。我希望避免使用标准的加密/drm 算法,并使用上面代码所示的简单方法(我刚刚添加了它)。但看起来我可能需要走这条路。
  • 如果您正在寻找真正的安全性,除非您拥有数学博士学位,否则请放弃自己编写任何东西的想法。编写有效的加密机制的难度是巨大的。
  • @GabeSechan 实际上实现像 XOR 加密这样简单的东西非常容易,它可以防御 99% 的攻击者。剩下的 1% 会破坏它,但它们也会破坏您的 DRM 加密,因此在许多情况下,不值得花时间和精力。
  • 不,不是。虽然如果不重复使用 otp 是牢不可破的,但您将不断重复使用它,您甚至不会考虑密钥交换。你实际上并没有给它任何真正的安全性,只是它的外表。而且,如果您认为有人在 NSA 之外破坏 aes,那您就疯了。只需使用现有的算法和库(以尽量减少担心旁道攻击的机会)

标签: android chromecast drm


【解决方案1】:

新的 CAF 框架提供了三种不同的选项:

  • 风格化媒体接收器
  • 自定义接收器
  • 默认媒体接收器

唯一支持 DRM 的是自定义接收器,正如您所说,它是为标准 DRM 设计的。

但是它应该支持 CENC 清除密钥,这可能足以满足您的需求,并且可以让您避免使用 DRM 服务。

CENC 明文密钥顾名思义就是明文密钥。它不是很安全,但对你来说可能是一个足够的“障碍”(本质上是大多数安全系统)。

【讨论】:

  • CENC 听起来是个不错的选择,我会更深入地研究它。谢谢!
猜你喜欢
  • 2022-01-21
  • 2014-09-23
  • 2012-04-02
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
  • 2013-03-28
  • 2020-10-15
相关资源
最近更新 更多