更新时间:2023-02-08 16:32:05
为了进一步保护您的视频,Cloud VoD 提供 HLS AES 加密以防止您的视频被盗版。视频将被加密,需要特殊身份验证才能解密视频以进行播放。
HLS定义了一个加密字段: #EXT-X-KEY ,用于标识视频文件是否加密,采用什么算法加密(目前云点播采用AES-128加密算法),并给出获取解密密钥的地址。
当播放器收到明文 m3u8 文件时,它会根据“#EXT-X-KEY”标签识别该文件是加密的。当需要播放时,播放器必须从“#EXT-X-KEY”中“URI”中提供的URL中获取解密密钥,然后根据“METHOD”参数中提供的算法信息对视频文件进行解密。
这是一个带有 EXT-X-KEY 的示例 m3u8 文件:
Cloud VoD提供HLS加密,采用AES-128算法,加密密钥由CloudVoD KMS管理,通过HTTPS传输,防止非法拦截。
CloudVoD KMS地址:https://api.cloudv.haplat.net/vod/videoManage/getHlsKeyByVideoId
视频加密后,身份验证参数将添加到 URL 的末尾。例如
https://cloudv.cdnetworks.com/appname/streamname/cloudv-transfer/playlist.m3u8?t=1666336607&k=3628a37a13d566252d&vid=cf352bbd01831000553f6000&r=f96237ab0183
建议设置自己的认证服务器来对最终用户进行认证,并且只向那些通过认证的用户提供带有认证信息的 URL。播放器获取正确的适配码或视频URL后,会从m3u8播放列表中获取密钥,然后对视频进行解密播放,过程主要分为以下几个步骤:
步骤1
使用验证参数 t、k、r 和 vid 获取加密视频的 URL。例如,原始视频网址为
https://cloudv.cdnetworks.com/vod/test.m3u8
添加以上认证参数后,URL变为
https://cloudv.cdnetworks.com/vod/test.m3u8?t=1533289173&k=b83eb56186b4c7c7ae7ff7e2a1ee58d9&vid=0f97c608015f10007f0f055d00000000&r=ff237ff1016410000950defa00000000
以下是获取/创建经过身份验证的 URL 的一些方法:
这样就需要每次有视频播放请求都要去查询url,查询url的次数多,会给自己的服务器带来很大的负担。
鉴权参数 | 描述 |
---|---|
t | 过期时间戳。 |
k | 视频的VideoId,您可以在控制台或API getVideoList中查看videoId。 |
k | k=md5 (secretKey+vid+t+r)。 SecretKey可以在控制台通过账号 > 安全设置 > API信息管理 > AccessKey管理获取。 |
r | r 是您可以分配的随机数。 |
第2步
当播放器请求携带认证参数的URL时,例如
https://cloudv.cdnetworks.com/vod/test.m3u8?t=1533289173&k=b83eb56186b4c7c7ae7ff7e2a1ee58d9&vid=0f97c608015f10007f0f055d00000000&r=ff237ff1016410000950defa00000000
云点播回传m3u8文件,自动在_EXT-X-KEY_中URI添加认证信息如下:
步骤 3
从云点播中获取m3u8后,播放器会自动发送请求,从云点播认证服务中获取内容密钥。
云点播认证服务会对认证信息进行校验,如果认证信息有效,KMS会将内容密钥发送给播放器,否则直接拒绝请求。
步骤4
播放器收到解密密钥后,即可对视频进行解密播放。解密密钥采用HTTPS加密发送,确保传输安全。