【问题标题】:How to secure HLS videos, with AES 128如何使用 AES 128 保护 HLS 视频
【发布时间】:2017-01-09 08:46:23
【问题描述】:

我必须使用 Http Live Streaming 从服务器为移动设备流式传输视频。 该文件包含 .m3u8,其中列出了 .ts 文件。那么如何保护此文件以仅访问授权用户。

【问题讨论】:

    标签: php ios web-services encryption http-live-streaming


    【解决方案1】:

    基本上,您可以使用 AES-128 加密每个块。 AES-128 使用 128 位密钥、密码块链接 (CBC) 和 PKCS7 填充使用 AES 加密整个块。 CBC 将使用初始化向量 (IV) 重新启动每个段。

    您可以使用 ffmpeg 创建一个包含以下内容的密钥文件:

    Key URI
    Path to Key File
    IV (optional)
    

    您可以使用 openssl 创建密钥:

    openssl rand 16 > video1.key
    

    该文件将包含以下内容:

    http://my-server.com/video1.key
    video1.key
    

    然后通过提供密钥文件的路径来使用ffmpeg:

    ffmpeg -i input.mp4 -hls_time 6 -hls_key_info_file keyFile playlist.m3u8
    

    这将创建分段和清单,其中应包含 #EXT-X-KEY:METHOD=AES-128,URI 属性。

    #EXT-X-KEY:METHOD=AES-128,URI="http://my-server.com/video1.key"
    

    【讨论】:

    • 请注意,如果很容易获取密钥文件,这并不是特别安全,例如HTTP GET my-server.com/video1.key。研究 DRM 以获得更好的安全性。
    • 任何想法如何保护密钥文件?避免 HTTP GET my-server.com/video1.key ?
    • @PeterTseng 你好,你能解释一下 DRM 吗?
    • 一般来说,DRM 会保护密钥,直到它到达客户端设备上的内容解密模块,即理论上其他程序无法访问它。主要的 DRM 选项是 FairPlay、Widevine 和 PlayReady。通常,您根据要支持的设备进行选择。实施很复杂,因此公司通常会为处理 DRM 的服务付费。
    【解决方案2】:

    我已经实现了类似的模块,使用 AES-128 加密保护 .ts 文件并在服务器上对其进行解密。希望这会有所帮助:

    https://stackoverflow.com/a/43446800/2429443

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2013-04-09
      • 1970-01-01
      • 2016-03-29
      • 2013-04-14
      • 2020-04-05
      相关资源
      最近更新 更多