移动终端软件安全元器件系统及用于该系统的密钥系统的制作方法

文档序号:10687424阅读:503来源:国知局
移动终端软件安全元器件系统及用于该系统的密钥系统的制作方法
【专利摘要】本发明具体地涉及移动终端软件安全元器件系统及用于移动终端软件安全元器件系统的密钥系统。安全元器件系统包括:移动终端,其内设置有具有用于与软件安全元器件进行交互的安全安全逻辑模块和对移动终端的文件存储和运行进行安全保护的软件安全元器件的安全SDK,安全安全逻辑模块需要与软件安全元器件进行交互并完成指纹校验;安全SDK与软件安全元器件管理平台和软件安全元器件在建立通讯时需要进行基于密钥的双向认证及工作密钥的协商,协商成功后安全SDK和软件安全元器件之间的数据传输使用通信密钥进行加密保护。由于本发明完全采用软件实现,提高了适用范围,具有普通开源操作系统的移动终端即可运行,可成为移动终端上一种普适性解决方案。
【专利说明】
移动终端软件安全元器件系统及用于该系统的密钥系统
技术领域
[0001]本发明一般地涉及移动终端安全元件领域,并且更具体地涉及移动终端软件安全元器件系统及用于移动终端软件安全元器件系统的密钥系统。
【背景技术】
[0002]随着智能终端的普及,移动互联网正以爆炸式的飞速发展。以移动应用为核心,逐步发展起来的移动应用商城,将开发者、应用商城、用户三者紧密结合在一起,形成了开发者开发应用,商城上线并售卖应用,用户购买应用,开发者和商城获利分成的产业链条。
[0003]智能终端的发展,给用户提供了更好的使用界面和极其丰富的各类应用,但同时也在操作系统、终端性能的提升、以及利益的驱使下,滋生了大量病毒、木马、吸费、窃取隐私等各类恶意代码、恶意应用。为了能够达到盗取资金,窃取信息等目的,攻击者尽力隐藏自己的恶意代码,将其附着在合法应用上,采取破解,篡改应用的方式发布。许多应用使用者在不知情的状态下,安装了含有恶意代码的应用,不知不觉中丢失资金、话费、流量等等。安装了例如安卓这样开放性高的操作系统的移动终端,尤其会成为上述各类恶意代码和恶意应用的目标。
[0004]为了保证终端应用运行时安全性,尤其是关键运算、操作、数据的安全性,需要在移动终端内实现可保护数据存储、运算安全的运行环境。目前业内主要有两种方案。一种采用硬件安全芯片提供安全运行及存储环境,例如手机、SIM卡内预置芯片安全元件(SecureElement,SE),这些芯片中具有加密和/或解密逻辑电路,为了更进一步地保护芯片不被外部恶意解析攻击,芯片往往还需要有特殊材料制作的外壳包裹。另一种采用双域安卓或双操作系统等方案,分隔操作系统来实现数据及运行隔离。但以上两种方案均需要定制手机或其他硬件支持,尤其是在安装了普通安装安卓系统的手机上不易实现,因此这些普通安卓系统手机在安全方面受到巨大威胁。

【发明内容】

[0005]为了解决现有虚拟安全保护技术对普通安卓系统手机适用性不高的问题,提出了一种移动终端软件安全元器件(Soft Secure Element,SSE)的系统及实现方法。此系统及方法中,针对本地存储文件安全、运行时内存安全、算法及密钥安全、程序逻辑安全等问题提供统一框架及解决方案。
[0006]为了实现上目的,本发明提供一种移动终端软件安全元器件系统,其特征在于,包括:
[0007]移动终端,移动终端内具有安全SDK,所述安全SDK具有用于与软件安全元器件进行交互的安全安全逻辑模块和对移动终端的文件存储和运行进行安全保护的软件安全元器件;
[0008]软件安全元器件管理平台,能够与软件安全元器件通信,并能够存储、管理和验证软件安全元器件使用的密钥;
[0009]所述移动终端需要调用软件安全元器件时,其安全SDK中的安全安全逻辑模块需要与软件安全元器件进行交互并完成指纹校验;
[0010]所述安全SDK与软件安全元器件管理平台和软件安全元器件在建立通讯时需要进行基于密钥的双向认证及工作密钥的协商,协商成功后安全SDK和软件安全元器件之间的数据传输使用通信密钥进行加密保护。
[0011]进一步地,所述指纹校验过程中,安全安全逻辑模块的指纹是基于SDK类信息、版本信息和指纹因子I通过安全散列算法得出的,软件安全元器件的指纹是基于软件安全元器件的文件大小、文件时间、版本信息和指纹因子2通过安全散列算法得出的。其中,所述指纹因子是在安全SDK和软件安全元器件中预置的,不会随着移动终端的运行而改变;它可以是但不限于是一串随机数字或一串字符。安全SDK在每次调用软件安全元器件时都需要重复进行指纹校验,以确保移动终端环境未发生变化,能有效避免第三方对软件安全元器件的非法调用或访问。
[0012]进一步地,所述软件安全元器件包括能够确保调用软件安全元器件方合法性的访问控制及管理模块、能够对移动终端内存储的数据文件加密的存储管理模块、对软件安全元器件密钥进行安全算法保护和管理的白盒算法模块、对软件安全元器件代码进行安全保护的软件安全元器件保护模块和对移动终端物理内存进行虚拟化使安全元器件具有反调试功能的虚拟化管理模块;
[0013]其中,所述存储管理模块、软件安全元器件保护模块和白盒算法模块协同合作能够使移动终端内存储的数据文件进行安全保护;
[0014]所述虚拟化管理模块和白盒算法模块协同合作能够使移动终端内存得到保护。[00?5]进一步地,所述安全SDK中的安全逻辑模块包括接口单元和AC管理单元,所述软件安全元器件的访问控制及管理模块包括接口单元、AC管理单元和完整性校验单元;
[0016]其中,所述完整性校验单元包括能够校验安全安全逻辑模块指纹与软件安全元器件指纹是否一致的校验算法次单元和管理及存储指纹信息的指纹管理次单元;
[0017]安全逻辑模块中的接口单元与软件安全元器件的接口单元功能对应,安全逻辑模块的AC管理单元与软件安全元器件的AC管理单元功能对应,他们与完整性校验单元配合实现安全SDK对软件安全元器件的交互、指纹验证以及后续可能的调用。其中,安全SDK的安全逻辑模块的核心功能是调用软件安全元器件实现,软件安全元器件的访问控制及管理模块则通过指纹校验这个授权认证手段有效避免第三方对软件安全元器件的非法访问及非法调用,从而进一步避免了非法调用所产生的数据。
[0018]进一步地,所述存储管理模块包括策略配置单元和透明加密单元;
[0019]策略配置单元对移动终端内存储的数据文件做出存储加密的配置选择和管理;
[0020]透明加密单元使用软件安全元器件密钥对策略配置单元配置的数据文件进行透明加密。
[0021]需要注意的是,并不是所有在移动终端内存储的数据文件都需要进行加密,策略配置单元可以通过数据文件的种类或其他特征来判断是非对该数据文件进行加密。透明加密单元则将策略配置单元选择的加密的文件进行加密。透明加密模块能够使存储于移动终端和/或连接于移动终端的存储介质中的数据文件都受到有效的保护,避免第三方进行静态文件分析。
[0022]进一步地,所述白盒算法模块包括算法逻辑单元和密钥管理单元;
[0023]算法逻辑单元具有具体算法过程;
[0024]密钥管理单元可以调用算法逻辑单元中的算法管理和存储软件安全元器件密钥。
[0025]其中,上述算法可以是但不限于AES加密算法、HMAC-SHA安全散列算法、SM3密码杂凑算法、SM4分组密码算法。白盒算法模块可以有效隐藏安全软件元器件中的密钥,确保其存储、运行时密钥不可直接被获取。通过白盒算法技术,软件安全元器件将密码运算逻辑与密钥进行预处理,处理后的算法数据还被分片存储,使处理后的算法逻辑与密钥实现了有效隐藏,最终使第三方在算法运行时无法对算法逻辑和密钥进行分析。
[0026]进一步地,所述软件安全元器件保护模块包括数据变化单元、分支保护单元、差异化单元和控制流变换单元;
[0027]所述数据变化单元能将移动终端代码中的常量数值和常量字符串定义转化为用函数生产对应数值和字符;
[0028]所述分支保护单元能增加移动终端代码中的无用程序分支;
[0029]所述控制流变换单元能将移动终端代码中的控制变量值转换为函数变换;
[0030]所述差异化处理单元能随机增加移动终端代码中的无用变量、空指令函数。
[0031]上述软件安全元器件保护模块从代码这一基础层面上完善软件安全元器件的安全保护能力,能有效避免第三方对软件安全元器件的核心代码的篡改从而避免了软件安全元器件的运行异常。另外,软件安全元器件保护模块还可以使软件安全元器件的代码逻辑被第三方分析,从而可以有效使软件安全元器件避免被破解。
[0032]进一步地,所述虚拟化管理模块包括内存虚拟单元和指令虚拟单元;
[0033]内存虚拟单元能够虚拟出部分独立的移动终端物理内存,使其用于安全元器件的运行;
[0034]指令虚拟单元可以虚拟出部分系统指令,用于直接从软件底层获取移动终端的信息。
[0035]内存虚拟单元由于能够提供安全元器件运行的独立内存,可以使软件安全元器件有效避免受到内存攻击。指令虚拟单元由于可以使软件安全元器件从软件底层获取移动终端的信息,从而可以使软件安全元器件有效避免第三方替换移动终端操作系统指令的接口。上述虚拟化管理模块还可以采用内存加扰技术,将内存中数据和/或方法名称采用相对地址方式进行跳转,隐藏方法入口和方法名。上述虚拟化管理模块还可以采用反调试技术,对调试进程进行监控,当有非法进程时禁止软件安全元器件的核心功能运行;同时进行进程时间轴监控,防止进程运行中第三方对软件安全元器件造成暂停。
[0036]本发明的另一个目的是一种用于移动终端软件安全元器件系统的密钥系统,其特征在于,包括:
[0037]主密钥,MasterKey,是软件安全元器件预置的密钥,用于软件安全元器件个人化以生成下述工作密钥和存储密钥,可以被白盒算法加密后存储于软件安全元器件中;
[0038]工作密钥,WorkKey,其通过安全SDK软件安全元器件和软件安全元器件管理平台三方密钥交换时生成,用于软件安全元器件对其调用方合法性的认证;
[0039]会话密钥,CommKey,其由软件安全元器件管理平台生成,安全SDK发布时其在安全SDK内预置,用于保证软件安全元器件、安全SDK和软件安全元器件管理平台之间的安全通?目;
[OO4O]存储密钥,StoreKey,其由软件安全元器件生成并与移动终端唯一绑定,用于移动终端内存储数据文件的加密。
[0041 ] 上述密钥系统与移动终端运行环境绑定,密钥系统中部分密钥由各个终端运行时动态生成,使密钥本身不易被第三方破解,从而提高移动终端的安全性能。
[0042]进一步地,所述软件安全元器件个人化包括下述步骤:
[0043](a)软件安全元器件判断自身是否初始化,若未进行初始化,进入下述步骤(C),若已经初始化,则进入下述步骤(b);
[0044](b)已初始化的软件安全元器件根据已存储的终端信息判断是否存在终端环境变化,若得到终端环境已变化的结果,进入下述步骤(C),若得到终端环境未变化,则结束个人化;
[0045](c)软件安全元器件获取终端信息,实现软件安全元器件与终端的绑定;
[0046](d)软件安全元器件恢复预置主密钥,根据终端信息产生随机规则;
[0047](e)软件安全元器件根据主密钥和随机规则,并与软件安全元器件管理平台进行通信交换因子后,分散产生工作密钥;
[0048](f)根据主密钥与随机规则,分散产生存储密钥;
[0049](g)对上述步骤所产生的工作密钥和/或存储密钥进行加扰,分片和加密保护,结束个人化。
[0050]进一步地,所述步骤(e)具体包括下述子步骤:
[0051 ] (I)移动终端的应用调用安全SDK,同时向安全SDK传入应用ID;
[0052 ] (2)安全SDK向软件安全元器件发起调用请求;
[0053](3)软件安全元器件针对该调用请求向安全SDK返回随机参数I;
[0054](4)安全SDK根据随机参数I和预置的会话密钥,使用加密算法计算生成参数2;
[0055](5)安全SDK将参数2传输至软件安全元器件;
[0056](6)软件安全元器件对自身是否进行个人化以及所在终端的状态是否变化做出判断,若软件安全元器件已经个人化并且其所在终端环境未变化,进入下述步骤(14),否则进入下述步骤(7);
[0057](7)软件安全元器件根据主密钥、参数2、随机参数I,应用ID,软件安全元器件ID和时间戳,使用加密算法计算生成参数I;
[0058](8)软件安全元器件将上述参数1、参数2、随机参数1、应用ID、软件安全元器件和时间戳发送至软件安全元器件管理平台;
[0059](9)软件安全元器件管理平台校验参数I和参数2,加密会话密钥,生成随机参数2,并根据主密钥、加密后会话密钥、和随机参数2使用加密算法生成参数3;
[0060](10)软件安全元器件管理平台根据随机参数1、随机参数2和主密钥生成工作密钥;
[0061](11)软件安全元器件管理平台向软件安全元器件返回加密后的会话密钥、随机参数2、参数3;
[0062 ] (12)软件安全元器件验证参数3,解密并保存会话密钥;
[0063](13)软件安全元器件根据随机参数1、随机参数2和主密钥计算生成工作密钥;
[0064](14)软件安全元器件验证参数2,当验证成功后安全SDK才能调用软件安全元器件,否则软件安全元器件将向安全SDK返回错误。
[0065]上述个人化方法及工作密钥的产生方法一即步骤(e),可以有效验证安全SDK、软件安全元器件和软件安全元器件管理平台三者身份,并及时发现任何一方的异常。
[0066]本发明的另一个目的是提供一种移动终端,其特征在于,包括权利要求1-3任一项所述的安全SDK和软件安全元器件。
[0067]所述移动终端包括智能电话;移动电话;个人数字助理;移动计算设备,例如,上网本和平板计算机;膝上计算机。这种移动终端具有更高的安全性能,可以有效避免第三方的非法访问及破坏。
[0068]本发明提供的终端软件安全元器件系统及用于软件安全元器件的密钥系统可有效防止第三方针对移动终端内核心文件、核心逻辑、核心数据的静态、动态分析和破解,保证终端内业务逻辑或密码运算的安全性,为终端提供一个完整的安全运行环境。由于本发明完全采用软件实现,提高了适用范围,具有普通开源操作系统的移动终端即可运行,可成为移动终端上一种普适性解决方案。
【附图说明】
[0069]图1是根据本发明公开的移动终端软件安全元器件系统的一个实施例的系统主要构成图。
[0070]图2是根据本发明公开的移动终端软件安全元器件系统的一个较佳实施例的主要构成图。
[0071]图3是图2所示实施例中的软件安全元器件的主要构成图。
[0072]图4是根据本发明公开的密钥系统的一个实施例中个人化的流程示意图。
[0073]图5是图4所示个人化中步骤(e)的具体流程示意图。
【具体实施方式】
[0074]下面详细描述本发明的实施例,所述实施例的示例在附图中示出。所述参考附图描述的实施例是示例性的,仅用于解释本发明,而不能视为对本发明的限制。为了避免不必要地模糊所述实施例,本部分对一些本领域的公知技术,即对于本领域技术人员而言是显而易见的技术,未进行详细描述。
[0075]图1是根据本发明公开的移动终端软件安全元器件系统的一个实施例的系统主要构成图。
[0076]本实施方式的安全元件系统包括:
[0077]移动终端100,移动终端内具有安全SDK110,安全SDKllO具有用于与软件安全元器件112进行交互的安全安全逻辑模块111和对移动终端的文件存储和运行进行安全保护的软件安全元器件112;软件安全元器件管理平台200,能够与软件安全元器件112通信,并能够存储、管理和验证软件安全元器件使用的密钥;移动终端100需要调用软件安全元器件112时,其安全SDKl 10中的安全安全逻辑模块111需要与软件安全元器112件进行交互并完成指纹校验;安全SDKl 10与软件安全元器件管理平台200和软件安全元器件112在建立通讯时需要进行基于密钥的双向认证及工作密钥的协商,协商成功后安全SDKllO和软件安全元器件112之间的数据传输使用通信密钥进行加密保护。
[0078]图2是根据本发明公开的移动终端软件安全元器件系统的一个较佳实施例的主要构成图。
[0079]本实施方式的安全元件系统包括:
[0080]移动终端500,移动终端内具有安全SDK510,安全SDK510具有用于与软件安全元器件512进行交互的安全安全逻辑模块511和对移动终端的文件存储和运行进行安全保护的软件安全元器件512;软件安全元器件管理平台600,能够与软件安全元器件512通信,并能够存储、管理和验证软件安全元器件使用的密钥;移动终端500需要调用软件安全元器件512时,其安全SDK510中的安全安全逻辑模块511需要与软件安全元器512件进行交互并完成指纹校验;安全SDK510与软件安全元器件管理平台600和软件安全元器件512在建立通讯时需要进行基于密钥的双向认证及工作密钥的协商,协商成功后安全SDK510和软件安全元器件512之间的数据传输使用通信密钥进行加密保护。
[0081]上述指纹校验过程中,安全安全逻辑模块511的指纹是基于SDK类信息、版本信息和指纹因子I通过安全散列算法得出的,软件安全元器件512的指纹是基于软件安全元器件的文件大小、文件时间、版本信息和指纹因子2通过安全散列算法得出的。
[0082 ] 安全SDK510中的安全逻辑模块511包括接口单元5111和AC管理单元5112。
[0083]图3是图2所示实施例中的软件安全元器件512的主要构成图。
[0084]软件安全元器件512包括:
[0085]能够确保调用软件安全元器件方合法性的访问控制及管理模块5121、能够对移动终端内存储的数据文件加密的存储管理模块5122、对软件安全元器件密钥进行安全算法保护和管理的白盒算法模块5125、对软件安全元器件代码进行安全保护的软件安全元器件保护模块5123和对移动终端物理内存进行虚拟化使安全元器件具有反调试功能的虚拟化管理模块5124。
[0086]其中,访问控制及管理模块包括接口单元51211、AC管理单元51212和完整性校验单元51212;所述完整性校验单元51213包括能够校验安全安全逻辑模块指纹与软件安全元器件指纹是否一致的校验算法次单元51214和管理及存储指纹信息的指纹管理次单元51215ο
[0087]存储管理模块5122包括策略配置单元51221和透明加密单元51222;策略配置单元51221对移动终端内存储的数据文件做出存储加密的配置选择和管理;透明加密单元51222使用软件安全元器件密钥对策略配置单元配置的数据文件进行透明加密。
[0088]软件安全元器件保护模块5123包括能将移动终端代码中的常量数值和常量字符串定义转化为用函数生产对应数值和字符的数据变化单元51231,能增加移动终端代码中的无用程序分支的分支保护单元51232,能将移动终端代码中的控制变量值转换为函数变换的差异化单元51233和能随机增加移动终端代码中的无用变量、空指令函数的控制流变换单元51234。
[0089]虚拟化管理模块5124包括内存虚拟单元51241和指令虚拟单元51242;内存虚拟单元51241能够虚拟出部分独立的移动终端物理内存,使其用于安全元器件的运行;指令虚拟单元51242可以虚拟出部分系统指令,用于直接从软件底层获取移动终端的信息。
[0090]白盒算法模块5125包括算法逻辑单元51251和密钥管理单元51252;算法逻辑单元51251具有AES具体算法过程;密钥管理单元51252可以调用算法逻辑单元51251中的AES加密算法管理和存储软件安全元器件密钥,即在存储密钥时使用AES加密算法进行打乱顺序存放,调用密钥时按照AES加密算法进行组合。
[0091]图4是根据本发明公开的密钥系统的一个实施例中个人化的流程示意图。
[0092]个人化包括下述步骤:
[0093](a)软件安全元器件判断自身是否初始化,若未进行初始化,进入下述步骤(C),若已经初始化,则进入下述步骤(b);
[0094](b)已初始化的软件安全元器件根据已存储的终端信息判断是否存在终端环境变化,若得到终端环境已变化的结果,进入下述步骤(C),若得到终端环境未变化,则结束个人化;
[0095](c)软件安全元器件获取终端信息,实现软件安全元器件与终端的绑定;
[0096](d)软件安全元器件恢复预置主密钥,根据终端信息产生随机规则;
[0097](e)软件安全元器件根据主密钥和随机规则,并与软件安全元器件管理平台进行通信交换因子后,分散产生工作密钥;
[0098](f)根据主密钥与随机规则,分散产生存储密钥;
[0099](g)对上述步骤所产生的工作密钥和/或存储密钥进行加扰,分片和加密保护,结束个人化。
[0100]图5是图4所示个人化中步骤(e)的具体流程示意图,具体包括下述子步骤:
[0101](I)移动终端的应用调用安全SDK,同时向安全SDK传入应用ID;
[0102](2)安全SDK向软件安全元器件发起调用请求;
[0103](3)软件安全元器件针对该调用请求向安全SDK返回随机参数I;
[0104](4)安全SDK根据随机参数I和预置的会话密钥,使用加密算法计算生成参数2;
[0105](5)安全SDK将参数2传输至软件安全元器件;
[0106](6)软件安全元器件对自身是否进行个人化以及所在终端的状态是否变化做出判断,若软件安全元器件已经个人化并且其所在终端环境未变化,进入下述步骤(14),否则进入下述步骤(7);
[0107](7)软件安全元器件根据主密钥、参数2、随机参数I,应用ID,软件安全元器件ID和时间戳,使用加密算法计算生成参数I;
[0108](8)软件安全元器件将上述参数1、参数2、随机参数1、应用ID、软件安全元器件和时间戳发送至软件安全元器件管理平台;
[0109](9)软件安全元器件管理平台校验参数I和参数2,加密会话密钥,生成随机参数2,并根据主密钥、加密后会话密钥、和随机参数2使用加密算法生成参数3;
[0110](10)软件安全元器件管理平台根据随机参数1、随机参数2和主密钥生成工作密钥;
[0111](11)软件安全元器件管理平台向软件安全元器件返回加密后的会话密钥、随机参数2、参数3;
[0112](12)软件安全元器件验证参数3,解密并保存会话密钥;
[0113](13)软件安全元器件根据随机参数1、随机参数2和主密钥计算生成工作密钥;
[0114](14)软件安全元器件验证参数2,当验证成功后安全SDK才能调用软件安全元器件,否则软件安全元器件将向安全SDK返回错误。
[0115]图中SSEID为软件安全元器件ID、APPID为应用ID、Timestamp为时间戳、Randoml为随机参数l、Random2为随机参数2、?々1^1为参数1、?41^2为参数2、?41^3为参数3,(:01111111^7为会话密钥、WorkKey 为工作密钥、MasterKey 为主密钥,PARA2 = HMAC-SHA256 (CommKey,Randoml)表示的是采用哈希算法产生参数2的方程,PARAl =HMAC-SHA256 (MasterKey,PARA2,Randoml,AppID,SSEID,Timestamp)表示的是采用哈希算法产生参数l的方程,PARA3= HMAC_SHA256(MasterKey,加密CommKey,Random2)表示的是采用哈希算法产生参数3的方程。
[0116]上述校验参数1、参数2或参数3的具体方法是当验证方从被验证方处获取这个参数以及产生这个参数所需部分或全部的因素,使用这些因素根据同样的算法计算后将计算结果和原参数进行比较,结果相同则认为验证通过。例如,软件安全元器件在验证安全SDK时,需要获得参数2以及产生参数2所需的会话密钥和随机参数I,软件安全元器件使用会话密钥和随机参数I根据PARA2 = HMAC-SHA256(CommKey,Randoml)产生参数2 ’,软件安全元器件比较参数2与参数2’,参数2与参数参数2’相同时,安全SDK才能够成功调用软件安全元器件。
[0117]这个流程可以理解为安全SDK、软件安全元器件和软件安全元器件管理平台三方密钥协商的一个较佳的实施方式。
【主权项】
1.一种移动终端软件安全元器件系统,其特征在于,包括: 移动终端,移动终端内具有安全SDK,所述安全SDK具有用于与软件安全元器件进行交互的安全安全逻辑模块和对移动终端的文件存储和运行进行安全保护的软件安全元器件; 软件安全元器件管理平台,能够与软件安全元器件通信,并能够存储、管理和验证软件安全元器件使用的密钥; 所述移动终端需要调用软件安全元器件时,其安全SDK中的安全逻辑模块需要与软件安全元器件进行交互并完成指纹校验; 所述安全SDK与软件安全元器件管理平台和软件安全元器件在建立通讯时需要进行基于密钥的双向认证及工作密钥的协商,协商成功后安全SDK和软件安全元器件之间的数据传输使用通信密钥进行加密保护。2.根据权利要求1所述的系统,其特征在于:所述指纹校验过程中,安全安全逻辑模块的指纹是基于SDK类信息、版本信息和指纹因子I通过安全散列算法得出的,软件安全元器件的指纹是基于软件安全元器件的文件大小、文件时间、版本信息和指纹因子2通过安全散列算法得出的。3.根据权利要求1或2所述的系统,其特征在于:所述软件安全元器件包括能够确保调用软件安全元器件方合法性的访问控制及管理模块、能够对移动终端内存储的数据文件加密的存储管理模块、对软件安全元器件密钥进行安全算法保护和管理的白盒算法模块、对软件安全元器件代码进行安全保护的软件安全元器件保护模块和对移动终端物理内存进行虚拟化使安全元器件具有反调试功能的虚拟化管理模块; 其中,所述存储管理模块、软件安全元器件保护模块和白盒算法模块协同合作能够使移动终端内存储的数据文件进行安全保护; 所述虚拟化管理模块和白盒算法模块协同合作能够使移动终端内存得到保护。4.根据权利要求3所述的系统,其特征在于:所述安全SDK中的安全逻辑模块包括接口单元和AC管理单元,所述软件安全元器件的访问控制及管理模块包括接口单元、AC管理单元和完整性校验单元; 其中,所述完整性校验单元包括能够校验安全安全逻辑模块指纹与软件安全元器件指纹是否一致的校验算法次单元和管理及存储指纹信息的指纹管理次单元; 安全逻辑模块中的接口单元与软件安全元器件的接口单元功能对应,安全逻辑模块的AC管理单元与软件安全元器件的AC管理单元功能对应,他们与完整性校验单元配合实现安全SDK对软件安全元器件的交互、指纹验证以及后续可能的调用。5.根据权利要求3或4所述的系统,其特征在于:所述存储管理模块包括策略配置单元和透明加密单元; 策略配置单元对移动终端内存储的数据文件做出存储加密的配置; 透明加密单元使用软件安全元器件密钥对策略配置单元配置的数据文件进行透明加LU O6.根据权利要求3-5中任一项所述的系统,其特征在于:所述白盒算法模块包括算法逻辑单元和密钥管理单元; 算法逻辑单元具有具体算法过程; 密钥管理单元可以调用算法逻辑单元中的算法管理和存储软件安全元器件密钥。7.根据权利要求3-6中任一项所述的系统,其特征在于:所述软件安全元器件保护模块包括数据变化单元、分支保护单元、差异化单元和控制流变换单元; 所述数据变化单元能将移动终端代码中的常量数值和常量字符串定义转化为用函数生产对应数值和字符; 所述分支保护单元能增加移动终端代码中的无用程序分支; 所述控制流变换单元能将移动终端代码中的控制变量值转换为函数变换; 所述差异化处理单元能随机增加移动终端代码中的无用变量、空指令函数。8.根据权利要求3-7中任一项所述的系统,其特征在于:所述虚拟化管理模块包括内存虚拟单元和指令虚拟单元; 内存虚拟单元能够虚拟出部分独立的移动终端物理内存,使其用于安全元器件的运行; 指令虚拟单元可以虚拟出部分系统指令,用于直接从软件底层获取移动终端的信息。9.一种用于权利要求1-8任一项中所述的移动终端软件安全元器件系统的密钥系统,其特征在于,包括: 主密钥,MasterKey,是软件安全元器件预置的密钥,用于软件安全元器件个人化以生成下述工作密钥和存储密钥,可以被白盒算法加密后存储于软件安全元器件中; 工作密钥,WorkKey,其通过安全SDK软件安全元器件和软件安全元器件管理平台三方密钥交换时生成,用于软件安全元器件对其调用方合法性的认证; 会话密钥,CommKey,其由软件安全元器件管理平台生成,安全SDK发布时其在安全SDK内预置,用于保证软件安全元器件、安全SDK和软件安全元器件管理平台之间的安全通信;存储密钥,StoreKey,其由软件安全元器件生成并与移动终端唯一绑定,用于移动终端内存储数据文件的加密。10.根据权利要求9所述的系统,其特征在于:所述软件安全元器件个人化包括下述步骤: (a)软件安全元器件判断自身是否初始化,若未进行初始化,进入下述步骤(c),若已经初始化,则进入下述步骤(b); (b)已初始化的软件安全元器件根据已存储的终端信息判断是否存在终端环境变化,若得到终端环境已变化的结果,进入下述步骤(C),若得到终端环境未变化,则结束个人化; (C)软件安全元器件获取终端信息,实现软件安全元器件与终端的绑定; (d)软件安全元器件恢复预置主密钥,根据终端信息产生随机规则; (e)软件安全元器件根据主密钥和随机规则,并与软件安全元器件管理平台进行通信交换因子后,分散产生工作密钥; (f)根据主密钥与随机规则,分散产生存储密钥; (g)对上述步骤所产生的工作密钥和/或存储密钥进行加扰,分片和加密保护,结束个人化。11.根据权利要10所述的系统,其特征在于,所述步骤(e)具体包括下述子步骤: (1)移动终端的应用调用安全SDK,同时向安全SDK传入应用ID; (2)安全SDK向软件安全元器件发起调用请求; (3)软件安全元器件针对该调用请求向安全SDK返回随机参数I; (4)安全SDK根据随机参数I和预置的会话密钥,使用加密算法计算生成参数2; (5)安全SDK将参数2传输至软件安全元器件; (6)软件安全元器件对自身是否进行个人化以及所在终端的状态是否变化做出判断,若软件安全元器件已经个人化并且其所在终端环境未变化,进入下述步骤(14),否则进入下述步骤(7); (7)软件安全元器件根据主密钥、参数2、随机参数I,应用ID,软件安全元器件ID和时间戳,使用加密算法计算生成参数I; (8)软件安全元器件将上述参数1、参数2、随机参数1、应用ID、软件安全元器件和时间戳发送至软件安全元器件管理平台; (9)软件安全元器件管理平台校验参数I和参数2,加密会话密钥,生成随机参数2,并根据主密钥、加密后会话密钥、和随机参数2使用加密算法生成参数3; (10)软件安全元器件管理平台根据随机参数1、随机参数2和主密钥生成工作密钥; (11)软件安全元器件管理平台向软件安全元器件返回加密后的会话密钥、随机参数2、参数3; (12)软件安全元器件验证参数3,解密并保存会话密钥; (13)软件安全元器件根据随机参数1、随机参数2和主密钥计算生成工作密钥; (14)软件安全元器件验证参数2,当验证成功后安全SDK才能调用软件安全元器件,否则软件安全元器件将向安全SDK返回错误。12.一种移动终端,其特征在于,包括权利要求1-8任一项所述的安全SDK和软件安全元器件。
【文档编号】G06F21/57GK106055931SQ201610331316
【公开日】2016年10月26日
【申请日】2016年5月18日
【发明人】蔡准, 郭晓鹏, 孙悦, 王在方, 赵军, 杜旭
【申请人】北京芯盾时代科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1