Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中保护媒体内容不被复制或重新分发_Android_Security_Streaming_Media_Drm - Fatal编程技术网

在Android中保护媒体内容不被复制或重新分发

在Android中保护媒体内容不被复制或重新分发,android,security,streaming,media,drm,Android,Security,Streaming,Media,Drm,我想 i) 将媒体内容流到android设备 ii)从android设备的SD卡读取媒体内容 但是媒体内容应该是安全的。任何其他用户都不能在任何其他设备上访问媒体文件 我想到了一些解决办法: 1) 数字版权管理中的数字版权管理(我无法得出更好的结论) 2) 加密解密(就性能而言,这似乎非常昂贵) 任何人都可以提出一些关于如何继续进行问题陈述的想法,或者一些关于同一问题的开源示例 感谢并问候我可以给你一个提示,因为我没有使用加密媒体: Android支持HTTP直播() HTTP直播支持加密()

我想
i) 将媒体内容流到android设备
ii)从android设备的SD卡读取媒体内容

但是媒体内容应该是安全的。任何其他用户都不能在任何其他设备上访问媒体文件

我想到了一些解决办法: 1) 数字版权管理中的数字版权管理(我无法得出更好的结论) 2) 加密解密(就性能而言,这似乎非常昂贵)

任何人都可以提出一些关于如何继续进行问题陈述的想法,或者一些关于同一问题的开源示例


感谢并问候

我可以给你一个提示,因为我没有使用加密媒体:

  • Android支持HTTP直播()
  • HTTP直播支持加密()
也许这是一种有趣的探索方式

埃塞纳里奥#1。将媒体内容流式传输到android设备:您只需要在streamer端安装一个HTTP服务器,为加密的媒体提供服务,并将其提供给客户端。例如,Nginx和Apache都支持HTTP直播

埃斯克纳里奥#2。从android设备的SD卡读取媒体内容。您需要在应用程序中实现HTTP服务器


在这两种情况下,介质都是加密存储的。唯一的问题是用户捕获屏幕。

我知道Android上有两种可用的DRM技术—Microsoft PlayReady和Google Widevine

DRM技术包括一个客户端组件(DRM引擎),旨在保护内容不被设备用户自由访问-DRM引擎只允许在本地设备上播放,不提供对媒体数据的任何其他访问

我没有关于Android DRM引擎是否可以防止屏幕捕获的信息。PlayReady可能无法做到,因为它是一个应用程序插件,但Widevine可能能够做到这一点,因为它内置于操作系统中

现在,您需要了解,DRM不能控制谁可以播放媒体。但是,它确实能够在您自己的服务器端逻辑中确定这一点。这假设您有某种方法来区分用户,即知道谁可以玩,谁不可以玩

其工作原理是,为了播放受DRM保护的视频,DRM引擎必须从许可证服务器获取许可证。许可证服务器可以根据自定义业务逻辑(例如登录的用户会话)决定是否授予许可证

受DRM保护的文件是加密的,只有在DRM引擎拥有许可证时才可读取


显然,还有成本问题——这些能力不是免费的。使用DRM技术通常需要各种订阅费,大致范围为每月数百或数千欧元/美元。如果这是在您的预算中,DRM可能是您的一个有效选项。

HI,谢谢您的回答。但是考虑一个场景。用户可以使用屏幕捕获应用程序或其他东西捕获屏幕。此外,SD卡的媒体内容也需要安全。如果任何用户将文件复制到他的设备中,他就不能玩T。