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

时间:2011-10-02 07:57:54

标签: android public-key-encryption drm android-mediaplayer

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

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

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

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

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

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

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

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

更新

在我的问题的背景下,我发现了这个问题并且它的更新很有趣:Streaming to the Android MediaPlayer

2 个答案:

答案 0 :(得分:10)

  

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

如果通过“安全”,则表示“完全”,则不是。请参阅Analog hole

  

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

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

  

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

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

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

答案 1 :(得分:0)

我认为没有一种解决方案可以保护应用中的媒体内容免遭剽窃。 DRM当然不适合常规开发人员。我也没有看到为什么公钥可以提供帮助。