如何在 Android 中存储媒体 DRM 密钥以供离线使用

Posted

技术标签:

【中文标题】如何在 Android 中存储媒体 DRM 密钥以供离线使用【英文标题】:How to store media DRM keys for offline usage in Android 【发布时间】:2019-07-05 11:39:17 【问题描述】:

想检查是否有任何由 android 提供的 API 可用于安全地存储 DRM 密钥。

我们正在使用 OfflineLicenseHelper 下载 DRM 密钥,以便离线使用 drm 媒体资产。但我们关心的是如何安全地存储密钥。

任何指针将不胜感激。

【问题讨论】:

【参考方案1】:

假设您使用的是标准 DRM 解决方案,如果它在 Android 上很可能是 Widevine,那么您不必担心自己安全地存储密钥,因为这是 DRM 系统提供的功能的一部分。

DRM 系统将安全地存储密钥,并在您请求播放时将其提供给设备中的安全媒体路径。

【讨论】:

谢谢@Mick。您能否详细说明哪些 api 安全地存储了密钥。我们正在使用 OfflineLicenseHelper 类来下载许可证。 DRM 许可证包含内容加密密钥和与之关联的规则,包括其有效时间。所有这些都在服务器端的 DRM 许可证中加密,并传递到客户端上的 DRM 系统,该系统存储它并且应该是客户端上唯一能够解密许可证的实体。所以换句话说,存储是作为 DRM 系统本身的一部分发生的。

以上是关于如何在 Android 中存储媒体 DRM 密钥以供离线使用的主要内容,如果未能解决你的问题,请参考以下文章

使用 MediaDrm 在 android 中解密受 Widevine DRM 保护的视频

如何将破折号 DRM 许可证添加到 m3u 播放列表?

带有 DRM 密钥轮换的 YouTube 流只能播放 2 分钟

Google Widevine DRM 密钥轮换

如何在android webview中播放widevine drm内容

如何在android中存储硬编码的加密主密钥?