密码程序多样化的制作方法

文档序号:11657206阅读:211来源:国知局
密码程序多样化的制造方法与工艺

本公开涉及数据处理系统。更具体地,本公开涉及利用密码程序(cryptographicprogram)执行一个或多个密码操作的数据处理系统。



背景技术:

已经知道向数据处理系统提供密码程序以执行一个或多个密码操作,如加密数据、解密数据、操纵密码钥。生成抗恶意修改和/或反向工程分析的密码程序可能会使用相当多的资源。对系统完整性的一种形式的攻击可能是将在一个设备上部署的密码程序复制到另一设备,从而使得该密码程序在该另一设备上可能不适当地被用于执行密码操作。因此,可能希望形成一种密码程序,这种密码程序被绑定到个体设备上运行并且如果被复制到另一个设备则不能运作。然而,生成抗滥用和反向工程并捆绑到个体设备的适当混淆的密码程序所需时间和资源在所耗资源、时间以及费用方面是不利的。



技术实现要素:

本公开的至少一些实施例提供一种操作数据处理装置的方法,该方法包括:在所述数据处理装置处接收个性化程序;运行所述个性化程序以读取表征所述数据处理装置的多个变量的值作为个性化输入,并且根据所述个性化输入生成多样化值;将所述多样化值作为多样化输入提供给密码程序;并且运行所述密码程序以执行依据所述多样化值的密码操作。

本公开提供了一种以抗恶意干扰的方式将密码程序捆绑到个体设备的技术。具体地,个性化程序被提供给设备并且用于依据从个体设备读出的表征个体设备的多个变量生成多样化输入。密码程序然后执行依赖于所接收的多样化值的密码操作。本技术认识到希望使用密码程序的个体设备将在适当选择的表征这些设备的变量方面表现出很大差异,从而个性化程序将针对这些设备接收不同的个性化输入,并且不同的多样化值可通过个性化程序生成并被提供给密码程序以更改其执行的密码操作。因此,从一个设备实例复制到另一设备实例的密码程序将在那些不同的实例中接收不同的多样化值并因此执行不同的密码操作,从而如果希望在不同的设备中执行相同的密码操作的话,则不能简单地将密码程序复制到不同的设备,因为所执行的密码操作将依赖于将由此不同设备中的个性化程序生成的不同的多样化值。因此,密码程序及其相关联的密码操作被安全地捆绑到个体设备,而无需为每个设备提供单独的密码程序。

将会认识到,表征个体数据处理装置(设备)的多个变量可以采用多种不同的形式。可供个性化程序容易访问的一种便捷形式的变量是表征数据处理装置的运行环境的配置的变量。例如,这些变量可包括数据处理装置的硬件属性(如,imei值、存储器大小、序列号、mac地址)和/或静态软件配置变量(如,/etc目录内的条目、windows注册表条目,等)中的一个或多个。

数据处理装置的特征变量(可形成个性化输入的部分)的另一示例是通过对数据处理装置的动态变量应用处理操作而确定的结果值,其中,指定要应用的处理操作的数据被存储在安全存储区内以使得该数据保持是秘密的。与设备相关联的某些动态变量可能具有可预测的属性,如设备的电池的充电周期计数通常仅增加。因此,对个性化程序的个性化输入可以是指示与电池的充电周期计数相对应的动态变量保持不变或者已经按照预期方式增加的标志。如果密码程序和应用于动态变量的安全存储的处理操作被复制到另一设备,则该另一设备上的动态变量的不同值很可能根据所述处理操作产生不同的结果,从而导致对于个性化程序的不同个性化输入。在一些实施例中,指定要被应用于动态变量的数据处理操作的数据本身可被嵌入在密码程序中,该密码程序利用其自己的依据所涉数据处理装置的静态变量的多样化值被多样化。

当个性化程序在隔离的运行环境中运行而使得把个性化值结合到针对密码操作的输入的算法可以秘密运行时,系统的安全性得以改善。提供这种秘密性的此隔离的运行环境可采取各种不同的形式。在一些实施例中,硬件可提供可运行个性化程序的信任的运行环境(例如,arm处理器的配有信任区(trustzone)架构的处理器的安全域)。隔离的运行环境的其他形式可以是,例如需要物理钥(例如usb软件狗)允许个性化程序运行来生成多样化值。针对个性化程序的隔离的运行环境的另一种形式可以通过个性化程序的混淆来提供,藉此,部署的/安装的个性化程序通过使得源程序(例如,个性化程序的源代码版本)经受代码混淆处理(例如,代码扁平化、代码重排序、变量碎片化)而形成。

多样化值控制(至少部分控制)个体数据处理装置(设备)的密码程序所执行的密码操作。为了服务器可以适当地与个体设备上的密码程序交互,一些实施例可把指定多样化值的数据发送给服务器。服务器于是可以利用提供给设备的相同的密码程序并依据其所接收的多样化值来加密被保护数据,并将此发送给所涉数据处理装置(设备)。依据被目标数据处理装置(目标设备)处的密码程序利用的相同的多样化值对被保护数据进行加密具有如下效果:在目标数据处理装置处执行用于对经加密的被保护数据进行解密的密码操作可以正确地执行并恢复出被保护数据。然而,对相同的密码程序使用不同的多样化值的另一设备如果接收到经加密的被保护数据,则因为其将被提供不同的多样化值而使得其密码程序将执行不同的密码操作,从而该设备不能对经加密的被保护数据进行解密。

当指定设备使用的多样化值的数据被返回服务器时,这可以以多种不同方式来完成。在一些示例实施例中,多样化值可以按照加密形式的多样化值而被传送。另一种可能方式是通过发送生成多样化值的个性化输入的加密形式(例如,利用公钥/私钥加密)来传送多样化值,从而使得接收服务器能够利用其发送给所涉及的数据处理装置(设备)的个性化程序来自己从已经发送给该服务器的个性化输入(具有加密形式)生成相同的多样化值。可以通过使得个性化程序包括至少一个嵌入变量并且由个性化程序生成的多样化值作为此嵌入变量的函数来为系统添加进一步安全性。因此,可以利用不同的嵌入变量生成个性化程序的不同实例,从而这些实例可以从相同的个性化输入生成不同的多样化值。这使得更难以发现个性化输入和由个性化程序产生的多样化值之间的关系。密码程序可以在使用密码程序的设备的许多实例上是相同的(例如,从应用商店下载的相同的二进制程序),但是个性化程序应用本地多样化来实现所期望的设备特定的密码操作。

本公开的技术在无线移动设备领域特别具有实用性,其中作为系统的初始化/安装(包括密码程序的使用)的部分,无线移动设备可以无线下载个性化程序。然而,本公开的技术还可被用于无线移动设备领域以外。

本公开的至少一些另外的实施例提供了一种数据处理装置,该数据处理装置包括程序控制的处理电路,程序控制的处理电路被配置为执行如下步骤:在所述数据处理装置处接收个性化程序;运行所述个性化程序以读取表征所述数据处理装置的多个变量的值作为个性化输入,并且根据所述个性化输入生成多样化值;将所述多样化值作为多样化输入提供给密码程序;并且运行所述密码程序以执行依据所述多样化值的密码操作。

本公开的至少一些实施例提供了一种配置数据处理装置的方法,该方法包括:从所述数据处理装置的变量集中选择一适当子集,所述适当子集的值用作表征所述数据处理装置的多个变量的值;生成个性化程序,所述个性化程序用于控制所述数据处理装置读取表征所述数据处理装置的所述多个变量的值作为个性化输入以及根据所述个性化输入生成针对密码程序的多样化值;并且将所述个性化程序发送给所述数据处理装置。

除了先前讨论的在使用密码程序的数据处理装置(设备)处的行为,本公开的技术还关于对数据处理装置(设备)进行配置并与数据处理装置(设备)通信的(一个或多个)系统(例如,向数据处理装置提供个性化程序的服务器)的行为显示出补充方面。具体地,提供给不同数据处理装置的个性化程序可以通过从数据处理装置的变量集选择适当子集(其中,适当子集的值然后用作要被正生成的个性化程序利用的、表征数据处理装置的多个变量的值)来变化。因此,利用特定的所选适当子集的特征变量生成的个性化程序将被发送给目标数据处理装置,然后在目标数据处理装置处生成适当的多样化值。针对相应的所生成的个性化程序的适当子集选择的变化有助于抵抗攻击者获得对个性化程序的操作的理解而可能视图规避它们的使用所提供的额外的安全性。

如前所讨论的,提供个性化程序的服务器(或者与提供的服务器适当相关联的另一服务器)可以从已经安装个性化程序的数据处理装置接收指定多样化值的数据,并且然后利用此多样化值形成经加密的被保护数据,此经加密的被保护数据要被安全地发送给数据处理装置从而该数据可以在目标接收者数据处理装置处利用相同的多样化值作为本地设备安装的密码程序的输入而被解密。

在一些实施例中,除了个性化程序被发送给目标数据处理装置以外,密码程序本身也可以被发送给目标数据处理装置。在其他实施例中,密码程序可以经由不同的信道单独下载/安装,然后通过适当个性化程序的下载被授权/配置以供使用。

本公开的至少一些实施例还提供了一种数据处理装置,该数据处理装置包括程序控制的处理电路,所述程序控制的处理电路被配置为执行如下步骤:从所述数据处理装置的变量集中选择一适当子集,所述适当子集的值用作表征所述数据处理装置的多个变量的值;生成个性化程序,所述个性化程序用于控制所述数据处理装置读取表征所述数据处理装置的所述多个变量的值作为个性化输入以及根据所述个性化输入生成针对密码程序的多样化值;并且将所述个性化程序发送给所述数据处理装置。

本公开技术的其他方面、特征和优点将从下面结合附图阅读的对于示例的描述而变得显而易见。

附图说明

图1示意性示出服务器与多个移动设备无线通信;

图2示意性示出向移动设备提供个性化程序和密码程序以及在移动设备处利用个性化程序生成多样化值,其中,密码程序根据多样化值执行密码操作;

图3是示意性示出服务器处与向新设备安装密码功能相关联的动作的流程图;

图4是示意性示出在设备处与向此新设备安装密码功能相关联的动作的流程图;

图5是示意性示出服务器向设备发送被保护数据的流程图;以及

图6是示意性示出设备处执行密码操作的流程图。

具体实施方式

图1示意性示出数据处理系统2,该数据处理系统包括服务器4,服务器4经由无线发送器6被链接到多个无线移动设备8、10、12。无线移动设备8、10、12例如可以采取智能电话8、平板电脑10和智能手表12的形式。还将认识到所公开的技术还可以被应用于无线移动设备以外的设备,例如个人计算机、物联网(iot)设备,等等。

可能希望在无线移动设备8、10、12中使用密码程序。例如,无线移动设备可以使用与银行账户交互的安全应用。这种安全应用可以包括用于执行密码操作(如加密、解密、密码钥操纵)的密码程序。密码程序可能是以相当多的努力产生/生成的,以针对所涉安全应用具有独特形式,并且加密程序可以被一定程度混淆以使得难以进行对密码程序的行为的反向工程,难以执行对任何密码钥或者其他秘密信息(例如,密码算法的行为)的提取。然而,对密码程序的一种形式的滥用将是把密码程序的实例从无线移动设备之一(如智能电话8)复制到这些无线设备中的另一者(如平板电脑10),然后试图运行该密码程序以执行未经授权的密码操作,诸如对被保护数据进行解密。本公开的技术用于通过利用个性化程序的使用来把密码程序捆绑到了移动设备8、10、12,该个性化程序响应于个性化输入来生成被提供给密码程序的多样化值并且密码程序根据多样化值执行密码操作。

图2示意性示出利用本技术的一个示例。密码程序生成器14生成要被分发到多个移动设备8、10、12的密码程序16。密码程序16可以采取“密钥盒”程序的形式,其包含经混淆的安全形式的秘密密码算法和秘密密码钥二者。如果密码程序16从一个设备被复制到另一设备,则密码算法和密码钥也在那些设备之间被拷贝,但是这二者设备的用户不能检查那些密码钥和密码算法的细节,而是他们被提供了调用密码程序16所提供的密码功能的能力。

在个体移动设备的情形中,当希望向移动设备添加安全处理应用时,密码程序16的拷贝从保持密码程序16的服务器被安装到移动设备,以在移动设备处形成安装的密码程序18。同时或者也可以在不同时间,该服务器或者也可以是不同的服务器利用个性化程序生成器20响应于指定特征变量选择、函数选择以及(一个或多个)嵌入变量的输入生成要被安装到移动设备以供安装的密码程序18使用的个性化程序22的实例。个性化程序生成器20利用特征变量选择输入从设备的可能特征变量超集选择一适当子集。所选适当子集被将要生成的个性化程序22的实例用作对该个性化程序的个性化输入。类似地,对个性化程序生成器20的函数选择用于从个性化程序22可应用于个性化输入的多个可能函数选择要被将要生成的个性化程序22应用的特定函数。将认识到,函数选择可选择逻辑运算符、操作数排序等的不同组合,形成个性化输入的所选择的不同特征值藉由这些不同组合可被逻辑结合以生成将要被提供给安装的密码程序18的多样化值。个性化程序生成器20还可以接收一个或多个嵌入变量,这些嵌入变量将被嵌入个性化程序中,并且从个性化输入生成多样化值依据这些嵌入变量。这样的(一个或多个)嵌入变量可以是嵌入个性化程序22的一个或多个字面变量(literalvariable)。

个性化程序22可以由个性化程序生成器20生成为源程序(例如,具有源代码形式),并且然后经受混淆步骤24,在步骤24中个性化程序被混淆,例如通过代码扁平化、代码重排、变量碎片化以及其他技术,以便形成抗反向工程的经混淆的个性化程序,从而使得个性化输入和所生成的相关联多样化值之间的映射更难理解。

在步骤24处生成的经混淆的个性化程序被安装以在移动设备中提供安装的个性化程序26。一旦安装,或者每当安全应用要被使用时,安装的个性化程序26用于读取表征设备的变量的值作为对于安装的个性化程序26的个性化输入。这些表征设备的变量可采用很广的多种不同形式,诸如硬件属性、静态软件配置属性、对动态变量执行秘密处理操作以核查它们具有预期值的结果,等等。安装的个性化程序26对于个性化输入以及当个性化程序生成器20生成个性化程序22时所选择的函数指定的任何嵌入变量执行所选择的处理函数,以生成多样化值。

多样化值被安全地发送回提供安装的密码程序18的服务器。密码程序18根据提供给它的多样化值执行其密码操作。个性化输入针对不同移动设备具有不同值。个性化输入可表征设备提供的运行环境。这些通常在那些设备的实例之间不同,诸如,安装的存储器大小、imei值、mac地址、处理器类型、缓存存储器大小,等等。此外,个体设备的静态软件配置也将不同,诸如固件版本、注册表值、/etc目录条目,等等。因此,安装的个性化程序26“监听”安装该程序的设备,以读取该设备的特征变量以用作该设备的“指纹”,从而生成多样化值,该多样化值在即使相同的个性化程序26在不同的设备上运行的情况中也会在不同设备之间不同。因此,安装的密码程序18及其相关联多样化值被捆绑到移动设备的个体实例(或至少将会产生相同个性化输入的那些实例一很少有两个设备将会生成相同的个性化输入)。此外,安装的个性化程序26的经混淆的本质使得攻击者难以理解个性化程序可以如何被修改以当个性化程序被安装到不同设备上时从一组不同的个性化输入生成所希望的多样化。

以加密形式被返回到服务器的多样化值在服务器中被解密并存储,使得其实质上可被用作对于服务器处密码程序16的相应实例的输入,从而能够执行密码操作以把被保护数据发送给具有安装的密码程序18并且利用相同的多样化值的移动设备。因此,当服务器和设备二者利用相同的密码程序16、18以及相同的多样化值(密码程序16、18基于多样化值执行密码操作)时,在服务器和设备之间提供了安全通信信道。

如上所述,对于安装的个性化程序26的个性化输入可包括来自对设备的动态变量进行处理的结果值。此结果可以从对动态变量执行秘密处理操作而得出。秘密处理操作可以通过存储在安全存储器中被保护,或者可以作为已安装在移动设备上的另外单独的密码程序的部分而被保护。如果动态变量具有匹配预期特征的特征,例如,动态变量是仅被预期增加的计数器并且处理操作核查该计数器已按照与持续被安装在它们初始被安装的相同设备实例上的密码程序和个性化程序一致的方式增加(即它们未被拷贝到不同设备),则结果值将具有特定形式。

在上述示例中,个性化程序生成器20生成源代码形式的个性化程序22。还可以是,个性化程序22可被形成为不同的形式,如经编译的形式。不论如何,个性化程序22可被认为是源程序,其然后经受步骤24的混淆以生成要被作为安装的个性化程序26安装在移动设备中的一种形式的个性化程序。所应用的混淆可以按照抵抗反向工程的方式而在个性化程序的实例间变化。多样化程序对多样化输入值所应用的多样化函数(算法)和/或对要使用的多样化输入值的选择可以频繁改变,以使攻击者更难破坏安全性。所有用户下载多样化程序,但是多样性可以容易或定期改变。更一般地,可以考虑为个性化程序提供隔离的运行环境,以保护个性化程序的安全性。此隔离的运行环境可以通过混淆手段或其他手段(诸如由移动设备支持的安全运行域(例如,信任的运行环境))来提供。个性化程序的实例使用的个性化输入值可以是从所有可能个性化输入值的超集中选择的一适当子集。这使得攻击者在未对大量设备进行分析的情况下难以识别出超集。

为了促进服务器和移动设备之间的通信而由移动设备返回服务器的多样化值可以多种形式被传送。一种形式可以是作为移动设备使用的经加密的个性化输入,从而使得多样化值可以在服务器侧重新生成,因为服务器有权接入正被移动设备使用的相同的个性化程序并因此可以通过将相同的个性化输入应用于该个性化程序而生成多样化值。另一示例形式将是作为经加密的多样化值(例如利用公钥/私钥加密)来传送多样化值。

图3是示意性示出当期望在新设备处安装密码功能时在服务器处执行的动作的流程图。在步骤28,处理等待,直到检测到向新设备安装密码功能的要求为止。步骤30用于选择表征作为安装目标的设备的运行环境的可能变量的适当子集,该适当子集要被用作对于个性化程序的个性化输入的部分。这些变量例如可采取硬件属性、静态软件配置属性、对动态变量执行预定处理操作的结果、以及在识别个体设备提供的特定运行环境中有用的特征。步骤32生成一个或多个嵌入变量,这一个或多个嵌入变量要被用于控制将要生成的个性化程序的操作。步骤34选择要被个性化程序应用以根据提供给个性化程序的个性化输入生成多样化值的特定函数。步骤36利用来自步骤30的所选变量、来自步骤32的嵌入变量以及来自步骤34的所选函数来生成个性化程序。个性化程序被生成为源程序形式。步骤38对步骤36生成的个性化程序执行混淆,诸如,通过代码扁平化、代码重排、变量碎片化,等等。步骤40将经混淆的个性化程序发送给目标设备。

如果将要结合个性化程序使用的密码程序尚未发送给目标设备或者安装在目标设备处,则步骤42用于将密码程序发送给目标设备。

在步骤44,处理等待,直到从目标设备接收到经加密的多样化值。当从目标设备接收到经加密的多样化值时,步骤46用于对此多样化进行解密并存储,以供服务器随后联合关于已经在设备处安装的密码程序的其自己版本使用,从而提供了与目标设备交换被保护数据的安全通信信道。

图4是示意性示出当要在目标设备上安装密码功能时在目标设备处的动作的流程图。在步骤48,处理等待,知道确定要安装密码功能为止。步骤50用于从服务器接收经混淆的个性化程序26。可选地,密码程序18也可以在此时接收。还可以是,密码程序可以已在之前单独地被安装,图4示出的处理与激活该密码程序而非其初始安装相关联。

在步骤52,经混淆的个性化程序被设备运行,以将个性化输入读入经混淆的个性化程序并生成对于该设备唯一(或准唯一)的多样化值。在步骤54,在步骤52生成的多样化值被加密(例如,利用服务器的公钥)并被发送回之前提到的服务器。在步骤52生成的多样化值也可以被提供到设备处安装的密码程序18并用于控制密码程序18依据该多样化值执行密码操作。

图5示意性示出服务器处想要向设备发送被保护数据的操作。在步骤56,处理等待,直到有要发送的数据为止。当有要发送的数据时,步骤58用于利用与在所涉设备上安装的相同的密码程序16以及所存储的从目标设备返回的并表示该个体目标设备的运行环境的多样化值对数据进行加密。在步骤60,在步骤58生成的经加密的数据被发送到目标设备。正确的目标设备将利用相同的密码程序和相同的多样化值,从而能够对发送给它的经加密的数据进行解密。接收到此经加密的数据的不同(未授权的)设备可能具有相同的密码程序16和个性化程序,但是将不会根据其自己拥有的个性化程序实例生成相同的多样化值,因此将不能对其接收的经加密的数据执行适当的解密。

图6示意性示出当设备希望执行密码操作时在设备上执行的处理操作。在步骤62,处理等待,直到确定设备要执行密码操作为止。处理进行到步骤64,此处安装在所涉设备上的个性化程序26读取设备的特征变量的值以形成对于该设备的个性化程序26的个性化输入。在步骤66,设备处经混淆的个性化程序26利用所读取的特征变量的值(即,个性化输入)以对个性化输入(以及个性化程序内的任何嵌入变量)执行预先选定的函数,以形成多样化值。在步骤68,在步骤66生成的多样化值被提供给设备处安装的密码程序18的实例。步骤70依据所接收的多样化值执行所希望的密码操作。

在本申请中,术语“被配置为”用于指装置的元件具有能够执行所定义的操作的配置。在该上下文下,“配置”指硬件或软件的互连的方式或布置。例如,装置可以具有提供所定义的操作的专用硬件,或者处理器或其他处理设备可以被编程以执行相应功能。“被配置为”并不暗指装置元件为了提供所定义的操作而需要以任何方式更改。

虽然在此已经参考附图对本发明的实施例进行了详细描述,但是应当理解,本发明并不限于这些精确的实施例,并且本领域技术人员能够在不脱离如所附权利要求定义的本发明的精神和范围内实现各种变化和更改。

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