应用数据的获取方法和装置与流程

文档序号:16007349发布日期:2018-11-20 20:13阅读:212来源:国知局

本发明涉及计算机软件技术领域,特别是涉及一种应用数据的获取方法和装置。



背景技术:

目前,在对重要的数据通过软件进行传输时,例如利用视频软件下载视频数据,为了确保传输数据的安全,需要对待传输的数据预先进行加密,然后,在使用软件下载该加密数据时,会对该加密数据进行解密,最终使得客户端侧得到原始数据,例如原始视频数据。

针对软件对传输数据的上述解密方式,窃取者为了窃取传输数据,目前一种普遍的方式是使用coding-lifting攻击,从而获取传输数据明文。具体做法是攻击者在该软件运行过程中(例如该软件下载视频数据的过程中),直接将与加密相关的代码段(即,包括对加密后的传输数据进行解密的代码段)分析提取出来,嵌入到自制的软件中,从而达到与破解原版软件的加密密钥相同的效果。

由此可见,现有的软件在对应用数据加密后,在使用该应用数据之前,会执行对该加密后的应用数据的解密代码逻辑。那么为了成功窃取应用数据明文,现有技术普遍通过coding-lifting的方式,将包含解密密钥的解密代码逻辑直接整体提取出来,使用该解密代码逻辑来进行数据解密,从而达到窃取传输数据的效果。

因此,相关技术中的应用数据的获取方案普遍存在着应用数据在传输时被coding-lifting攻击截获的问题。



技术实现要素:

本发明提供了一种应用数据的获取方法和装置,以解决相关技术中的应用数据的获取方案所存在的应用数据在传输时被coding-lifting攻击截获的问题。

为了解决上述问题,根据本发明的一个方面,本发明公开了一种应用数据的获取方法,包括:

接收服务器发送的预先依次经过预设映射函数映射处理和加密处理的应用数据;

根据预设解密算法对所述应用数据解密,得到编码应用数据;

根据所述预设映射函数在预设安全区域对所述编码应用数据进行逆映射,得到原始应用数据。

可选地,所述根据所述预设映射函数在预设安全区域对所述编码应用数据进行逆映射,得到原始应用数据之前,所述方法还包括:

将所述编码应用数据通过一个或多个预设功能模块透传至预设安全区域。

可选地,所述根据所述预设映射函数在预设安全区域对所述编码应用数据进行逆映射,得到原始应用数据,包括:

根据所述预设映射函数在可信执行环境中对所述编码应用数据进行逆映射,得到原始应用数据。

可选地,所述根据所述预设映射函数在预设安全区域对所述编码应用数据进行逆映射,得到原始应用数据,包括:

根据所述预设映射函数在预设进程虚拟机内对所述编码应用数据进行逆映射,得到原始应用数据。

根据本发明的另一方面,本发明还公开了一种应用数据的获取装置,包括:

接收模块,用于接收服务器发送的预先依次经过预设映射函数映射处理和加密处理的应用数据;

解密模块,用于根据预设解密算法对所述应用数据解密,得到编码应用数据;

逆映射模块,用于根据所述预设映射函数在预设安全区域对所述编码应用数据进行逆映射,得到原始应用数据。

可选地,所述装置还包括:

透传模块,用于将所述编码应用数据通过一个或多个预设功能模块透传至预设安全区域。

可选地,所述逆映射模块包括:

第一逆映射子模块,用于根据所述预设映射函数在可信执行环境中对所述编码应用数据进行逆映射,得到原始应用数据。

可选地,所述逆映射模块包括:

第二逆映射子模块,用于根据所述预设映射函数在预设进程虚拟机内对所述编码应用数据进行逆映射,得到原始应用数据。

与现有技术相比,本发明包括以下优点:

这样,本发明实施例通过接收预先依次经过映射处理和加密处理的双重处理的应用数据,并在使用该应用数据的预设安全区域来对解密后的编码数据进行逆映射处理,从而使得攻击者利用coding-lifting也只能在危险区域截取解密逻辑和编码数据,而无法获取原始应用数据,避免了原始应用数据在传输时被coding-lifting攻击截取的问题,确保了应用数据的安全传输,并提升了应用程序的安全级别。

附图说明

图1是本发明的一种应用数据的获取方法实施例的步骤流程图;

图2是本发明的一种应用数据的获取方法实施例的示意图;

图3是本发明的一种应用数据的获取装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

参照图1,示出了本发明的一种应用数据的获取方法实施例的步骤流程图,具体可以包括如下步骤:

步骤101,接收服务器发送的预先依次经过预设映射函数映射处理和加密处理的应用数据;

其中,该应用数据可以是应用程序的服务器下发的任意类型的应用数据。举例来说,例如应用程序为视频软件,那么用户可以通过视频下载的方式来从该视频软件的服务器侧获取某一部电影的视频数据,此处的视频数据为上述应用数据的一个示例;在其他应用场景下,例如该应用程序为即时通讯软件,那么该应用数据还可以是客户端请求的聊天记录数据等等。

换句话说,本发明的应用数据可以是应用程序的服务器下发的任意类型的需要加密的数据,本发明对此并不限定。

其中,如图2所示,服务器侧在根据客户端或移动终端的数据访问请求来下发应用数据时,在将应用数据下发之前,会在服务器侧(即图2所示的安全区域1)使用预设映射函数F对需要下发的原始应用数据(即,图2中所示的原始应用数据X)进行映射处理,得到映射数据F(x);然后,对映射数据F(x)作加密C处理,得到既编码又加密的应用数据C(F(x))。

其中,该预设映射函数F可以是一一映射函数。

那么本实施例中通过使用预设映射函数来对原始应用数据进行映射处理,从而使得被加密的数据是经过映射处理的数据,而非真实的原始应用数据,在一定程度上实现了数据的伪装,以确保应用数据在从服务器传输至客户端/移动终端侧时,真实的原始应用数据不被暴漏,保证应用数据的安全传输。

步骤102,根据预设解密算法对所述应用数据解密,得到编码应用数据;

其中,如图2所示,在移动终端侧的应用程序(即,请求获取该应用数据的应用程序,例如视频软件)接收到经过映射处理且加密的应用数据C(F(x))后(例如视频数据),由于视频软件在开发时已经预先编写了应用数据的解密模块,因此,可以直接利用视频软件的解密模块,采用预设解密算法对所述应用数据解密,得到编码应用数据。其中,由于视频软件的服务器侧和视频软件侧对应用数据的加密和解密算法以及密钥都是约定好的,因此,可以直接利用解密模块中的预设解密算法C’来对接收到的应用数据,即视频数据进行解密,得到解密后的编码数据F(x)。

其中,这里的预设解密算法与加密时所使用的加密算法C相配套,即,使用加密算法C加密后的数据,可以使用该预设解密算法C’对加密后的数据进行解密,从而还原数据。

其中,由于解密处理的过程发生在危险区域,所谓危险区域即为非预设安全区域,是在运行软件的过程中,软件中容易被攻击者攻击的区域,因此,coding-lifting就很容易在危险区域去攻击视频软件,从而直接提取在危险区域执行的解密代码逻辑,以达到破解软件的目的。但是,在本发明实施例中,由于解密后的数据经过编码处理的,因此,即便攻击者在危险区域直接提取了本发明视频软件的解密模块的解密代码逻辑,但是,其使用该解密代码逻辑进行视频数据的解密处理后,得到的并非视频数据明文,而是编码的视频数据,从而确保了视频数据的传输安全,避免了应用数据在传输时被coding-lifting攻击截取的问题。

步骤103,根据所述预设映射函数在预设安全区域对所述编码应用数据进行逆映射,得到原始应用数据。

其中,在对视频数据解密后,可以待解密后的视频数据传输至视频软件中的预设安全区域(即图2所示的安全区域2)时,在使用视频数据的安全区域2内,利用视频软件的解码模块(包括预设映射算法),例如,可以利用预设映射函数F的反函数F’来对编码应用数据进行解码处理,即,逆映射处理,得到原始应用数据,这里为原始视频数据F’(F(x))=x。

其中,该预设安全区域为使用该原始应用数据的区域,例如播放视频数据的区域,而在该预设安全区域内执行的任何逻辑和存储的任何数据,攻击者都是无法截取的,因此,在该安全区域进行视频数据的解码,可以避免攻击者截取解码代码逻辑,更加避免了其利用截取到的解码代码逻辑来对在图2中危险区域截取的编码数据进行解码,不仅提升了软件的数据安全级别,还确保了应用数据的安全传输。

这样,本发明实施例通过接收预先依次经过映射处理和加密处理的双重处理的应用数据,并在使用该应用数据的预设安全区域来对解密后的编码数据进行逆映射处理,从而使得攻击者利用coding-lifting也只能在危险区域截取解密逻辑和编码数据,而无法获取原始应用数据,避免了原始应用数据在传输时被coding-lifting攻击截取的问题,确保了应用数据的安全传输,并提升了应用程序的安全级别。

可选地,在一个实施例中,发明人发现coding-lifting的攻击方式为整体截取解密相关的代码段,那么为了提升解码代码的安全性,使攻击者难以发现解密代码逻辑的位置,本发明实施例的方法还可以在一个较长的逻辑流程中传输编码的视频数据,从而降低攻击者利用coding-lifting对解码逻辑的识别速度,以及加大coding-lifting对软件的解码逻辑的截取难度。

具体而言,在步骤102之后,在步骤103之前,根据本发明实施例的方法还可以包括:

将所述编码应用数据通过一个或多个预设功能模块透传至预设安全区域。

也就是说,参照图2,在应用程序的危险区域和安全区域2之间,编码的应用数据还需要通过一个或多个预设功能模块进行数据透传,这里包括多个预设功能模块,分别为模块1、模块2和模块3……,最终编码的应用数据才会达到预设安全区域,即安全区域2,再在安全区域2内进行编码数据的解码。

以应用数据为视频数据为例,该预设功能模块可以包括但不限于HDMI模块、数据校验模块等等。其中,HDMI模块用于视频信息传输,将视频内容从源端透传到播放端;数据校验模块用于基于数据校验算法,检查数据的完整性和是否被篡改。

其中,上述预设功能模块可以对编码的视频数据作一定程度的附加处理,但是其还需要具备对编码数据进行数据透传的功能。

那么从攻击者的角度来看,解密代码逻辑后边就应该是解码代码逻辑,那么本发明实施例的方法通过在解密代码逻辑和解码代码逻辑之间设置多个功能模块,那么攻击者在利用coding-lifting整体提取代码逻辑时,即便直接提取到与加密相关的代码段,即图2中的利用预设解密算法C’进行解密处理的代码段,也无法破解该软件,因为解密后的数据还是编码的。这就大大的增加了其所截取的代码逻辑的代码量。那么本发明通过将编码数据传输在一个较长的逻辑流程中,从而降低攻击者利用coding-lifting对解码逻辑的识别速度,以及加大coding-lifting对软件的解码逻辑的截取难度。

可选地,在一个实施例中,在执行步骤103时,可以根据预设映射函数在可信执行环境中对所述编码应用数据进行逆映射,来得到原始应用数据。

也就是说,如图2所示的安全区域2可以是可信执行环境(TEE,Trusted execution environment),其中,TEE是主处理器的安全区域。它能够保证内部加载的代码和数据在保密性和完整性方面得到保护。TEE作为一个独立的执行环境提供安全功能,例如独立执行,可信应用程序的完整性及其资产的机密性。总的来说,TEE提供了一个执行空间,它提供比开放的丰富移动操作系统(移动操作系统)更高级别的安全性,以及比“安全元素”(SE,Safe Element)更多的功能。

那么借助于将解码的代码逻辑设置在TEE中进行运行,从而可以进一步确保解码代码逻辑的安全性,提升软件的安全级别。

可选地,在另一个实施例中,在执行步骤103时,还可以根据所述预设映射函数在预设进程虚拟机内对所述编码应用数据进行逆映射,得到原始应用数据。

其中,进程虚拟机为运行单个计算机的程序设计,即,进程虚拟机支持单个进程。虚拟机的一个本质特点是运行在虚拟机上的代码逻辑被局限在虚拟机提供的资源里,也就是说,它不能超出虚拟世界。一个进程虚拟机,有时也被称为应用进程虚拟机或受控运行时环境。它像一个正常的软件一样运行在操作系统中,软件启动时启动,软件关闭时关闭。它的目的是抽象出操作系统和底层硬件的接口,给运行在其中的字节码一个相对独立的运行环境。

也就是说,在开发该应用程序时,服务器侧可以将该应用程序的涉及信息安全的重要代码逻辑(例如应用数据的解码代码逻辑)加密后,将解码代码密文嵌设在进程虚拟机中,然后,再将该进程虚拟机嵌设在该应用程序中,其中,该应用程序中原始编写的该解码代码逻辑替换为上述进程虚拟机,上述过程可以称作虚拟机加固,最后将经过虚拟机加固的应用程序进行发布,供移动终端或客户端用户下载。

那么在本实施例中,当用户下载的该视频软件就是经过虚拟机加固的应用程序时,那么在运行该解码代码逻辑(字节码形式)时,就可以在该进程虚拟机内对该解码代码逻辑的密文进行解密,然后运行解密后的解码代码逻辑,即,在该进程虚拟机内根据预设映射函数对所述编码应用数据进行逆映射,得到原始应用数据。

其中,在进程虚拟机内运行该字节码(即解码代码逻辑)时,借助于进程虚拟机可以使字节码达到跨平台运行的效果。即同一套字节码可以在不同的操作系统上运行。本发明实施例中将字节码密文嵌入至进程虚拟机以更全面地提升软件安全级别。

举例来说,本发明实施例发布的软件可以在Linux/iOS/Android等各个操作系统平台上运行,不受操作系统差异的限制,从而全面提升软件的安全级别。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

与上述本发明实施例所提供的方法相对应,参照图3,示出了本发明一种应用数据的获取装置实施例的结构框图,具体可以包括如下模块:

接收模块31,用于接收服务器发送的预先依次经过预设映射函数映射处理和加密处理的应用数据;

解密模块32,用于根据预设解密算法对所述应用数据解密,得到编码应用数据;

逆映射模块33,用于根据所述预设映射函数在预设安全区域对所述编码应用数据进行逆映射,得到原始应用数据。

可选地,所述装置还包括:

透传模块,用于将所述编码应用数据通过一个或多个预设功能模块透传至预设安全区域。

可选地,所述逆映射模块33包括:

第一逆映射子模块,用于根据所述预设映射函数在可信执行环境中对所述编码应用数据进行逆映射,得到原始应用数据。

可选地,所述逆映射模块33包括:

第二逆映射子模块,用于根据所述预设映射函数在预设进程虚拟机内对所述编码应用数据进行逆映射,得到原始应用数据。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种应用数据的获取方法和一种应用数据的获取装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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