基于HLS协议的AES解密代理方法及系统与流程

专利2022-05-09  131


本发明属于视频解密技术领域,具体涉及一种基于hls协议的aes解密代理系统。



背景技术:

hls协议(httplivestreaming,基于http的自适应码率流媒体传输协议)通常以m3u8作为封装格式,m3u8只是一个描述性的文件,真正的文件流是其内部声明的ts(transportstream,传送流)文件(ts也是一种常用的视频封装格式,加密都是对该文件进行加密,ts只是一种封装格式,也有其他格式,比如mp4),aes(advancedencryptionstandard,高级加密标准)是比较常见的一种对称加密算法,如果当前m3u8文件是aes加密后的,按照协议规范,需要在m3u8中声明密钥信息,才可以在播放端进行播放。

一般情况下,不会有直接将密钥写入m3u8文件中的场景,因为密钥属于隐私信息,放入文件中容易泄漏,常用做法是在m3u8文件中声明一个获取密钥的接口地址,通过播放端进行各种权限认证后才能够拿到密钥进行播放,权限认证一般都是放在客户端,即视频已经对外发布,那么在服务端发布视频前的审核操作过程中是无法直接播放的,即使服务端可以从其他渠道获取到该视频的密钥信息,目前比较通用的做法是将文件下载至本地,根据已知的密钥进行解密播放,这种方式会加长播放流程,增加播放复杂度,不适用于视频审核及实时播放的场景。



技术实现要素:

本发明要解决的技术问题是提供一种基于hls协议的aes解密代理方法及系统,可以在已知aes密钥的情况下,即使通过m3u8文件中声明的密钥信息接口获取不到密钥,或没有声明密钥信息,也可以对aes加密的m3u8文件进行实时解密播放。

为解决上述技术问题,本发明采用如下的技术方案:

本发明实施例的一个方面提供了一种基于hls协议的aes解密代理方法,应用于包括外部装置和代理装置的代理系统,其中外部装置进一步包括预设置模块和客户端模块,代理装置进一步包括解析请求模块、转换模块和解密模块,包括以下步骤:

所述预设值模块将实际m3u8文件的访问地址转换为代理装置的地址;

所述客户端模块根据预设置模块生成的地址进行请求,同时客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理;

所述解析请求模块分析文件类型,提取关键参数;

所述转换模块转换m3u8文件内容,改变内部ts文件的请求地址;

所述解密模块按照aes通用算法根据密钥解密ts文件。

优选地,预设值模块将实际m3u8文件的访问地址转换为代理装置的地址具体包括:

如果m3u8地址为:http://源文件地址/加密文件名称.m3u8;

转换后的地址为:http://代理装置地址?第一参数=http://源文件地址/加密文件名称.m3u8&第二参数=xxx;

其中第一参数是m3u8地址,第二参数为已知的aes密钥。

优选地,客户端模块包括请求m3u8文件的程序。

优选地,客户端模块包括请求m3u8文件的应用。

优选地,客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理具体包括:

客户端模块收到转换模块响应的内容后,即组装好的ts地址,根据地址再去代理服务请求ts信息;

客户端模块收到解密模块响应的ts内容后,即解密后的视频流内容,可直接进行内容播放。

优选地,解析请求模块分析文件类型,提取关键参数具体包括:如果第一参数的文件类型是m3u8,交由转换模块处理,同时携带包括第二参数的密钥信息。

优选地,解析请求模块分析文件类型,提取关键参数具体包括:如果第一参数的文件类型是ts,交由解密模块处理,同时携带包括第二参数的密钥信息。

优选地,转换模块转换m3u8文件内容,改变内部ts文件的请求地址具体包括:转换模块接收到解析请求模块转发的包括第一参数的m3u8文件地址后,将该文件信息进行重写,再响应至客户端模块,重写文件信息中的ts地址,改为代理地址,同时追加包括第二参数的密钥信息,让客户端模块在请求ts文件时也转发至代理装置中。

优选地,解密模块按照aes通用算法根据密钥解密ts文件具体包括:转换模块将原有ts文件地址转换为代理装置的地址后,客户端模块按照代理装置的地址进行请求,经过解析请求模块,ts文件的请求到达解密模块,解密模块接收到的第一参数为原ts的文件地址,第二参数为aes的密钥信息,首先将ts文件流下载至内存中,然后根据aes通用算法,结合第二参数的密钥信息进行解密,最后将解密后的文件流实时响应至客户端模块。

本发明实施例的又一方面提供了一种基于hls协议的aes解密代理系统,包括外部装置和代理装置,其中外部装置进一步包括预设置模块和客户端模块,代理装置进一步包括解析请求模块、转换模块和解密模块,

所述预设值模块用于将实际m3u8文件的访问地址转换为代理装置的地址;

所述客户端模块用于根据预设置模块生成的地址进行请求,同时客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理;

所述解析请求模块用于分析文件类型,提取关键参数;

所述转换模块用于转换m3u8文件内容,改变内部ts文件的请求地址;

所述解密模块用于按照aes通用算法根据密钥解密ts文件。

采用本发明具有如下的有益效果:

(1)在已知密钥的情况下,无需借助专业解密客户端即可播放任意加密hls视频流、直播流;

(2)在需要严控内容质量、鉴黄鉴暴的场景下,可以用此发明对加密后的视频流、直播流进行实时分析。

附图说明

图1为本发明实施例的基于hls协议的aes解密代理系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1,本发明实施例公开了一种基于hls协议的aes解密代理系统,包括外部装置和代理装置,其中外部装置进一步包括预设置模块和客户端模块,代理装置进一步包括解析请求模块、转换模块和解密模块,预设值模块用于将实际m3u8文件的访问地址转换为代理装置的地址;客户端模块用于根据预设置模块生成的地址进行请求,同时客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理;解析请求模块用于分析文件类型,提取关键参数;转换模块用于转换m3u8文件内容,改变内部ts文件的请求地址;解密模块用于按照aes通用算法根据密钥解密ts文件。

具体应用实例中,预设值模块将实际m3u8文件的访问地址转换为代理装置的地址具体包括:

如果m3u8地址为:http://源文件地址/加密文件名称.m3u8;

转换后的地址为:http://代理装置地址?第一参数=http://源文件地址/加密文件名称.m3u8&第二参数=xxx;

其中第一参数是m3u8地址,第二参数为已知的aes密钥。

本发明实施例中第一参数、第二参数只是举例说明有此参数,并不限制参数的名称。

通过预设值模块将实际m3u8文件的访问地址转换为代理装置的地址,客户端在播放时才会将请求指向代理服务,将实际m3u8文件地址及密钥信息作为参数进行传递。

具体应用实例中,客户端模块是泛指那些要请求m3u8文件的程序或者应用,比如如果要播放m3u8,客户端模块通常指播放器;如果要下载m3u8,客户端模块通常是一个下载程序,本发明实施例不对客户端模块的类型进行限制,只要有请求m3u8文件的需求,都可以作为客户端模块。

具体应用实例中,客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理具体包括:

客户端模块收到转换模块响应的内容后,即组装好的ts地址,根据地址再去代理服务请求ts信息;

客户端模块收到解密模块响应的ts内容后,即解密后的视频流内容,可直接进行内容播放。

解析请求模块分析文件类型,提取关键参数具体包括:如果第一参数的文件类型是m3u8,交由转换模块处理,同时携带包括第二参数的密钥信息。

解析请求模块分析文件类型,提取关键参数具体包括:如果第一参数的文件类型是ts,交由解密模块处理,同时携带包括第二参数的密钥信息。

具体应用实例中,转换模块转换m3u8文件内容,改变内部ts文件的请求地址具体包括:转换模块接收到解析请求模块转发的包括第一参数的m3u8文件地址后,将该文件信息进行重写,再响应至客户端模块,重写文件信息中的ts地址,改为代理地址,同时追加包括第二参数的密钥信息,让客户端模块在请求ts文件时也转发至代理装置中。

示例说明如下:

http://源文件地址/加密文件名称.m3u8内容如下:

#extm3u

#ext-x-version:3

#ext-x-targetduration:10

#extinf:10.000,

1.ts

#extinf:10.000.

2.ts

#extinf:10.000.

3.ts

#ext-x-endlist

那么经过转换后的内容如下:

#extm3u

#ext-x-version:3

#ext-x-targetduration:10

#extinf:10.000,

http://代理装置地址?参数1=http://源文件地址/1.ts&参数2=xxx

#extinf:10.000,

http://代理装置地址?参数1=http://源文件地址/2.ts&参数2=xxx

#extinf:10.000,

http://代理装置地址?参数1=http://源文件地址/3.ts&参数2=xxx

#ext-x-endlist

具体应用实例中,解密模块按照aes通用算法根据密钥解密ts文件具体包括:转换模块将原有ts文件地址转换为代理装置的地址后,客户端模块按照代理装置的地址进行请求,经过解析请求模块,ts文件的请求到达解密模块,解密模块接收到的第一参数为原ts的文件地址,第二参数为aes的密钥信息,首先将ts文件流下载至内存中,然后根据aes通用算法,结合第二参数的密钥信息进行解密,最后将解密后的文件流实时响应至客户端模块。由于aes解密属于通用算法,此处不予赘述。

与本发明系统实施例对应的,本发明提供了一种基于hls协议的aes解密代理方法,应用于如图1所示的包括外部装置和代理装置的代理系统,其中外部装置进一步包括预设置模块和客户端模块,代理装置进一步包括解析请求模块、转换模块和解密模块,包括以下步骤:

预设值模块将实际m3u8文件的访问地址转换为代理装置的地址;

客户端模块根据预设置模块生成的地址进行请求,同时客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理;

解析请求模块分析文件类型,提取关键参数;

转换模块转换m3u8文件内容,改变内部ts文件的请求地址;

解密模块按照aes通用算法根据密钥解密ts文件。

具体应用实例中,预设值模块将实际m3u8文件的访问地址转换为代理装置的地址具体包括:

如果m3u8地址为:http://源文件地址/加密文件名称.m3u8;

转换后的地址为:http://代理装置地址?第一参数=http://源文件地址/加密文件名称.m3u8&第二参数=xxx;

其中第一参数是m3u8地址,第二参数为已知的aes密钥。

具体应用实例中,客户端模块是泛指那些要请求m3u8文件的程序或者应用,比如如果要播放m3u8,客户端模块通常指播放器;如果要下载m3u8,客户端模块通常是一个下载程序,本发明实施例不对客户端模块的类型进行限制,只要有请求m3u8文件的需求,都可以作为客户端模块。

具体应用实例中,客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理具体包括:

客户端模块收到转换模块响应的内容后,即组装好的ts地址,根据地址再去代理服务请求ts信息;

客户端模块收到解密模块响应的ts内容后,即解密后的视频流内容,可直接进行内容播放。

具体应用实例中,解析请求模块分析文件类型,提取关键参数具体包括:如果第一参数的文件类型是m3u8,交由转换模块处理,同时携带包括第二参数的密钥信息。

具体应用实例中,解析请求模块分析文件类型,提取关键参数具体包括:如果第一参数的文件类型是ts,交由解密模块处理,同时携带包括第二参数的密钥信息。

具体应用实例中,转换模块转换m3u8文件内容,改变内部ts文件的请求地址具体包括:转换模块接收到解析请求模块转发的包括第一参数的m3u8文件地址后,将该文件信息进行重写,再响应至客户端模块,重写文件信息中的ts地址,改为代理地址,同时追加包括第二参数的密钥信息,让客户端模块在请求ts文件时也转发至代理装置中。

具体应用实例中,解密模块按照aes通用算法根据密钥解密ts文件具体包括:转换模块将原有ts文件地址转换为代理装置的地址后,客户端模块按照代理装置的地址进行请求,经过解析请求模块,ts文件的请求到达解密模块,解密模块接收到的第一参数为原ts的文件地址,第二参数为aes的密钥信息,首先将ts文件流下载至内存中,然后根据aes通用算法,结合第二参数的密钥信息进行解密,最后将解密后的文件流实时响应至客户端模块。

对于方法实施例中的其余实施细节部分的技术内容参见对系统实施例的描述,再次不予赘述。

应当理解,本文所述的示例性实施例是说明性的而非限制性的。尽管结合附图描述了本发明的一个或多个实施例,本领域普通技术人员应当理解,在不脱离通过所附权利要求所限定的本发明的精神和范围的情况下,可以做出各种形式和细节的改变。


技术特征:

1.一种基于hls协议的aes解密代理方法,其特征在于,应用于包括外部装置和代理装置的代理系统,其中外部装置进一步包括预设置模块和客户端模块,代理装置进一步包括解析请求模块、转换模块和解密模块,包括以下步骤:

所述预设值模块将实际m3u8文件的访问地址转换为代理装置的地址;

所述客户端模块根据预设置模块生成的地址进行请求,同时客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理;

所述解析请求模块分析文件类型,提取关键参数;

所述转换模块转换m3u8文件内容,改变内部ts文件的请求地址;

所述解密模块按照aes通用算法根据密钥解密ts文件。

2.如权利要求1所述的基于hls协议的aes解密代理方法,其特征在于,预设值模块将实际m3u8文件的访问地址转换为代理装置的地址具体包括:

如果m3u8地址为:http://源文件地址/加密文件名称.m3u8;

转换后的地址为:http://代理装置地址?第一参数=http://源文件地址/加密文件名称.m3u8&第二参数=xxx

其中第一参数是m3u8地址,第二参数为已知的aes密钥。

3.如权利要求1所述的基于hls协议的aes解密代理方法,其特征在于,客户端模块包括请求m3u8文件的程序。

4.如权利要求1所述的基于hls协议的aes解密代理方法,其特征在于,客户端模块包括请求m3u8文件的应用。

5.如权利要求1所述的基于hls协议的aes解密代理方法,其特征在于,客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理具体包括:

客户端模块收到转换模块响应的内容后,即组装好的ts地址,根据地址再去代理服务请求ts信息;

客户端模块收到解密模块响应的ts内容后,即解密后的视频流内容,可直接进行内容播放。

6.如权利要求2所述的基于hls协议的aes解密代理方法,其特征在于,解析请求模块分析文件类型,提取关键参数具体包括:如果第一参数的文件类型是m3u8,交由转换模块处理,同时携带包括第二参数的密钥信息。

7.如权利要求2所述的基于hls协议的aes解密代理方法,其特征在于,解析请求模块分析文件类型,提取关键参数具体包括:如果第一参数的文件类型是ts,交由解密模块处理,同时携带包括第二参数的密钥信息。

8.如权利要求1所述的基于hls协议的aes解密代理方法,其特征在于,转换模块转换m3u8文件内容,改变内部ts文件的请求地址具体包括:转换模块接收到解析请求模块转发的包括第一参数的m3u8文件地址后,将该文件信息进行重写,再响应至客户端模块,重写文件信息中的ts地址,改为代理地址,同时追加包括第二参数的密钥信息,让客户端模块在请求ts文件时也转发至代理装置中。

9.如权利要求1所述的基于hls协议的aes解密代理方法,其特征在于,解密模块按照aes通用算法根据密钥解密ts文件具体包括:转换模块将原有ts文件地址转换为代理装置的地址后,客户端模块按照代理装置的地址进行请求,经过解析请求模块,ts文件的请求到达解密模块,解密模块接收到的第一参数为原ts的文件地址,第二参数为aes的密钥信息,首先将ts文件流下载至内存中,然后根据aes通用算法,结合第二参数的密钥信息进行解密,最后将解密后的文件流实时响应至客户端模块。

10.一种基于hls协议的aes解密代理系统,其特征在于,包括外部装置和代理装置,其中外部装置进一步包括预设置模块和客户端模块,代理装置进一步包括解析请求模块、转换模块和解密模块,

所述预设值模块用于将实际m3u8文件的访问地址转换为代理装置的地址;

所述客户端模块用于根据预设置模块生成的地址进行请求,同时客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理;

所述解析请求模块用于分析文件类型,提取关键参数;

所述转换模块用于转换m3u8文件内容,改变内部ts文件的请求地址;

所述解密模块用于按照aes通用算法根据密钥解密ts文件。

技术总结
本发明公开了一种基于HLS协议的AES解密代理方法及系统,其中系统包括外部装置和代理装置,其中外部装置进一步包括预设置模块和客户端模块,代理装置进一步包括解析请求模块、转换模块和解密模块,所述预设值模块用于将实际m3u8文件的访问地址转换为代理装置的地址;所述客户端模块用于根据预设置模块生成的地址进行请求,同时客户端模块根据收到的转换模块和解密模块的响应内容分别进行处理;所述解析请求模块用于分析文件类型,提取关键参数;所述转换模块用于转换m3u8文件内容,改变内部TS文件的请求地址;所述解密模块用于按照AES通用算法根据密钥解密TS文件。

技术研发人员:代存折;李妃军;翁成龙;宋录文;戴金晶
受保护的技术使用者:杭州当虹科技股份有限公司
技术研发日:2021.04.26
技术公布日:2021.08.03

转载请注明原文地址:https://doc.8miu.com/read-2234.html

最新回复(0)