我们正在讨论如何建立在线视频租赁商店。除了流媒体,如果用户能够先下载电影,我们会喜欢它,然后在设备本身上存储一段时间,在这种情况下是 iOS 设备。
但是我们怎样才能做到这一点并保持保存呢?显然,我们不希望用户能够简单地从文件系统中复制文件,一旦设备越狱,这将是一项非常容易的任务。
因此需要加密或使用某种 DRM 来存储文件。但即便如此:如何确保用户不能自己解密?一旦开始播放,我们如何才能实现不解密整个文件(这将太大而无法将其存储在内存中),以便用户无法访问它。
有什么想法/解决方案吗?
欢迎来到 DRM 的世界。事实是,您无法阻止坚定的攻击者解密视频。如果用户可以看到它正在播放,他们将能够访问完整的解密视频,即使这意味着截获发送到 LCD 显示器的原始视频信号。
您唯一能做的就是通过反调试技术和加密使其变得更加困难。
您需要征得提供视频文件的内容所有者的同意 - 通常他们需要预先认证的 DRM,例如 PlayReady (Microsoft) WideVine (Google) 或 Verimatrix。
在某些时候,必须在设备上解密文件才能播放。聪明的逆向工程师会找出如何在该点之后设置断点并复制文件。这就是大多数 DRM 被破坏的方式,这只是找出如何在正确的点执行应用程序的问题。
您最好的选择是在您的代码中构建尽可能多的反调试功能和/或在没有本地存储的情况下对其进行流式传输。这两种选择都不是完美的,随着时间的推移可能会被击败,但它至少会减慢大多数选择的速度。