防攻击的程序运行方法和装置、存储介质、电子装置与流程

文档序号:21849040发布日期:2020-08-14 17:21阅读:140来源:国知局
防攻击的程序运行方法和装置、存储介质、电子装置与流程

本申请涉及软件安全领域,具体而言,涉及一种防攻击的程序运行方法和装置、存储介质、电子装置。



背景技术:

在信息社会,密码技术应用于人们的方方面面,常用于提供机密性的信息,即保护传输和存储的信息。密码技术还可用于消息签名、身份认证、系统控制、信息来源等,是关系人类社会发展进步的重要技术。密码编码学得到发展的同时,与之对应的密码分析学也有了很大的进步。现实中,密码算法的设计安全不仅局限于算法本身的安全性,还包括其实现的物理实体——密码芯片的安全性。密码芯片在工作时,或者运行密码算法的处理器工作时,会发生很多额外信息泄露(如边信道信息泄露),这些信息泄露都是由于芯片的物理特性产生的,与之对应的密码分析方法称之为边信道攻击(side-channelattack,sca)。

边信道攻击绕开了分析复杂的密码算法本身,将芯片运行密码算法时泄露的各种信息(如运行时间、功耗、电磁辐射、cache、声音等)进行分析。目前,边信道攻击已成为安全领域的最大威胁之一,边信道攻击技术已经成功应用于攻击大部分的密码算法和协议,包括公钥算法(如rsa、ecc等)、分组密码(如des、clefia、aes、camellia等)、序列密码(rc4、trivium等)和密码协议(ssl协议、tls协议、pkcs协议等),并针对于不同处理器硬件平台、操作系统上的软件实现以及不同的智能卡、以及fpga、asic上的实现,均有对应的有效的攻击分析方法,已经成为安全领域最大威胁之一。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种防攻击的程序运行方法和装置、存储介质、电子装置,以至少解决相关技术软件的安全性较低的技术问题。

根据本申请实施例的一个方面,提供了一种防攻击的程序运行方法,包括:获取待运行的目标程序;将目标程序转化为指令序列,其中,指令序列表示的任务与目标程序表示的任务相同;在执行指令序列中任务指令的过程中,执行第一指令集合中的噪声指令,其中,噪声指令表示的任务与指令序列表示的任务不同。

根据本申请实施例的另一方面,还提供了一种防攻击的程序运行装置,包括:获取单元,用于获取待运行的目标程序;转化单元,用于将目标程序转化为指令序列,其中,指令序列表示的任务与目标程序表示的任务相同;执行单元,用于在执行指令序列中任务指令的过程中,执行第一指令集合中的噪声指令,其中,噪声指令表示的任务与指令序列表示的任务不同。

根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。

根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。

在本申请实施例中,可在执行指令序列中任务指令的过程中,自动执行第一指令集合中的噪声指令,使得有规律和可分析的程序变得没有规律和模式可寻,从而增大侧信道分析的难度,解决了相关技术软件的安全性较低的技术问题,进而达到提高软件的安全性的技术效果。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种可选的防攻击的程序运行方法的流程图;

图2是根据本申请实施例的一种可选的防攻击的程序运行方法的流程图;

图3是根据本申请实施例的一种可选的防攻击的程序编译的示意图;

图4是根据本申请实施例的一种可选的防御侧信道分析攻击保护的示意图;

图5是根据本申请实施例的一种可选的防攻击的程序运行装置的示意图;以及,

图6是根据本申请实施例的一种终端的结构框图。

具体实施方式

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

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为防止盗版或者其它破解行为,根据本申请实施例的一方面,提供了一种防攻击的程序运行方法的方法实施例,以在软件中实现防御侧信道攻击(或称边信道攻击)。

本申请的防攻击的程序运行方法可以由防御设备来运行,防御设备并不限定于pc、手机、平板电脑等。防御设备执行本申请实施例的防攻击的程序运行方法也可以是由安装在其上的客户端来执行。图1是根据本申请实施例的一种可选的防攻击的程序运行方法的流程图,采用本申请的技术方案防御侧信道攻击,可在程序中自动加入噪声,使得有规律和可分析的程序变得没有规律和模式可寻,从而增大侧信道分析的难度,避免盗版或者其它破解行为的出现,如图1所示,该方法可以包括以下步骤:

步骤s102,防御设备获取待运行的目标程序。

步骤s104,防御设备将目标程序转化为指令序列,指令序列表示的任务与目标程序表示的任务相同。

步骤s106,防御设备在执行指令序列中任务指令的过程中,执行第一指令集合中的噪声指令,噪声指令表示的任务与指令序列表示的任务不同,即噪声指令是与目标程序无关的指令。

上述任务指令为执行任务过程中的指令,如数据读取指令、数据运算指令(如加减乘除运算、逻辑与运算、逻辑或运算等)、数据存储指令。

通过上述步骤,可在执行指令序列中任务指令的过程中,自动执行第一指令集合中的噪声指令,使得有规律和可分析的程序变得没有规律和模式可寻,从而增大侧信道分析的难度,可以解决相关技术软件的安全性较低的技术问题,进而达到提高软件的安全性的技术效果。

为了实现批量往程序中加入噪声、避免软件被攻击者侧信道分析的目的,在本申请的技术方案中,可将程序编译到进程虚拟机中执行,在进程虚拟机的每个指令执行时随机执行噪声指令。下面结合图1所示的步骤进一步详述本申请的技术方案。

在步骤s102提供的技术方案中,获取待运行的目标程序,目标程序为预先采用编程语言(如c语言、java语言等)编写好程序源代码。

在步骤s104提供的技术方案中,将目标程序转化为指令序列,指令序列表示的任务与目标程序表示的任务相同。

在一种可选的防御错误注入攻击的方法中,可以采用人工的方式在程序中每个需要防御侧信道攻击的地方加入噪声,如果程序需要防御侧信道攻击的地方比较多,那么需要加入噪声的地方就会很多,因此,程序开发和维护成本就会比较高。为了克服该问题,本申请提供了一种可以批量加入噪声的方案。

可选地,在将目标程序转化为指令序列,可以预先创建第一指令集合和第二指令集合,第一指令集合中保存多条噪声指令,第二指令集合中的每条任务指令用于表示一个子任务,且其中的任务指令会在运行时根据为其生成的指示信息按照某个概率(如大于99%的概率)伴随着噪声指令一起执行,具体从第一指令集合中选择的噪声指令可以根据指示信息确定。

在上述实施例中,将目标程序转化为指令序列包括如下步骤1-步骤2:

步骤1,获取目标程序中的每一个程序片段,并从第二指令集合查找与每个程序片段匹配的任务指令,第二指令集合中包括预先创建的多条任务指令。

可选地,上述方案可以通过编译器来实现,在从第二指令集合查找与每个程序片段匹配的任务指令之前,在编译器中获取第二指令集合;从第二指令集合查找与每个程序片段匹配的任务指令包括按照如下方式对目标程序中的每个程序片段进行处理:利用编译器从第二指令集合中查找表示的子任务与当前处理的程序片段匹配的任务指令,目标程序中的每个程序片段用于表示一个子任务。编译器中建立有目标程序的编程语言到第二指令集合中指令之间的映射关系,将目标程序拆分成程序段(一个程序段可以是一条或者多条编程语言),利用编译器确定目标程序中的每一个程序段,并从指令集合中查找与每个程序段匹配的任务指令。

上述编译器主要具有如下两个功能,其一是保存程序片段(如采用c、java、python等编程语言编写的程序片段)的源码与任务指令之间的映射关系,如保存为源码与任务之间一一对应的数据表,数据表中记载函数a(即一个程序片段的源码)在本申请的方案中可用任务指令a表示、函数b在本申请的方案中可用任务指令b表示、函数c在本申请的方案中可用任务指令c表示等;其二是识别程序片段的源码并完成指令转换,具体实现方式可以将上述本地保存的函数a、函数b、函数c等逐一与目标程序中的程序片段进行匹配,如匹配出目标程序中第一个程序片段为函数b,那么就确定了指令序列中第一个指令为任务指令b,以此类推,直至完成对目标程序中所有程序片段的识别,得到完整的指令序列。

步骤2,将匹配到的任务指令按照对应的程序片段在目标程序中的位置进行排列,得到指令序列,也即任务指令在指令序列中的位置与对应的程序段在目标程序中的位置相同。

在步骤s106提供的技术方案中,在执行指令序列中任务指令的过程中,执行第一指令集合中的噪声指令,噪声指令表示的任务与指令序列表示的任务不同,如不实际处理目标程序相关数据的指令,不与目标程序中的任务逻辑发生关联的指令。

可选地,在执行第一指令集合中的噪声指令的过程中,可以按照如下步骤1-步骤2确定噪声指令:

步骤1,获取为目标任务指令生成的指示信息,目标任务指令为指令序列中当前待在进程虚拟机中运行的任务指令,指示信息为按照预设方式生成的。

上述预设方式为预先设定的,按照该方式选取噪声指令没有规律可言,如利用随机函数生成位于某个区间内的随机值,然后利用生成的随机值确定是否选取噪声指令,若需要选取则可以利用该随机值进行选取。

步骤2,按照指示信息从第一指令集合中获取目标噪声指令。

可选地,按照指示信息从第一指令集合中获取目标噪声指令包括:在指示信息表示的标识属于第一标识集合的情况下,从第一指令集合中选取标识与指示信息表示的标识匹配的目标噪声指令,第一标识集合中保存的标识与第一指令集合中噪声指令的标识匹配。

可选地,在获取为目标任务指令生成的指示信息之后,可在指示信息表示的标识属于第二标识集合的情况下,直接在进程虚拟机中执行目标任务指令,第二标识集合中保存的标识与第一指令集合中噪声指令的标识不匹配。

例如,上述随机数的生成区间可以分成两个子区间,第一子区间对应第一标识集合,第二子区间对应第二标识集合,如区间[-10,100]被划分为第二子区间[-10,1)和第一子区间[1,100]两个子区间。若随机值为0,那么就不选取噪声,若位于1到100之间就选取噪声,选取的方式多种多样。例如,第一指令集合中噪声指令的数量(如为100)与第一子区间内的标识的数量相同,那么直接选取以随机值为标识的噪声指令即可;若第一指令集合中噪声指令的数量(如为20)与第一子区间内的标识的数量不相同,则可利用噪声指令的数量对随机值进行取余运算,然后取以得到余数为标识的噪声指令即可,若随机值为133,对20取余数得到13,选取的噪声就是第一指令集合中标识为13的噪声。

可选地,按照指示信息从第一指令集合中获取目标噪声指令包括:第一轮选取噪声指令时,生成为随机数的指示信息,在指示信息表示的数值位于预设数值区间(如大于0的数值区间)的情况下,随机从第一指令集合中选取目标噪声指令,并将指示信息表示的随机值减1;在第n(n≥2)轮选取噪声指令时,若指示信息当前的数值仍然位于预设数值区间,随机从第一指令集合中选取目标噪声指令,若指示信息当前的数值不位于预设数值区间,则不选取目标噪声指令。

例如,生成的随机数为2,第一轮选取噪声指令时,直接随机从第一指令集合中选取目标噪声指令并将随机数变更为1,第二轮选取噪声指令时,直接随机从第一指令集合中选取目标噪声指令并将随机数变更为0,第三轮及之后则不再选取噪声指令。

在上述实施例中,在执行指令序列中任务指令的过程中,执行第一指令集合中的噪声指令包括如下两种方式:其一是在进程虚拟机中执行目标噪声指令,并在执行完目标噪声指令之后执行目标任务指令;其二是在进程虚拟机中执行目标任务指令,并在执行完目标任务指令之后执行目标噪声指令。

考虑到程序中加入噪声的成本和程序的规模成正比,程序规模越大抵抗侧信道攻击的成本就越高,在本申请的技术方案中,可把程序编译到进程虚拟机中,进程虚拟机也是一个程序,虚拟机可以模拟cpu的执行过程去执行需要保护的程序,但它自身的规模是固定的,把程序的规模固定了下来,那么抵抗侧信道攻击的成本也就随之固定了。此方案的核心思想主要是抽象出第二指令集合,然后以执行第二指令集合中的指令替代执行目标程序,除了利用虚拟机实现还可其它具备编译和指令执行功能的软件或者硬件替代。

作为一种可选的实施例,下面结合具体的实施方式进一步详述本申请的技术方案,如图2所示:

步骤s202,预先编写一个进程虚拟机v,v里面设计有若干条基本指令(即第二指令集合),类似cpu的指令集。

步骤s204,将v中每一条基本指令配置为可伴随噪声指令一起执行,如v中每一条基本指令执行时,可随机选择数字n,循环n次,每次随机选择一条指令噪声指令v’,并执行噪声指令v’。

步骤s206,把需要保护的目标程序p编译到v上。

普通程序(即待保护程序p)到v的指令序列的变换参见图3:利用编译器对p进行编译,得到用v中的指令集来表达的p,然后利用进程虚拟机v执行得到的指令(即进行侧信道攻击保护)。

步骤s208,执行编译得到的指令序列,因为p变换成了v中的基本指令,而v中的每一条基本指令都添加了噪声,因此p整体可以完整地防御侧信道分析攻击,而这个过程可由v的编译器自动完成,无需额外的人力介入。

进程虚拟机对自身的防御侧信道分析攻击保护参见图4:在进程虚拟机v内部执行编译得到的指令a,然后随机选择一个数字n,若n≤0,则直接执行指令a而不执行噪声指令,若n>0,则执行一条随机的噪声指令,可以将n的值减1,下次再利用n判断是否执行噪声指令。

只需对进程虚拟机本身做好防御侧信道攻击保护,就能保护好在它之上运行的程序,而这个成本是固定的,不会随程序规模增长而增长,从而可以在提高效率的同时降低成本。

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

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

根据本申请实施例的另一个方面,还提供了一种用于实施上述防攻击的程序运行方法的防攻击的程序运行装置。图5是根据本申请实施例的一种可选的防攻击的程序运行装置的示意图,如图5所示,该装置可以包括:

获取单元501,用于获取待运行的目标程序;

转化单元503,用于将所述目标程序转化为指令序列,其中,所述指令序列表示的任务与所述目标程序表示的任务相同;

执行单元505,用于在执行所述指令序列中任务指令的过程中,执行第一指令集合中的噪声指令,其中,所述噪声指令表示的任务与所述指令序列表示的任务不同。

需要说明的是,该实施例中的获取单元501可以用于执行本申请实施例中的步骤s102,该实施例中的转化单元503可以用于执行本申请实施例中的步骤s104,该实施例中的执行单元505可以用于执行本申请实施例中的步骤s106。

通过上述模块,可在执行指令序列中任务指令的过程中,自动执行第一指令集合中的噪声指令,使得有规律和可分析的程序变得没有规律和模式可寻,从而增大侧信道分析的难度,可以解决相关技术软件的安全性较低的技术问题,进而达到提高软件的安全性的技术效果。

可选地,转化单元还可用于获取所述目标程序中的每一个程序片段,并从所述第二指令集合查找与每个程序片段匹配的任务指令,其中,所述第二指令集合中包括预先创建的多条任务指令;将匹配到的任务指令按照对应的程序片段在所述目标程序中的位置进行排列,得到所述指令序列。

可选地,转化单元还可用于在从所述第二指令集合查找与每个程序片段匹配的任务指令之前,在编译器中获取第二指令集合,其中,所述第二指令集合中的每条任务指令用于表示一个子任务;在从所述第二指令集合查找与每个程序片段匹配的任务指令时按照如下方式对所述目标程序中的每个程序片段进行处理:利用所述编译器从所述第二指令集合中查找表示的子任务与当前处理的程序片段匹配的任务指令,其中,所述目标程序中的每个程序片段用于表示一个子任务。

可选地,执行单元在执行第一指令集合中的噪声指令的过程中,还可用于:获取为目标任务指令生成的指示信息,其中,所述目标任务指令为所述指令序列中当前待在进程虚拟机中运行的任务指令,所述指示信息为按照预设方式生成的;按照所述指示信息从所述第一指令集合中获取目标噪声指令。

可选地,执行单元还可用于在所述进程虚拟机中执行所述目标噪声指令,并在执行完所述目标噪声指令之后执行所述目标任务指令;或,在所述进程虚拟机中执行所述目标任务指令,并在执行完所述目标任务指令之后执行所述目标噪声指令。

可选地,执行单元在按照所述指示信息从所述第一指令集合中获取目标噪声指令时,还可用于:在所述指示信息表示的标识属于第一标识集合的情况下,从所述第一指令集合中选取标识与所述指示信息表示的标识匹配的所述目标噪声指令,其中,所述第一标识集合中保存的标识与所述第一指令集合中噪声指令的标识匹配。

可选地,执行单元在获取为目标任务指令生成的指示信息之后,还可用于:在所述指示信息表示的标识属于第二标识集合的情况下,直接在所述进程虚拟机中执行所述目标任务指令,其中,所述第二标识集合中保存的标识与所述第一指令集合中噪声指令的标识不匹配。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在相应的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。

根据本申请实施例的另一个方面,还提供了一种用于实施上述防攻击的程序运行方法的服务器或终端。

图6是根据本申请实施例的一种终端的结构框图,如图6所示,该终端可以包括:一个或多个(图6中仅示出一个)处理器601、存储器603、以及传输装置605,如图6所示,该终端还可以包括输入输出设备607。

其中,存储器603可用于存储软件程序以及模块,如本申请实施例中的防攻击的程序运行方法和装置对应的程序指令/模块,处理器601通过运行存储在存储器603内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的防攻击的程序运行方法。存储器603可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器603可进一步包括相对于处理器601远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置605用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置605包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置605为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器603用于存储应用程序。

处理器601可以通过传输装置605调用存储器603存储的应用程序,以执行下述步骤:

获取待运行的目标程序;

将目标程序转化为指令序列,其中,指令序列表示的任务与目标程序表示的任务相同;

在执行指令序列中任务指令的过程中,执行第一指令集合中的噪声指令,其中,噪声指令表示的任务与指令序列表示的任务不同。

处理器601还用于执行下述步骤:

获取目标程序中的每一个程序片段,并从第二指令集合查找与每个程序片段匹配的任务指令,其中,第二指令集合中包括预先创建的多条任务指令;

将匹配到的任务指令按照对应的程序片段在目标程序中的位置进行排列,得到指令序列。

采用本申请实施例,提供了一种“获取待运行的目标程序;将目标程序转化为指令序列,其中,指令序列表示的任务与目标程序表示的任务相同;在执行指令序列中任务指令的过程中,执行第一指令集合中的噪声指令,其中,噪声指令表示的任务与指令序列表示的任务不同”的方案。可在执行所述指令序列中任务指令的过程中,自动执行第一指令集合中的噪声指令,使得有规律和可分析的程序变得没有规律和模式可寻,从而增大侧信道分析的难度,解决了相关技术软件的安全性较低的技术问题,进而达到提高软件的安全性的技术效果。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图6所示的结构仅为示意,终端可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图6其并不对上述电子装置的结构造成限定。例如,终端还可包括比图6中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图6所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行防攻击的程序运行方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

获取待运行的目标程序;

将目标程序转化为指令序列,其中,指令序列表示的任务与目标程序表示的任务相同;

在执行指令序列中任务指令的过程中,执行第一指令集合中的噪声指令,其中,噪声指令表示的任务与指令序列表示的任务不同。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

获取目标程序中的每一个程序片段,并从第二指令集合查找与每个程序片段匹配的任务指令,其中,第二指令集合中包括预先创建的多条任务指令;

将匹配到的任务指令按照对应的程序片段在目标程序中的位置进行排列,得到指令序列。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

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