如何保护Android上的媒体内容(视频,音频)不被保存/重新分发?

Mat*_*adt 14 android drm public-key-encryption android-mediaplayer

常规应用程序开发人员有什么机会(我的意思是,你不是一个百万美元的内容制作公司或分销渠道提供商,而是一个普通的小型应用程序开发公司)来保护应用程序的视频/音频内容不被保存/分散式.我提到了"常规开发者",因为我在Android核心代码中已经看到索尼在DRM包中添加了一些代码部分.让我们假设我们与谷歌谈论将其包含在核心代码中并不是那么强大.

是否有任何真正安全的方法来保护Android上的视频/音频(作为应用程序的一部分).

假设(如果我错了,请纠正我):

  • 设备可以由用户植根,需要注意这一点
  • 检测设备是否已植根(在应用程序内)在Android上是不可能的,因为超级用户基本上可以伪装设备的任何状态.
  • 我们无法修改任何硬件或用户的系统(意思是:我们不会将我们的应用产品与设备捆绑在一起,该应用应该可以作为App Market上的"常规"应用下载)
  • 媒体文件/流可以在设备本地,也可以从服务器远程传输,两者都可以

我已经研究过这个主题了很多,搜索了很多,希望在这里完成所有相关的问题,我已经和一个DRM提供商(这是一个很小的公司或自由开发者很难联系,或至少获得一些真实的相关信息,技术文档和细节).

我将DRM视为一种方法,但"默默无闻"似乎并不是一种非常好的方法.此外,我还没有为常规开发人员找到任何信息或真正的解决方案/ API.

公钥加密是另一个想法,但在哪里真正安全地存储私钥?此外,我假设在这种情况下,需要重写整个媒体框架和播放器,以便将安全视频流传递给播放器.还是我弄错了?

我希望得到该领域其他经验丰富的开发人员的一些意见,因为很难在任何地方找到有关Android媒体内容保护的信息.

更新:

在我的问题的上下文中,我发现了这个问题并且它的更新很有趣:流式传输到Android MediaPlayer

L̲̳*_*̲̳̳ 10

是否有任何真正安全的方法来保护Android上的视频/音频(作为应用程序的一部分).

如果通过"安全",你的意思是"全面",那么没有.请参见模拟孔.

在Android上检测设备是否已植根(在应用内)是不可能的

也不可能在任何地方.宇宙定律使得无法检测出这样的东西,(好吧,也许你可以为此利用量子物理学,但即便如此我也不确定)你只能添加代码来检测已知技术,所有这些都是微不足道的绕过

公钥加密是另一个想法,但在哪里真正安全地存储私钥?

没有地方可以安全地存放它.考虑一下,你想要加密内容并给用户解密它的密钥(所以他可以看到它),但你不希望他能够解密它(所以他不能复制它).这是一个矛盾.

您可以做的最多是加密您的流,以防止用户只能拦截它并使用它.然后混淆解码/播放流的代码.虽然通过实施可能会引入更多错误(以及更差的性能),但会使合法用户的体验变得更糟.如果决定不使用自己的混淆,并使用某些大公司已经提供的一些自动混淆器产品,那么它已经普遍破解了,对于那些几乎不知道他在做什么的人来说,在一个小的产品中破解你的产品将非常容易多少时间.只要您的产品变得非常受欢迎,一个人就会破解它并将所有视频上传到torrent,然后每个人都可以在不做任何工作的情况下盗版您的产品.