video - 保护 Flash 视频不被下载/权利保护

标签 video streaming drm copy-protection

是否可以保护 flv 文件不被下载?我想保护我的文件不被下载,但我没有钱购买我认为可以提供某种保护的流媒体服务器。这些文件通过 PHP 流式传输,位于我服务器上的上传文件夹中。

我已经使用 PHP 来确保只有订阅者才能观看视频,但我基本上想更进一步,阻止订阅者在登录后使用 Sothink Flv Downloader for Firefox 下载器下载我的视频。

最佳答案

我完全同意其他答案的DRM共识。但想补充...

有几个 obfuscation 可能满足您需求的技术。 “足够好”,正如他们所说。这些不是完整的证明机制,但可以很好地防止 80%-99% 的人试图复制您的 FLV 流/文件。敬业的黑客会掌握它,但大多数人只是脚本小子(或他们喜欢 FireFox 插件的亲戚)。另外,其中一些技术非常简单:

  • 更改/删除服务器响应的 MIME 类型。无论如何,Flash 播放器都乐于忽略它。例如:图片/jpeg
  • 将文件扩展名从 .flv 更改为其他名称,例如 .jpg。同样,无论如何,Flash 播放器都乐于忽略它。此外,一旦文件保存到磁盘,非 FLV 播放器将打开它(并提示它是一种无效的文件格式。)
  • 为所有 FLV 内容设置积极的“不缓存” header 。 (这自然意味着消耗更多的流量和带宽。也许这对您来说不是问题?)
  • 通过基于 UDP 的协议(protocol)流式传输(如 RTSP)。虽然我的读物是 UDP 协议(protocol)正在淘汰大规模点播内容流,但要复制它要困难得多。例如:Real Downloader 目前无法窃取这些流。
  • 将内容分成两个或多个部分内容,然后连续播放。
  • 将您的 FLV 内容隐藏在一种简单的自定义一次性身份验证机制之后
    • 玩家请求内容A的授权 key
    • 服务器返回一个 authorization1 key :SHA1(内容 key + salt1)
    • 服务器存储内容 key 、authorization1 key 、authorization2 key (即 SHA1(authorization1 + 盐2))
      • 一次性使用
      • 有限的有效期(例如:2 秒)
    • 玩家创建authorization2
    • 玩家通过authorization2请求内容a
    • 服务器发送“FLV”内容给客户端当且仅当
      • 授权 key 与服务器端存储中的内容 key 匹配
      • 授权 key 未过期

我实际上已经实现了最后一个想法,授权机制,我自己可以保证它的实际有效性。不,它并不完全安全。但它已经足够好了。即使是高级用户也无法击败它。

打败它需要

  1. 对过程进行逆向工程,
  2. 反编译您的 Flash 播放器,
  3. 重新组合起来。

足够好。


令人惊奇的是,这篇文章根据“简单、自定义的一次性身份验证机制” 建议生成了多少“请给我发送 teh codez” 封电子邮件。别打扰,我不能——这是我雇主的专有项目,xtendx AG .如果有兴趣购买该系统,请发送电子邮件至 sales@xtendx.com。

关于video - 保护 Flash 视频不被下载/权利保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/300749/

相关文章:

找不到用于 FFmpeg 转码的 x264 编解码器设备

javascript - 大视频 : How to Hide Control Options Under Video

.net - 如何从 Azure 媒体服务 DRM 获取许可证 URL

java - 在 JavaFx 中从输入流播放 mp3 文件

java虚拟机——它是如何分配资源的?

iphone - 如何检测 MPMediaItem 是否代表 iOS 上受 DRM 保护的音轨

drm - 如何在 .mp3/.wav 文件上应用 DRM

java - 媒体使用哪个框架

c - 在 C/Linux 中显示不断更新的图像的简便方法

c# - 在 iOS 上录制实时音频流