一种设备客户端视频流硬件保护方法与流程

文档序号:16547497发布日期:2019-01-08 20:55阅读:197来源:国知局
一种设备客户端视频流硬件保护方法与流程

本发明涉及设备客户端的硬件的视频流安全性保护方法。



背景技术:

随着移动互联网产视频应用快速增长,与此同时,版权保护问题也变得越来越突出。随着数字内容知识产权保护受重视的程度日益提高,智能手机和平板电脑等最新设备为消费者提供了丰富的视频播放应用,内容厂商或运营商对视频内容的版权保护问题高度重视,特别是付费模式的普及。

数字电视的主要特点是在于节目制作、传输、接收以及存储的全数字化处理,能够给用户带来丰富多彩的数字内容和高质量的音视频效果。但是,由于完全使用了数字化的制作、传输手段和数字格式的存储,使得这些数字化的内容更容易遭到未经授权的复制与贩售。而这也是所有内容提供商最为担忧的问题。目前由于内容的非法使用,极大地影响了内容提供商的积极性和商业利益,亦影响到数字电视的发展。

而这些应用程序运行在设备中,所以也要求oem厂商确保质量,但oem厂商并非可对所有功能进行测试,并且攻击者正在不断创建越来越多以此类设备为目标的恶意代码。

为了解决这一问题解决这一问题的技术被称为数字版权保护技术(也叫数字版权管理技术),即drm技术。它包含了多种保护技术、运作机制和策略,同时也涉及到法令和政策的领域。目前国外drm标准有oma(openm0bileailiance,oma)drm的标准,isma(internetstreamingmediaalliance,isma)drm,marlindevelopercommunity提出的marlindrm,苹果的fairplay和微软的playready/windowsdrm。而google则通过收购widevine公司推出了widevinedrm。

每个drm标准其实都会提供其客户端的sdk,以方便设备厂商在不了解具体drm标准设计细节的条件下,也可以快速的构建相应drm框架,这样也可以让设备厂商更加关注与自身所在垂直领域相关的业务,快速的在自身的系统中部署drm客户端速sdk,达到相关drm标准认证。

但由于每个drm标准设计的框架api都不同,这对于oem厂家适配如此众多的drm标准框架,在设备客户端的开发上存在很大的开发量。而且由于drm框架设计思想的类似性,会造成一些资源上的浪费,oem厂商针对每个drm框架开发一个设备客户端视频流硬件安全性保护,部署多个会对设备性能造成格外的负担,也增加预留安全内存,预留安全存储的浪费,这些对soc来说非常宝贵。因此要是能提高oem厂商对不同drm标准的适配度,又能支持安全性验证和对视频流安全保护,则可以解决目前的视频流的保护主要矛盾。



技术实现要素:

本发明要解决的技术问题,在于提供一种设备客户端视频流硬件保护方法,在oem厂商提高针对不同drm标准的适配度的基础上,迅速构建drm客户端和oem硬件视频流安全播放流程,高效安全。

本发明方法是这样实现的:一种设备客户端视频流硬件保护方法,预先在设备硬件系统上隔离出安全世界和非安全世界,所述安全世界和所述非安全世界之间还设有硬件保护中间件;所述安全世界仅运行可信应用程序,所有需要保护的敏感数据只保存在所述安全世界中,当敏感数据由所述安全世界导出到非安全世界中时只能加密后再保存;所述硬件保护中间件包括ca层和ta层,所述ca层为安全世界和非安全世界之间的边界,负责提供丰富的接口让drm客户端框架实现安全的基础功能,以供客户端自由构建业务流程,从而适配各种drm标准;所述ta层用于安全世界和非安全世界之间传输安全数据,在安全世界申请安全内存,在非安全世界无法被访问;

然后进行下述视频处理流程:

步骤s1、设备视频播放器(如mediaplayer)选择一个加密码流源,将数据源地址传给stagefright,stagefright调用drm客户端框架,由drm客户端框架将此数据源传给硬件保护中间件;

步骤s2、drm客户端框架调用硬件保护中间件并申请安全的输入buffer和输出buffer(securememory),并读取数据源的加密码流;

步骤s3、drm客户端框架将读取到的加密码流在硬件保护中间件内进行解密,并将解密后的数据存入安全的输入buffer(缓冲器);

步骤s4、硬件保护中间件通过openmax接口将输入buffer内的解密后的数据在硬件保护中间件内进行头部信息解析,并将解析后的头部信息数据传递给vcodec硬解码协议解析层;

步骤s5、vcodec硬解码协议解析层将头部信息根据编码协议进行头部信息解析,并生成寄存器数据传入硬件保护中间件内的硬解码驱动;

步骤s6、硬解码驱动检测到解码的输出buffer为安全buffer时,将寄存器数据配置给vpu硬件编解码器进行硬解码,解码后的数据存入安全的输出buffer,成为安全数据;

步骤s7、将安全的输出buffer中的安全数据送到显示框架中处理,显示框架根据视频帧的大小及角度信息情况选择是否进行2d硬件加速器的rga处理,其中2d硬件加速器的驱动配置是在硬件保护中间件进行,2d硬件加速器的驱动也需检测rga输出buffer为安全buffer;

步骤s8、将经2d硬件加速器的rga处理后的或不需要rga处理的数据帧通过显示控制器驱动配置给显示控制器与ui合成后输出显示。

进一步的,所述安全世界由armtrustzone提供,所述安全处理器为armtrustzone的arm处理器。

进一步的,所述ta层构建了安全数据结构体,该安全数据结构体是:

其中,

datatype使用uint32_t来定义,用于指定securedata对象封装的值中可能的数据类型,表示securedata是byte还是rsa私钥key;

data_size表示buffer数据大小,并使用uint32_t来定义;

data_buffer用于存放具体的securedata数据,以及保存对称密钥、密码和随机数,并使用char来定义。

进一步的,所述基础功能包括:数据存储、数据加密、数据解密、密钥导入、密钥导出、密钥分发,安全时钟、以及对数据进行计算摘要、数字签名及验证签名。

进一步的,所述接口包括:对安全数据的操作接口,加解密数据接口以及摘要算法接口;所述对安全数据的操作接口用于对安全数据的操作,其接口参数包含安全数据指针,用于把安全数据的指针返回给非安全世界,且该对安全数据的操作接口进一步包括导出安全数据接口、导入安全数据接口、封装安全数据接口、解封装安全数据接口和派生安全数据接口;所述加解密数据接口用于表示加密或解密,所述加解密数据接口的算法包括ec算法、rsa算法、aes算法和hmac算法;所述摘要算法类接口的接口类型包括摘要算法接口、数字签名和数字签名验证接口。

本发明具有如下优点:本发明通过在设备硬件系统上隔离出安全世界和非安全世界,再通过硬件保护中间件来完成安全世界和非安全世界之间的通信,硬件保护中间件通过将解密后的码流存放置安全内存及将视频播放显示相关且具有输出能力的ip模块限制在secureos内访问,充分保证了视频播放路径的安全性;另外,硬件保护中间件包括ca层和ta层,ca层提供丰富的接口让drm客户端框架实现安全的基础功能,以供客户端自由构建业务流程,从而适配各种drm标准;ta层,用于安全世界和非安全世界之间传输安全数据,在安全世界申请安全内存,在非安全世界无法被访问,使客户端构建业务流程时更加灵活自由,开放性和扩展性较好,适于产品化。

附图说明

下面参照附图结合实施例对本发明作进一步的说明。

图1为本发明设备客户端与多种drm标准适配的架构示意图。

图2为本发明装置的架构示意图,其箭头显示数据访问流程。

图3为本发明在不同的业务流程中安全数据的传递流程示意图。

图4为本发明硬件保护中间件提供的接口的处理逻辑示意图。

图5为本发明硬件保护中间件与设备客户端通过接口交互的示意图。

图6为本发明方法的视频流安全播放流程。

具体实施方式

请参阅图1及图2所示,本发明的设备客户端视频流硬件保护方法,是在设备硬件系统上隔离出安全世界和非安全世界,所述安全世界和所述非安全世界之间还设有硬件保护中间件;

所述安全世界仅运行可信应用程序,所有需要保护的敏感数据只保存在所述安全世界中,当敏感数据由所述安全世界导出到非安全世界中时只能加密后再保存;所述安全世界由armtrustzone提供,所述安全处理器为armtrustzone的arm处理器。armtrustzone提供了安全执行环境(即可信执行环境(tee)),在此环境中只有可信应用程序才能运行,从而防止遭到黑客/病毒/恶意软件形式的攻击。并在此技术上根据teeapi标准提高了安全系统,使设备的处理环境被认为分为两个领域:所有处理秘密数据的安全世界(tee),以及一个开放非安全世界(ree)执行非敏感操作。通过arm处理器来运行需要访问受保护的密钥材料的加密算法,密钥材料或已经用设备的根密钥解密的任何字节,永远不会返回到非安全世界中的主处理器中。

所述硬件保护中间件包括ca(teeclientapplication)层和ta(teeapplicantion)层:

所述ca(teeclientapplication)层,为安全世界和非安全世界之间的边界,负责提供丰富的接口让drm客户端框架实现安全的基础功能,以供客户端自由构建业务流程,从而适配各种drm标准;其中,

所述基础功能包括:数据存储、数据加密、数据解密、密钥导入、密钥导出、密钥分发,安全时钟、以及对数据进行计算摘要、数字签名及验证签名。通过综合使用这些基础功能,可以构建丰富的业务逻辑,更好提供给业务应用层使用,为消费者提供了基于扩展服务集的高价值体验。

结合图4所示,ca层提供的所述接口包括:对安全数据的操作接口,加解密数据接口以及摘要算法接口;以及用于安全世界和非安全世界之间传输安全数据指针和其他数据;

(a)所述对安全数据的操作接口用于对安全数据的操作,其接口参数包含安全数据指针,用于把安全数据的指针返回给非安全世界,其对安全数据的操作接口进一步包括下述接口:

(1)导出安全数据接口,对指定的秘密数据字节进行封装,即对数据字节进行添加头信息、序列化、加密,hmac安全数据并添加到数据末尾等,以便调用者将返回受保护形式的字节;这个接口将满足部分业务需要秘密数据存储到设备中,以便重启使用等情况。

(2)导入安全数据接口,通过“导入”指定的先前“导出”秘密数据获得的字节,一般情况下客户端不需要把秘密数据保存在安全存储器上,因此用导出的方法给客户端接收到序列化和加密形式的秘密数据,之后,当客户端希望对秘密数据执行操作时,它会调用此导入方法来对导出的数据进行解密和反序列化,再对安全数据hmac校验看是否被修改过;

该接口参数使用安全数据指针的指针,将解密后的秘密数据转换为安全数据结构,以便将安全数据结构的指针返回到非安全世界,以供其他业务流程将包含秘密数据的安全数据结构传递到安全世界中使用。

(3)封装安全数据接口,是一个需要用另一个密钥加密的安全数据,封装安全数据时,安全数据用另一个密钥加密,该接口定义了数据类型,支持非对称rsa和对称aes算法封装数据。

(4)解封装安全数据接口,需要用另一个密钥解密被加密过的安全数据,从而获得安全数据,该接口定义了数据类型,支持非对称rsa和对称aes算法封装数据;

该接口参数使用安全数据指针的指针,将解密后的秘密数据转换为安全数据结构,以便将安全数据结构的指针返回到非安全世界,以供其他业务流程将包含秘密数据的安全数据结构传递到安全世界中使用。

(5)派生安全数据接口,是指使用一个现有的安全数据派生创建一个新的安全数据。该接口参数使用安全数据指针的指针,将派生后的秘密数据转换为安全数据结构,以便将安全数据结构的指针返回到非安全世界,以供其他业务流程将包含秘密数据的安全数据结构传递到安全世界中使用。

(b)所述加解密数据接口包含用于表示加密或解密的标志位,所述加解密数据接口的算法包括ec算法、rsa算法、aes算法、和hmac算法;

(c)所述摘要算法接口的接口类型包括摘要算法接口、数字签名和数字签名验证接口。

所述ta(teeapplicantion)层,用于安全世界和非安全世界之间传输安全数据,在非安全世界它无法被访问,为了适配更加各种drm标准,所述ta层构建了安全数据结构体,该安全数据结构体是:

上述参数中:

datatype用于指定securedata对象封装的值中可能的数据类型,表示securedata是byte类型;rsa私钥、公钥key类型;ec公钥、私钥key类型或其他类型,该参数使用uint32_t来定义;

data_size用来表示buffer数据大小,其数据大小是以字节为单位,如果大小为空不可用,则data_size为0,该参数也是使用uint32_t来定义;

data_buffer用于存放具体的securedata数据,可以保存对称密钥,密码,随机数等,该参数是使用char来定义。

所述安全数据结构体是在安全世界申请安全内存的,所以在非安全世界它无法被访问,它可以用于密钥或者凭据等秘密数据安全地封送到安全数据结构中,这样在不同的业务流程中,使用它来传输参数,可以保证数据安全不被破解。安全数据结构体是本发明装置中用来保护数据最主要的参数,沟通着安全世界和非安全世界。使客户端可以更加自由地构建自己的业务流程。

结合图3所示,如果设备客户端希望数据可用于多个业务流程,则设备客户端会向硬件保护中间件申请安全数据结构,保护的数据以安全数据结构形式传输,因为客户端不允许获取明文中的秘密数据字节。当稍后再次需要导出的数据时,客户端要求导出的数据“导入”(未加密等),并由新的securedata引用,就像数据最初导出的一样。

首先,它先调用所述解封装安全数据接口,传入秘密数据的内容和大小,但是用于解封装的key是空的,并且安全数据结构参数是securedata**,把这些接口的参数传入到硬件保护中间件中,硬件保护中间件根据参数创建securedata的指针返回给非安全世界的调用者。

其次,通过导出安全数据接口调用函数,把securedata里面的秘密数据进行加密,加入信息头,序列化。加密秘密数据的key是设备特定的根密钥,每个设备都不一样,并且只保存在安全世界中。这样防止导出到非安全世界的安全数据被破解。

再次,如果设备客户端在需要验证许可证消息的时候,想用之前得到安全数据中的秘密数据去进行验证许可证消息,以防止篡改许可证消息。这样就需再调用导入安全数据接口,把安全数据导入到硬件保护中间件中,进行信息头对比,反序列化,解密,得到秘密数据。

接着,把被许可证服务器数字签名过的许可证消息传到硬件保护中间件进行验证,可以调用数字签名和数字签名验证接口,该数字签名和数字签名验证接口取下数字签名,使用秘密数据(公钥)解密,得到消息的摘要,对比验证了的数字签名消息,确认该许可证没有被篡改。

如图2和图5所示,以设备客户端为设备的视频客户端为例,具体设置时,可以将ca层设置在非安全世界中,ta层设置在安全世界中,tee架构的目标是通过设备客户端应用ca层,让可信应用ta层为服务提供者提供隔离和可信的能力。让调用者可以使用安全的内存和安全的存储,该tee架构通过teeclientapi调用和trustapplication交互。硬件安全性保护中间件主要实现了可验证代码模块,负责处理秘密数据,如加密密钥。它使用秘密数据,而不会将此敏感信息暴露给调用的应用程序,达到防止恶意攻击的目的。首先设备在出厂前会把申请得到的设备root密钥(私钥)固化到设备的安全存储中,然后设备视频客户端播放视频时从许可证服务器请求许可证。收到请求后,一般客户端程序使用服务器的授权api验证用户是否允许观看内容。如果用户被批准,许可证服务器收到确认。然后,许可证服务器将包括解密密钥的许可证发送到用户的播放器,以允许解锁视频内容。

由于ca层提供丰富的接口让drm客户端框架实现安全的基础功能,而任何业务逻辑都可以通过该些基础功能单独或组合应用而成,因此,本发明可以适配各种drm标准,可以最大限度的减少oem厂商适配不同drm标准的开发效率,只需根据每个drm标准接口,迅速构建drm客户端和oem硬件视频流安全播放流程,并可较快的通过相关drm标准认证。以图5为例:

设备厂商需要集成某个drm标准框架,以便完成特定的项目需求,会通过商务渠道向drm标准组织申请设备的root密钥,后期设备在视频播放受版权保护的视频内容过程中和许可证服务器进行安全性校验,在此过程中标明设备的身份,让许可证服务器根据不同的设备身份管理播放,实现更精细,更科学的运营计费策略。具体过程如下:

1)首先设备在出厂前会向drm标准服务商申请的设备证书固化到设备安全存储中;

2)当视频播放客户端播放视频时,将设备中的”设备证书”发送向许可证服务器的安全性验证请求;

3)认证通过后,视频播放客户端会收到许可证服务器的许可证信息,根据不同的drm标准许可证信息生成“设备密钥”;

4)在视频播放时,许可证服务器会发送内容密钥证书给客户端用于解密视频,客户端在drm标准框架中先把“设备密钥”通过视频流硬件保护中间件封装成“安全数据”,并导出返回给drm标准框架;

5)接着视频播放客户端再把加密过的用于解密视频流的“内容密钥”传入视频流硬件保护中间件,视频流硬件保护中间件根据“设备密钥”解密”内容密钥“,也把”内容密钥“封装成“安全数据”返回给视频播放客户端的drm标准框架;

6)接着视频播放客户端创建视频流解密引擎;

7)解密引擎将加载封装过的“内容密钥”安全数据;

8)接着当用户希望观看内容时,他们的设备首先访问作为视频文件集的“目录”的清单文件,清单文件包含加密视频的位置以及drm系统信息和附加元数据,对于要查看的内容,视频内容服务器必须先向用户的播放器提供内容密钥证书以解密视频,如果没有此密钥,视频内容将无法播放,视频客户端收到视频内容服务器的加密视频流数据,将加密视频流数据送入视频流硬件安全保护中间件解密引擎中,解密引擎解密这些加密过的视频流数据。在一些场景中,视频内容服务器也会发送一些没有加密过的视频流,所以如果传入给视频保护中间件视频流是没有加密过的,视频保护中间件将只是简单的拷贝;

9)为了保证视频流数据安全,以在设备上安全播放视频而不被窃取,视频流保护中间件通过将解密后的码流存放置安全内存及将视频播放显示相关且具有输出能力的ip模块限制在secureos内访问,从而可保证视频播放路径的安全性。

本发明的硬件保护中间件主要提供以下类别的操作:

1、读取出厂时预制到安全存储中的根密钥;

2、向本发明装置申请“安全数据结构体”的安全内存对象;

3、秘密数据字节进行封装和解封装,即对数据字节进行序列化和加密,以便调用者将返回受保护形式的字节,稍后可将其重新加载到本发明装置中,即使用解封装方法将其转换回其原始形式,由“安全数据结构体”对象表示;

4、用自带的密钥去解密密钥,在业务认证过程中,加密的密钥是一个用另一个密钥加密的,这样封装的密钥和密钥引子的例子是很常见(其中一个密钥用另一个密钥加密,或使用不同的密钥加密等等);

5、根据密钥派生二级密钥,从现有的“安全数据结构体”派生新的“安全数据结构体”,为了兼容多种情况,使用hmac,hash,直接拷贝等方式分发二级密钥;

6、根据不同的算法(aes、rsa、ec)进行数据加解密;

7、对数据执行计算摘要,签名数据或验证签名;

8、视频安全播放接口,解密后直接送到硬件解码并显示;

9、安全时钟,在一些通过时间限制(例如:限制播放的开始日期和失效日期)来限制使用媒体内的许可证权限中,获得一个安全的系统时钟就显得非常必要,在租赁和预定媒体内容的需求场景中,系统的安全时钟显得尤为重要。

请参阅图6所示,本发明基于上述硬件安全基础,视频处理流程如下:

步骤s1、设备视频播放器(如mediaplayer)选择一个加密码流源,将数据源地址传给stagefright,stagefright调用drm客户端框架,由drm客户端框架将此数据源传给硬件保护中间件;

步骤s2、drm客户端框架调用硬件保护中间件并申请安全的输入buffer和输出buffer(securememory),并通过drm客户端框架从数据源读取数据源的加密码流;

步骤s3、drm客户端框架将读取到的加密码流在硬件保护中间件内进行解密,并将解密后的数据存入安全的输入buffer;此输入buffer是安全buffer,可防止拷贝;

步骤s4、硬件保护中间件通过openmax接口将输入buffer内的解密后的数据在硬件保护中间件内进行头部信息解析,并将解析后的头部信息数据传递给vcodec硬解码协议解析层;

步骤s5、vcodec硬解码协议解析层将头部信息根据编码协议(h264、hevc等)进行头部信息解析,并生成寄存器数据传入硬件保护中间件内的硬解码驱动;

步骤s6、硬解码驱动检测到解码的输出buffer为安全buffer时,将寄存器数据配置给vpu硬件编解码器(videoprocessingunit)进行硬解码,解码后的数据存入安全的输出buffer,为安全数据;

步骤s7、将安全的输出buffer中的安全数据送到显示框架(surfaceflinger)处理,显示框架根据视频帧的大小及角度信息情况选择是否进行2d硬件加速器的rga(rastergraphicacceleration)处理,此处的处理即rga缩放、旋转、合成,转码操作,其中2d硬件加速器的驱动配置是在硬件保护中间件进行,2d硬件加速器的驱动也需检测rga输出buffer为安全buffer;

步骤s8、将经2d硬件加速器的rga处理后的或不需要rga处理的数据帧frame通过显示控制器(visualoutputprocessor)驱动配置给显示控制器与ui(argb)合成后输出显示。

虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1