基于OSS的视频安全------防盗链与防盗播

参考:阿里云视频点播内容安全保护机制

阿里云视频点播提供了完善的内容安全保护机制

访问限制和播放中心授权:用法简单,安全登记较低,对于盗链有一定的防护作用,但是无法防止盗播。
业务方二次授权:用法复杂,需要自己搭建鉴权中心,安全系数高,对盗链有很好的防护作用,但是无法防止盗播。

视频加密

阿里云视频加密:因阿里云有自己成熟的安全的体系,对于用户来说使用比较简单,但是也有使用限制,就是必须集成阿里云的播放器。
HLS标准加密:HLS标准加密可适配所有HLS播放场景,但是需要自建密钥管理和令牌颁发服务,而且需要使用支持HLS协议播放的播放器播放。

访问限制

访问限制是在云端配置视频资源的访问策略,达到基本的保护目的,主要手段有:

  • Referer访问限制:基于HTTP协议支持的Referer机制,通过Referer跟踪来源,可配置拒绝访问的Referer黑名单,或仅允许访问的白名单,参考配置 Referer防盗链。可以通过破解合法的请求抓取Referer参数,请求是通过伪造Referer达到获取资源的目的
  • User-Agent访问限制:基于HTTP协议支持的Usage-Agent请求头跟踪来源,可配置拒绝访问的User-Agent黑名单,或仅允许访问的白名单。破解方法同Referer
  • IP访问限制:根据用户请求的x-forwarded-for或真实建立连接的IP,可配置拒绝访问的IP黑名单,或只允许访问的白名单。支持IP列表和掩码方式,参考配置 IP黑/白名单。
  • 访问数限制:一定周期内,视频URL的访问次数限制、独立IP数限制
    IP黑白名单机制和访问数限制,无法实现内容分发给大量C端用户,不适合广泛的内容消费场景,且后者在阈值范围内也可能被非法访问
    以上几种方式使用比较简单但是安全系数较低,客户端使用限制多且容易伪造,可以用于一些不重要的网页图片,视频的防盗链

播放中心鉴权

播放地址若固定不变会带来持久的非法扩散传播,且无法有效遏制,视频点播提供的URL鉴权可通过生成动态的加密URL(包含权限验证、过期时效等信息)来区分合法请求,以达到保护视频资源的目的。

  • 开启URL鉴权后,点播的播放器SDK、获取播放地址的API/SDK都会自动生成带时效的播放URL;如需要自己生成鉴权的动态URL,则可参考 URL鉴权 中的 鉴权方法
  • 开启URL鉴权后,所有媒体资源,包括视频、音频、封面、截图等地址都会进行鉴权。
  • 鉴权Key的设置是以域名为粒度,且存于服务端以确保安全;支持主、备Key平滑切换,若更换主Key,可使用备Key生成播放地址,以做为更换的桥接,实现交替更新。

使用方式参考 URL鉴权。

业务方二次鉴权

播放中心鉴权使用了阿里云的默认鉴权中心,但由于没有客户业务请求信息的输入,对盗链等非法请求的判断还比较单一,使用二次鉴权会更加精准。

  • 二次鉴权是指点播CDN将用户的请求透传到客户的鉴权中心,由客户自己判定该请求是否合法,CDN根据客户的判断结果执行相应动作:允许或拒绝访问。
  • 二次鉴权需要客户自己开发和部署鉴权中心,该鉴权中心的域名如果同时在 CDN上面加速,可以按照一定规则缓存客户的鉴权结果,以减轻客户鉴权中心的压力。点播CDN会默认把用户请求的 headers 和 request_uri 透传到客户自定义的鉴权中心,并根据鉴权中心返回的结果执行相应的动作。

如业务方可将其用户的登录Cookie或UUID等信息隐藏于播放请求中,进而透传到自己的鉴权中心以判定是否为合法用户。
视频URL+Token--->CDN或OSS------>鉴权中心

二次鉴权使用门槛较高,需要客户自己开发和部署鉴权中心,而且此业务需在阿里后台另行开通*

视频加密

防盗链安全机制能有效保障用户的合法访问,但对于付费观看视频的场景,用户只需通过一次付费行为拿到视频合法的防盗链播放URL,将视频下载到本地,进而实现二次分发。因此,防盗链方案对于视频版权保护是远远不够的。视频文件一旦泄露,会给付费观看模式造成十分严重的经济损失。

阿里云视频加密是对视频数据加密,即使下载到本地,视频本身也是被加密的,无法恶意二次分发,可有效防止视频泄露和盗链问题。

阿里云视频加密

阿里云视频加密采用私有的加密算法和安全传输机制,提供云端一体的视频安全方案,核心部分包括 “加密转码” 和 “解密播放”。核心优势:

  • 每个媒体文件拥有独立的加密钥匙,能有效避免采用单一密钥时,一个密钥的泄露引起大范围的安全问题。
  • 提供信封加密机制“密文Key+明文Key”,仅密文Key入库,明文Key不落存储,所有过程只在内存中,用完即销毁。
  • 提供安全的播放器内核SDK,涵盖iOS/Android/H5/Flash多平台,自动对加密内容进行解密播放。
  • 播放器和云端使用私有加密协议进行密文传输,不传输明文Key,有效防止密钥被窃取。
  • 提供安全下载,缓存到本地的视频会再次加密,在确保无网离线播放前提下,防止视频被拷贝窃取。

注意:阿里云视频加密仅支持输出HLS格式,且只能使用阿里云播放器。

播放流程:用户请求播放视频---->业务端向阿里云请求播放凭证----->阿里播放器用播放凭证和媒体ID请求播放


加密转码 + 解密播放

使用方式参考 阿里云视频加密。

HLS标准加密

架构

HLS标准加密支持 HTTP Live Streaming 中规定的通用加密方案,使用AES-128对视频内容本身进行加密,同时能支持所有的HLS播放器,用户可选择使用自研或开源的播放器。相比私有加密方案,灵活性更好,但使用门槛更高、安全性更低:

  • 用户需搭建密钥管理服务,提供密钥生成(用于转码时对视频内容进行加密)和解密服务(用于播放时获取解密密钥),也可基于 阿里云KMS 进行封装。
  • 用户需提供令牌颁发服务,用于验证播放端的身份,避免解密密钥被非法获取,此处为关键点,处理不好会千里之堤溃于蚁穴。
  • 播放器和云端传输明文Key,容易被窃取。

使用方式参考 HLS标准加密。

商业DRM

高端的视频节目,需要满足内容提供商的安全要求,如好莱坞。阿里视频云与获得广电和好莱坞双认证的ChinaDRM服务商合作,推出国内首款云端DRM解决方案,即将开始商用,敬请期待。如有需求,可联系您的商务经理,或提交工单、联系售后咨询。

视频加密小结

  • 视频加密方案各有优劣,一般来说,越是标准、通用,灵活性越高,但安全性越低,选择哪种方案取决于自己的业务场景,有所取舍:
    • 安全等级:商业DRM ≈ 阿里云视频加密 > HLS标准加密

      阿里云视频加密安全性接近商业DRM,二者都明显高于HLS标准加密。

    • 易用性:阿里云视频加密 > HLS标准加密 > 商业DRM

      阿里云视频加密提供云端一体解决方案,只需简单配置并接入阿里云播放器即可无缝集成加密能力;HLS标准加密需自建密钥管理和令牌颁发服务;商业DRM需购买License,集成特定SDK等。

    • 通用性:HLS标准加密 > 商业DRM > 阿里云视频加密

      HLS标准加密可适配所有HLS播放场景;商业DRM只支持授权平台(如Chrome/Safari/IE/Edge浏览器,Android/iOS等);阿里云视频加密仅支持阿里云播放器(Android/iOS/H5/Flash)。

    • 使用费用:阿里云视频加密 = HLS标准加密 << 商业DRM

      阿里云视频加密和HLS标准加密都可免费使用,商业DRM需要支付额外的License费用。

安全下载(缓存)

对于视频类应用,特别是在移动端(Android/iOS),一般会有缓存、下载到本地的需求,并同时希望能进行安全保护防止被拷贝后恶意播放或传播。阿里云播放器推出的安全下载功能可以有效保护下载到本地的视频内容。

安全下载 是指将视频文件通过私钥进行二次加密,下载后在播放器SDK内部完成视频解密,保障离线视频仅能通过唯一应用(安全下载中设定的bundleID或keystore)进行安全播放的一种下载方式。主要优点:

  • 下载后视频再次播放不需要联网,可离线解密、播放,且只能由该应用播放。
  • 私钥文件加密后存储,有效防止被窃取。
  • 每个视频文件在每个应用上都有独立的私钥,即便单个泄露也不会影响其它视频。

使用时请先在点播控制台开启 安全下载,暂时只支持 Android端播放器,和 iOS端播放器。

你可能感兴趣的:(基于OSS的视频安全------防盗链与防盗播)