安全播放器

您所在的位置:网站首页 在线视频加密平台 安全播放器

安全播放器

2023-10-02 22:28| 来源: 网络整理| 查看: 265

如何保障视频内容的安全,不被盗链、非法下载和传播,阿里云视频点播已经有一套完善的机制保障视频的安全播放。

基本介绍 视频内容安全播放机制,如下图所示。安全播放器说明

那么在播放器中支持哪一些安全播放的机制呢?

更多信息参考:视频安全解决方案。

Referer访问控制介绍 基于 HTTP 协议支持的 Referer机制,通过 Referer跟踪来源,对来源进行识别和判断,用户可配置访问的 Referer 黑、白名单(二者互斥)来限制视频资源被访问的情况。 阿里云控制台支持黑名单和白名单两种模式,访客对资源发起请求后,请求到达CDN 节点,节点会根据用户预设的防盗链黑名单或白名单进行过滤,符合规则可顺利请求到视频数据;若不符合,请求会被拒绝,并返回403响应码。 配置后会自动添加泛域名支持,例如填写example.com,最终配置生效的是*.example.com,所有子级域名都会生效。 由于移动端一般拿不到Referer,当前默认支持空Referer访问,可选择关闭。 控制台配置页面如下图所示。控制台配置 播放器Referer接口

阿里云播放器提供了Referer的设置。

比如:控制台设置的白名单为:aliyun.com 。 那么使用如下: Android AliPlayer player = AliPlayerFactory.createAliPlayer(context); .... //获取播放器参数 PlayerConfig config = player.getConfig(); //设置referrer。注意:加上http(s)://的协议头 config.mReferrer = "http://aliyun.com"; //设置回播放器 player.setConfig(config);

那么这样才能播放视频。如果黑名单是aliyun.com,则如上设置不能播放视频。

iOS //获取播放器参数 AVPConfig* config = [self.player getConfig]; //设置referrer。注意:加上http(s)://的协议头 config.referer = @"http://aliyun.com"; //设置回播放器 [self.player setConfig:config]; [self.player setStsSource:self.stsSource]; [self.player prepare]; 视频加密播放介绍

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

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

阿里云私有加密 阿里云视频加密采用私有的加密算法和安全传输机制,提供云端一体的视频安全方案,核心部分包括加密转码 和解密播放 。阿里云私有加密流程如下图所示。阿里云私有加密

如何播放私有加密?

阿里云播放器将内部解密逻辑、服务端交互逻辑都封装到了SDK内部,对用户无感知。播放加密视频和普通方式没有区别,不用做多余属性的设置,只需要通过videoId的播放方式集成播放器播放视频即可。所以用户只需要配置加密转码即可,用户可以零成本使用加密播放。

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

更多信息参考 阿里云-视频加密。

HLS标准加密 HLS标准加密支持 HTTP Live Streaming 中规定的通用加密方案,使用AES-128对视频内容本身进行加密,同时能支持所有的HLS播放器,用户可选择使用自研或开源的播放器。相比私有加密方案,灵活性更好,但使用门槛更高、安全性更低。HLS标准加密流程如下图所示。HLS标准加密流程 用户需搭建密钥管理服务,提供密钥生成(用于转码时对视频内容进行加密)和解密服务(用于播放时获取解密密钥),也可基于阿里云KMS 进行封装。 用户需提供令牌颁发服务,用于验证播放端的身份,避免解密密钥被非法获取,此处为关键点,处理不好会千里之堤溃于蚁穴。 播放器和云端传输明文Key,容易被窃取。

具体可以参考HLS标准加密流程。

如何播放HLS标准加密?

阿里云播放器支持用户令牌传递,阿里CDN会动态修改m3u8文件中的解密URI,解密URI中会带上用户的令牌,业务方可以对令牌进行验证。比如:控制key的时效性。

通过STS、PlayAuth和MPS设置HlsUriToken的方法如下: STS设置HlsUriToken Android使用方式 通过VidSts播放源来设置playConfig,playConfig中携带mtsHlsUriToken参数。 VidSts vidsts = new VidSts(); VidPlayerConfigGen playerConfig = new VidPlayerConfigGen(); //设置用户令牌 playerConfig.setMtsHlsUriToken("用户令牌"); vidsts.setPlayConfig(playerConfig); iOS使用方式 通过AVPVidStsSource播放来设置playConfig,playConfig中携带mtsHlsUriToken参数。 - (instancetype)initWithVid:(NSString *)vid accessKeyId:(NSString *)accessKeyId accessKeySecret:(NSString *)accessKeySecret securityToken:(NSString *)securityToken region:(NSString *)region playConfig:(NSString *)playConfig; - (void)setStsSource:(AVPVidStsSource*)source; 如何生成playConfig参数?SDK中提供了一个类:VidPlayerConfigGenerator,通过这个类的setHlsUriToken来设置令牌,然后最终通过generatePlayerConfig接口来生成playConfig。 -(void) setHlsUriToken:(NSString*)MtsHlsUriToken; -(NSString*) generatePlayerConfig; PlayAuth设置HlsUriToken Android使用方式 通过VidAuth播放源来设置playConfig,playConfig中携带mtsHlsUriToken参数。 VidAuth vidauth = new VidAuth(); VidPlayerConfigGen playerConfig = new VidPlayerConfigGen(); //设置用户令牌 playerConfig.setMtsHlsUriToken("用户令牌"); vidauth.setPlayConfig(playerConfig); iOS使用方式 通过AVPVidAuthSource播放来设置playConfig,playConfig中携带mtsHlsUriToken参数。 - (instancetype)initWithVid:(NSString *)vid playAuth:(NSString *)playAuth region:(NSString *)region playConfig:(NSString *)playConfig; - (void)setAuthSource:(AVPVidAuthSource*)source; 如何生成playConfig参数?SDK中提供了一个类:VidPlayerConfigGenerator,通过这个类的setHlsUriToken来设置令牌,然后最终通过generatePlayerConfig接口来生成playConfig。 -(void) setHlsUriToken:(NSString*)MtsHlsUriToken; -(NSString*) generatePlayerConfig; MPS设置HlsUriToken Android使用方式 Android创建VidMps对象后,通过调用setHlsUriToken方法设置。然后传递给播放器播放即可。 VidMps vidmps = new VidMps(); //设置用户令牌 vidmps.setHlsUriToken("用户令牌"); ... // vidmps的其他设置。 AliPlayer player = AliPlayerFactory.createAliPlayer(context); //设置vidmps到播放器 player.setDataSource(vidmps); ...//播放器的其他设置 iOS使用方式 通过AVPVidMpsSource播放来设置mtsHlsUriToken。 - (instancetype)initWithVid:(NSString*)vid accId:(NSString *)accId accSecret:(NSString*)accSecret stsToken:(NSString*)stsToken authInfo:(NSString*)authInfo region:(NSString*)region playDomain:(NSString*)playDomain mtsHlsUriToken:(NSString*)mtsHlsUriToken; - (void)setMpsSource:(AVPVidMpsSource*)source;


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3