1

伙计们。我相信社区会将此视为一个相关问题。如果没有,我很抱歉,mods,请关闭。

我正在为客户开发一个带有静态内容的视频播放应用程序。我的客户希望我实施一些基本的安全措施,以阻止有人解包已部署的应用程序(适用于 Android)并简单地复制 MPEG。我的客户已将基本保护作为一项关键要求,他正在支付账单:)

这些文件太大而无法即时解密,所以我正在考虑以下方法。我欢迎有关替代方案的想法和建议。我知道支持和反对通过默默无闻的复制保护方案和安全性的论点,我提出的方法使用了这些论点,我的问题不是“我应该吗?”。

从 MPG 标头的某处获取一个字节块,例如 256。用随机值替换这些字节,这样 MPEG 将无法播放而无需花费大量精力来修复它。将原始 256 字节存储在其中一个应用程序位图中,以便位图仍能正确显示。播放视频时,通过字节流读取它,并将字节替换为其原始值,然后再将它们传递给输出流。

总之:

  1. 从 MPEG 的标头中提取 256 个字节
  2. 将这些字节存储在位图中
  3. 随机化原始字节中的值
  4. 在运行时,从位图中读回 256 个字节
  5. 使用字节数组缓冲区通过输入流读取 MPEG
  6. 用原始值替换随机字节
  7. 将输入流式传输到作为视频播放器输入的输出流。

我确实知道至少有两种方法可以解决这个问题,逆向工程和屏幕抓取,但重点是防止普通小偷不费吹灰之力地复制我的客户内容。

想的人?

谢谢

4

1 回答 1

0

我建议对整个流使用加密/解密方案:

  1. 实时视频流解密是处理这个问题的标准方法。与实际的视频解码相比,它的处理开销可以忽略不计。例如,每个DVD播放器都支持CSS加密方案。

    虽然使用 Java 确实施加了一些限制,例如无法有效利用各种特定于 CPU 的指令,但您应该能够找到一种不太昂贵的解密算法。我建议在拒绝流加密算法之前对您的应用程序进行分析。

  2. 修改标题确实会使一些视频文件难以阅读,但远非不可能。一些文件具有冗余信息,而另一些文件实际上是直接连接的结果,这将使任何后续段都可读。一些流式视频编解码器实际上会插入足够的元数据以每隔几秒重建一次流。并且有很多视频格式。

    换句话说,无法保证从文件开头删除任意数量的字节会使其不可读。我还认为,对您的客户施加一系列限制他们可以使用的视频格式是不合理的,并且会限制您的应用程序未来的有用性。

于 2012-04-06T08:47:39.903 回答