基于密钥的业务安全性验证方法及装置的制造方法
【技术领域】
[0001]本发明涉及互联网领域,特别涉及一种基于密钥的业务安全性验证方法及装置。
【背景技术】
[0002]随着互联网技术的快速发展,出现了各种类型的应用程序,这些应用程序可以安装在终端上来运行。而在终端运行这些应用程序时,可以通过这些应用程序完成一些业务,比如,聊天业务、支付业务等等。对于一些需要保证安全性的业务,比如支付业务,当通过应用程序完成这些业务时,需要验证该业务的安全性。
[0003]目前,在终端出厂之前,终端厂商可以在该终端eMMC(Embedded Multi MediaCard,嵌入式多媒体卡)的RPMB(Replay Protected Memory Block,回访保护内存块)中内置设备私钥,该设备私钥包含于设备根密钥中,且该设备根密钥用于验证该终端的安全性。当该终端验证业务的安全性时,可以从该终端e匪C的RPMB中获取该设备私钥,并基于该设备私钥验证该业务的安全性。
[0004]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:通过设备私钥对业务进行安全性验证的风险较大,进而降低了业务的安全性。
【发明内容】
[0005]为了解决现有技术的问题,本发明实施例提供了一种基于密钥的业务安全性验证方法及装置。所述技术方案如下:
[0006]第一方面,提供了一种基于密钥的业务安全性验证方法,所述方法包括:
[0007]接收当前提供业务的应用程序发送的密钥获取请求,所述密钥获取请求中携带应用程序标识;
[0008]基于所述应用程序标识,获取所述应用程序的应用私钥,所述应用私钥是通过内置的设备私钥生成,所述设备私钥包含于设备根密钥中;
[0009]基于所述应用私钥验证所述业务的安全性。
[0010]第二方面,提供了一种基于密钥的业务安全性验证方法,所述方法包括:
[0011 ]当检测到对当前所提供业务进行验证的生物特征信息时,向终端发送密钥获取请求,所述密钥获取请求中携带应用程序标识;
[0012]当接收到所述终端基于所述应用程序标识发送的业务私钥时,基于所述业务私钥,对所述生物特征信息进行签名,得到第三签名信息,所述业务私钥是所述终端基于应用私钥生成,所述应用私钥是所述终端基于内置的设备私钥生成,所述应用私钥为应用程序的私钥,所述设备私钥包含于设备根密钥中;
[0013]向应用服务器发送业务验证请求,所述业务验证请求中携带所述第三签名信息和终端标识,使所述应用服务器验证所述业务的安全性。
[0014]第三方面,提供了一种基于密钥的业务安全性验证方法,所述方法包括:
[0015]接收应用程序发送的业务验证请求,所述业务验证请求中携带第三签名信息和终端标识,所述第三签名信息是所述应用程序基于当前所提供业务的业务私钥对检测到的生物特征信息进行签名得到,所述业务私钥是终端基于应用私钥生成,所述应用私钥是所述终端基于内置的设备私钥生成,所述应用私钥为所述应用程序的私钥,所述设备私钥包含于设备根密钥中;
[0016]基于所述终端标识,获取所述业务的业务公钥;
[0017]基于所述业务公钥和所述第三签名信息,对所述业务的安全性进行验证。
[0018]第四方面,提供了一种基于密钥的业务安全性验证装置,所述装置包括:
[0019]接收模块,用于接收当前提供业务的应用程序发送的密钥获取请求,所述密钥获取请求中携带应用程序标识;
[0020]第一获取模块,用于基于所述应用程序标识,获取所述应用程序的应用私钥,所述应用私钥是通过内置的设备私钥生成,所述设备私钥包含于设备根密钥中;
[0021]验证模块,用于基于所述应用私钥验证所述业务的安全性。
[0022 ]第五方面,提供了一种基于密钥的业务安全性验证装置,所述装置包括:
[0023]第一发送模块,用于当检测到对当前所提供业务进行验证的生物特征信息时,向终端发送密钥获取请求,所述密钥获取请求中携带应用程序标识;
[0024]签名模块,用于当接收到所述终端基于所述应用程序标识发送的业务私钥时,基于所述业务私钥,对所述生物特征信息进行签名,得到第三签名信息,所述业务私钥是所述终端基于应用私钥生成,所述应用私钥是所述终端基于内置的设备私钥生成,所述应用私钥为应用程序的私钥,所述设备私钥包含于设备根密钥中;
[0025]第二发送模块,用于向应用服务器发送业务验证请求,所述业务验证请求中携带所述第三签名信息和终端标识,使所述应用服务器验证所述业务的安全性。
[0026]第六方面,提供了一种基于密钥的业务安全性验证装置,所述装置包括:
[0027]第一接收模块,用于接收应用程序发送的业务验证请求,所述业务验证请求中携带第三签名信息和终端标识,所述第三签名信息是所述应用程序基于当前所提供业务的业务私钥对检测到的生物特征信息进行签名得到,所述业务私钥是终端基于应用私钥生成,所述应用私钥是所述终端基于内置的设备私钥生成,所述应用私钥为所述应用程序的私钥,所述设备私钥包含于设备根密钥中;
[0028]第一获取模块,用于基于所述终端标识,获取所述业务的业务公钥;
[0029]第一验证模块,用于基于所述业务公钥和所述第三签名信息,对所述业务的安全性进行验证。
[0030]本发明实施例提供的技术方案带来的有益效果是:在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,因此,基于该应用私钥验证该业务的安全性,可以提高该业务的安全性。
【附图说明】
[0031]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1是本发明实施例提供的一种终端的系统架构图;
[0033]图2是本发明实施例提供的一种基于密钥的业务安全性验证方法流程图;
[0034]图3是本发明实施例提供的另一种基于密钥的业务安全性验证方法流程图;
[0035]图4是本发明实施例提供的再一种基于密钥的业务安全性验证方法流程图;
[0036]图5是本发明实施例提供的又一种基于密钥的业务安全性验证方法流程图;
[0037]图6是本发明实施例提供的一种生成应用密钥的方法流程图;
[0038]图7是本发明实施例提供的一种应用公钥上传方法的流程图;
[0039]图8是本发明实施例提供的另一种应用公钥上传方法的流程图;
[0040]图9是本发明实施例提供的一种生成业务密钥的方法流程图;
[0041 ]图10是本发明实施例提供的一种业务公钥上传方法的流程图;
[0042]图11是本发明实施例提供的一种基于密钥的业务安全性验证装置结构示意图;
[0043]图12是本发明实施例提供的另一种基于密钥的业务安全性验证装置结构示意图;
[0044]图13是本发明实施例提供的再一种基于密钥的业务安全性验证装置结构示意图;
[0045]图14是本发明实施例提供的又一种基于密钥的业务安全性验证装置结构示意图;
[0046]图15是本发明实施例提供的一种终端的结构示意图;
[0047]图16是本发明实施例提供的一种服务器的结构示意图。
【具体实施方式】
[0048]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0049]在对本发明实施例进行详细地解释说明之前,先对本发明实施例的实施环境进行介绍。如图1所示,终端包括应用程序层、操作系统层和硬件层,应用程序层位于操作系统层之上,操作系统层位于硬件层之上。该应用程序层用于指示该终端安装的应用程序,操作系统层用于指示该终端所安装的操作系统,该操作系统层可以包括操作系统框架,该操作系统框架可以包括KeyStore API(KeyStore Applicat1n Programming Interface;密钥存储应用程序编程接口)和KeyStoreDaemon(密钥存储交互系统服务),硬件层用于指示该终端的硬件结构,该硬件层可以包括eMMC和TEE (Trusted Execut1n Environment,可信执行环境)。其中,eMMC是该终端通过嵌入式方式来存储数据的芯片,该eMMC包括RPMB和可信安全存储空间,该RPMB是eMMC中的一块特殊存储区域,且存储在RPMB中的数据存在一定的安全性,并且存储在RPMB和可信安全存储空间中的数据都需要进行多次加密,而存储在RPMB中的数据加密次数大于存储在可信安全存储空间中的数据加密次数,因此,可信安全存储空间的访问速度大于RPMB的访问速度。TEE是指独立于该终端操作系统的一个执行环境,专门用于提供安全服务,且TEE有独立的软件和硬件资源,不会因为该终端操作系统对外部的授权而受到影响。另外,TEE可以包括TA(Trusted 4口口1;[031:;[011,可信应用程序),14为运行在TEE中的应用程序,且ΤΑ的逻辑行为和存储行为是安全的,ΤΑ中的KeyMaster TA(密钥管理应用程序)用于负责TEE中密钥的管理和生成。
[0050]图2是本发明实施例提供的一种基于密钥的业务安全性验证方法的流程图,该方法用于终端中,参见图2,该方法包括:
[0051]步骤201:接收当前提供业务的应用程序发送的密钥获取请求,该密钥获取请求中携带应用程序标识。
[0052]步骤202:基于该应用程序标识,获取该应用程序的应用私钥,该应用私钥是通过内置的设备私钥生成,该设备私钥包含于设备根密钥中。
[0053]步骤203:基于该应用私钥验证该业务的安全性。
[0054]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,因此,基于该应用私钥验证该业务的安全性,可以提高该业务的安全性。
[0055]可选地,基于该应用程序标识,获取该应用程序的应用私钥之前,还包括:
[0056]当接收到该应用程序发送的应用密钥生成请求时,获取设备私钥,该应用密钥生成请求中携带应用程序标识;
[0057]基于该设备私钥,生成该应用程序的应用密钥,该应用密钥包括应用私钥和应用公钥;
[0058]基于该应用程序标识存储生成的应用私钥,将生成的应用公钥上传到应用服务器中。
[0059]可选地,基于该设备私钥,生成该应用程序的应用密钥,包括:
[0060]基于该设备私钥,按照第一指定算法,生成该应用程序的应用密钥。
[0061]可选地,基于该应用程序标识存储生成的应用私钥,包括:
[0062]基于该应用程序标识,判断是否已存储该应用程序的应用私钥;
[0063]如果已存储,则将已存储的应用私钥替换为生成的应用私钥。
[0064]可选地,将生成的应用公钥上传到应用服务器中,包括:
[0065]基于该应用公钥,生成该应用程序的原串;
[0066]基于该设备私钥,对该应用程序原串进行签名,得到第一签名信息;
[0067]将该应用程序的原串和该第一签名信息发送给该应用程序,使该应用程序将该应用公钥上传到应用服务器中。
[0068]可选地,基于该应用私钥验证该业务的安全性,包括:
[0069]当该密钥获取请求中还携带业务标识时,基于该应用程序标识和该业务标识,获取该业务的业务私钥,该业务私钥是通过该应用私钥生成;
[0070]将该业务私钥发送给该应用程序,以通过该业务私钥验证该业务的安全性。
[0071]可选地,基于该应用程序标识和该业务标识,获取该业务的业务私钥之前,还包括:
[0072]当该密钥获取请求中还携带生物特征信息时,判断是否已存储该生物特征信息,该生物特征信息为该应用程序基于该业务检测得到;
[0073]当已存储该生物特征信息时,执行基于该应用程序标识和该业务标识,获取该业务的业务私钥的步骤。
[0074]可选地,基于该应用程序标识和该业务标识,获取该业务的业务私钥之前,还包括:
[0075]基于该应用私钥,生成该业务的业务密钥,该业务密钥包括业务私钥和业务公钥;
[0076]基于该应用程序标识和该业务标识存储生成的业务私钥,将生成的业务公钥上传到应用服务器中。
[0077]可选地,基于该应用私钥,生成该业务的业务密钥,包括:
[0078]基于该应用私钥,按照第二指定算法,生成该业务的业务密钥。
[0079]可选地,将生成的业务公钥上传到应用服务器中,包括:
[0080]基于该业务公钥,生成该业务的原串;
[0081 ]基于该应用私钥,对该业务的原串进行签名,得到第二签名信息;
[0082]将该业务的原串和该第二签名信息发送给该应用程序,使该应用程序将该业务公钥上传到该应用服务器中。
[0083]可选地,该应用私钥和该业务私钥存储在第一安全存储空间中,第一安全存储空间的访问速度大于第二存储空间的访问速度,第二安全存储空间为存储该设备私钥的存储空间。
[0084]可选地,第一安全存储空间为可信安全存储空间,第二安全存储空间为RPMB,可信安全存储空间和RPMB均包含于eMMC中。
[0085]上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再--赘述。
[0086]图3是本发明实施例提供的一种基于密钥的业务安全性验证方法的流程图,该方法用于应用程序中,参见图3,该方法包括:
[0087]步骤301:当检测到对当前所提供业务进行验证的生物特征信息时,向终端发送密钥获取请求,该密钥获取请求中携带应用程序标识。
[0088]步骤302:当接收到终端基于应用程序标识发送的业务私钥时,基于该业务私钥,对该生物特征信息进行签名,得到第三签名信息,该业务私钥是该终端基于应用私钥生成,该应用私钥是该终端基于内置的设备私钥生成,该应用私钥为应用程序的私钥,该设备私钥包含于设备根密钥中。
[0089]步骤303:向应用服务器发送业务验证请求,该业务验证请求中携带该第三签名信息和终端标识,使该应用服务器验证该业务的安全性。
[0090]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。
[0091 ]可选地,该密钥获取请求中还携带该业务标识和该生物特征信息中的至少一个。
[0092]可选地,向终端发送密钥获取请求之前,还包括:
[0093]向该终端发送应用密钥生成请求,该应用密钥生成请求中携带该应用程序标识,使该终端基于该设备私钥生成应用公钥,该应用公钥为该应用程序的公钥;
[0094]当接收到该终端发送的该应用程序的原串和第一签名信息时,向该应用服务器发送应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、该第一签名信息和该终端标识,该应用程序的原串是该终端基于该应用公钥生成,该第一签名信息是该终端基于该设备私钥对该应用程序的原串进行签名得到。
[0095]可选地,向终端发送业务密钥获取请求之前,还包括:
[0096]向该终端发送业务密钥生成请求,该业务密钥生成请求中携带该应用程序标识,使该终端基于该应用私钥生成业务公钥;
[0097]当接收到该终端发送的该业务的原串和第二签名信息时,向该应用服务器发送业务密钥上传请求,该业务密钥上传请求中携带该业务的原串、该第二签名信息和该终端标识,该业务的原串是该终端基于该业务公钥生成,该第二签名信息是该终端基于该应用私钥对该业务的原串进行签名得到。
[0098]上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再--赘述。
[0099]图4是本发明实施例提供的一种基于密钥的业务安全性验证方法的流程图,该方法用于应用服务器中,参见图4,该方法包括:
[0100]步骤401:接收应用程序发送的业务验证请求,该业务验证请求中携带第三签名信息和终端标识,该第三签名信息是该应用程序基于当前所提供业务的业务私钥对检测到的生物特征信息进行签名得到,该业务私钥是终端基于应用私钥生成,该应用私钥是该终端基于内置的设备私钥生成,该应用私钥为该应用程序的私钥,该设备私钥包含于设备根密钥中。
[0101 ]步骤402:基于该终端标识,获取该业务的业务公钥。
[0102]步骤403:基于该业务公钥和该第三签名信息,对该业务的安全性进行验证。
[0103]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。
[0104]可选地,接收应用程序发送的业务验证请求之前,还包括:
[0105]接收该应用程序发送的应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、第一签名信息和该终端标识;
[0106]向根密钥服务器发送密钥验证请求,该密钥验证请求中携带该应用程序的原串、该第一签名信息和该终端标识,使该根密钥服务器对该应用程序的原串进行验证;
[0107]当接收到该根密钥服务器发送的验证通过消息时,从该应用程序的原串中获取应用公钥,该应用公钥为该应用程序的公钥;
[0108]基于该终端标识,存储该应用公钥。
[0109]可选地,接收应用程序发送的业务验证请求之前,还包括:
[0110]接收该应用程序发送的应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、第一签名信息和该终端标识;
[0111]向根密钥服务器发送设备密钥获取请求,该设备密钥获取请求中携带该终端标识,使该根密钥服务器返回设备公钥;
[0112]当接收到该根密钥服务器发送的该设备公钥时,基于该设备公钥和该第一签名信息,对该应用程序的原串进行验证;
[0113]当该应用程序的原串验证通过时,从该应用程序的原串中获取应用公钥,该应用公钥为该应用程序的公钥;
[0114]基于该终端标识,存储该应用公钥。
[0115]可选地,基于该设备公钥和该第一签名信息,对该应用程序的原串进行验证,包括:
[0116]基于该设备公钥,对该第一签名信息进行解签名,得到第一解签名信息;
[0117]判断该第一解签名信息是否与该应用程序的原串相同;
[0118]当该第一解签名信息与该应用程序的原串相同时,确定该应用程序的原串验证通过,否则,确定该应用程序的原串验证不通过。
[0119]可选地,接收应用程序发送的业务验证请求之前,还包括:
[0120]接收该应用程序发送的业务密钥上传请求,该业务密钥上传请求中携带该业务的原串、第二签名信息和该终端标识;
[0121 ]基于该终端标识,获取应用公钥;
[0122]基于该应用公钥和该第二签名信息,对
该业务的原串进行验证;
[0123]当该业务的原串验证通过时,从该业务的原串中获取业务公钥;
[0124]基于该终端标识,存储该业务公钥。
[0125]可选地,基于该应用公钥和该第二签名信息,对该业务的原串进行验证,包括:
[0126]基于该应用公钥,对该第二签名信息进行解签名,得到第二解签名信息;
[0127]判断该第二解签名信息是否与该业务的原串相同;
[0128]当该第二解签名信息与该业务的原串相同时,确定该业务的原串验证通过,否则,确定该业务的原串验证不通过。
[0129]上述所有可选技术方案,均可按照任意结合形成本发明的可选实施例,本发明实施例对此不再--赘述。
[0130]图5是本发明实施例提供的一种基于密钥的业务安全性验证方法的流程图。参见图5,该方法包括:
[0131]步骤501:当终端接收到应用程序发送的应用密钥生成请求时,获取设备私钥,该设备私钥包含于设备根密钥中,该应用密钥生成请求中携带应用程序标识。
[0132]在本发明实施例中,应用程序的私钥是通过该设备私钥生成,因此,当应用程序请求生成自身的私钥时,该应用程序可以向该终端发送应用密钥生成请求。当该终端接收到该应用密钥生成请求时,可以获取设备私钥。
[0133]其中,由于设备私钥内置在终端的第二安全存储空间中,因此,当终端获取该设备私钥时,该终端可以访问该第二安全存储空间,从而获取该设备私钥。
[0134]需要说明的是,第二安全存储空间可以为该终端eMMC的RPMB,当然,随着技术的发展,第二安全存储空间也可以为其他具有安全性的存储空间,本发明实施例对此不做具体限定。
[0135]另外,应用程序标识为该应用程序的标识,该应用程序标识用于唯一标识该应用程序,比如,该应用程序标识可以为该应用程序的名称等等,本发明实施例对此不做具体限定。
[0136]再者,该设备私钥是在该终端出厂时内置在该终端的第二安全存储空间中,且访问第二安全存储空间时需要一定的密钥才能进行,因此,在该终端中内置的设备私钥的安全性可以得到一定的保障。
[0137]需要说明的是,设备根密钥用于验证该设备的安全性,且设备根密钥可以包括设备私钥和设备公钥,该设备私钥只有该终端获知,其他设备无法获知,而设备公钥不仅该终端可以获知,其他设备也可以获知。
[0138]其中,通过密钥访问第二安全存储空间的方法可以参考相关技术,本发明实施例对此不进行详细阐述。
[0139]还需要说明的是,本发明实施例终端侧的执行主体可以为该终端TEE中的KeyMaster ΤΑ,当然,该执行主体还可以为该TEE中其他的ΤΑ,本发明实施例对此不做具体限定。
[0140]步骤502:该终端基于该设备私钥,生成该应用程序的应用密钥,该应用密钥包括应用私钥和应用公钥。
[0141]具体地,该终端可以基于该设备私钥,通过第一指定算法生成该应用程序的应用密钥。
[0142]需要说明的是,第一指定算法可以事先设置,且第一指定算法中存在一定的随机因子,从而可以保证通过第一指定算法多次生成该应用程序的应用密钥不同,比如,第一指定算法可以为RSA算法,本发明实施例对此不做具体限定。
[0143]另外,该应用密钥为该应用程序的ASK(AppSecure Key,应用安全密钥)ASK是每个应用程序唯一的安全密钥,且该应用程序生成ASK的时机可以由该应用程序控制,本发明实施例对ASK的生成时机不做具体限定。
[0144]再者,应用私钥为只有该应用程序可以获知,其他设备无法获知,而应用公钥不仅该应用程序可以获知,其他设备或者应用程序也可以获知。
[0145]步骤503:该终端基于该应用程序标识存储生成的应用私钥,并将生成的应用公钥上传到应用服务器中。
[0146]具体地,当该终端基于该应用程序标识将生成的应用私钥进行存储时,该终端可以基于该应用程序标识,判断是否已存储该应用程序的应用私钥,如果已存储,则将已存储的应用私钥替换为生成的应用私钥。也即是,对于同一个应用程序,在该终端中只存储一个应用私钥。
[0147]由于该应用私钥存储在该终端的第一安全存储空间中,因此,当终端基于该应用程序标识,判断是否已存储该应用程序的应用私钥时,该终端可以从第一安全存储空间中,查找该应用程序标识对应的应用私钥,如果查找到,则确定已存储该应用程序的应用私钥,否则,确定未存储该应用程序的应用私钥。
[0148]需要说明的是,终端中可以存储多个应用程序的应用私钥,因此,为了区分每个应用程序的应用私钥,该终端可以在第一安全存储空间中存储应用程序标识与应用私钥之间的对应关系,进而可以基于该应用程序标识,从该应用程序标识与应用私钥之间的对应关系中查找对应的应用私钥,从而判断是否已存储该应用程序的应用私钥。
[0149]而当该终端将生成的应用公钥上传到应用服务器时,终端可以基于该应用公钥,生成该应用程序的原串,并基于该设备私钥,对该应用程序的原串进行签名,得到第一签名信息,将该应用程序的原串和该第一签名信息发送给该应用程序,使该应用程序将该应用公钥上传到应用服务器中。
[0150]需要说明的是,终端基于该应用公钥生成该应用程序的原串时,该原串中不仅可以包括该应用公钥,还可以包括其他的信息,比如应用程序标识、终端标识、第一计数值等等,其中第一计数值用于指示终端中的应用密钥的使用次数,本发明实施例对其他信息的内容不做具体限定。并且终端基于该应用公钥生成该应用程序的原串时,可以将该应用公钥和其他的信息按照指定格式生成该应用程序的原串,而当应用服务器从该应用程序的原串中获取该应用公钥时,可以按照该指定格式从该应用程序的原串中来获取,该指定格式可以事先设置,本发明实施例对此不做具体限定。
[0151]另外,终端基于该设备私钥对该应用程序的原串进行签名的方法也可以参考相关技术,本发明实施例对此不进行详细阐述。
[0152]需要说明的是,第一安全存储空间为该终端的eMMC中的可信安全存储空间,当然,随着技术的发展,第一安全存储空间也可以为其他具有安全性的存储空间,且第一安全存储空间的访问速度大于第二安全存储空间的访问速度,本发明实施例对此不做具体限定。
[0153]由于该第一签名信息是基于设备私钥对该应用程序的原串进行签名得到,因此,该应用程序将该应用公钥上传到应用服务器时,该应用程序需要基于根密钥服务器来对该应用程序的原串进行验证,且可以通过如下两种方式将该应用公钥上传到应用服务器中,包括:
[0154]第一种方式,该应用程序可以向应用服务器发送应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、该第一签名信息和该终端标识,当该应用服务器接收到该应用程序发送的应用密钥上传请求时,向根密钥服务器发送密钥验证请求,该密钥验证请求中携带该应用程序的原串、第一签名信息和该终端标识。当根密钥服务器接收到该密钥验证请求时,可以根据该终端标识,获取设备公钥。该根密钥服务器基于该设备公钥和第一签名信息,对该应用程序的原串进行验证,当该应用程序的原串验证通过时,该根密钥服务器向应用服务器发送验证通过消息,当该应用服务器接收到该验证通过消息时,从该应用程序的原串中获取应用公钥,并基于该终端标识,存储该应用公钥。
[0155]其中,根密钥服务器中可以存储多个终端的设备公钥,为了区分每个终端的设备公钥,根密钥服务器中可以存储终端标识与设备公钥之间的对应关系,进而当根密钥服务器根据该终端标识获取设备公钥时,该根密钥服务器可以根据该终端标识,从该终端标识与设备公钥之间的对应关系中,获取对应的设备公钥。
[0156]其中,该根密钥服务器基于该设备公钥和第一签名信息,对该应用程序的原串进行验证的操作可以为:该根密钥服务器基于该设备公钥,对第一签名信息进行解签名,得到第一解签名信息,判断第一解签名信息是否与该应用程序的原串相同,当第一解签名信息与该应用程序的原串相同时,确定该应用程序的原串验证通过,否则,确定该应用程序的原串验证不通过。
[0157]由于应用服务器中也可以存储多个终端的应用公钥,因此,为了区分每个终端的应用公钥,该应用服务器基于该终端标识存储该应用公钥时,该应用服务器可以将该终端标识和该应用公钥,存储在终端标识与应用公钥之间的对应关系中。
[0158]需要说明的是,该根密钥服务器基于该设备公钥,对第一签名信息进行解签名的方法可以参考相关技术,本发明实施例对此不做具体限定。
[0159]值得注意的是,根密钥服务器与应用服务器之间的通信通道是一个可信通道。
[0160]另外,该终端标识为该终端的标识,且该终端标识用于唯一标识该终端,比如,该终端标识可以为该终端的IMEI(Internat1nal Mobile Equipment Identity,移动设备国际身份码),本发明实施例对此不做具体限定。
[0161]为了提高该应用公钥的上传安全性,终端可以基于该应用公钥,生成该应用程序的原串。而由于将该应用程序的原串发送给该应用程序的过程中,或者该应用程序将该应用程序的原串发送给应用服务器的过程中存在被篡改的风险,因此,终端将该应用程序的原串发送给该应用程序时,该终端还可以基于该设备私钥,对该应用程序的原串进行签名,得到第一签名信息。之后,对该第一签名信息进行解签名来验证该应用程序的原串是否被篡改,从而进一步提高了该应用公钥的上传安全性。
[0162]需要说明的是,根密钥服务器为存储设备公钥的服务器,应用服务器为该应用程序所对应的服务器,且根密钥服务器和应用服务器均可以是一个服务器或者多个服务器组成的服务器集群,本发明实施例对此不做具体限定。
[0163]第二种方式,该应用程序可以向应用服务器发送应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、该第一签名信息和终端标识,当该应用服务器接收到该应用程序发送的应用密钥上传请求时,向根密钥服务器发送设备密钥获取请求,该设备密钥获取请求中携带该终端标识。当根密钥服务器接收到该设备密钥获取请求时,可以根据该终端标识,获取设备公钥,并将该设备公钥发送给应用服务器。当应用服务器接收到该根密钥服务器发送的设备公钥时,基于该设备公钥和第一签名信息,对该应用程序的原串进行验证,当该应用程序的原串验证通过时,该应用服务器从该应用程序的原串中获取应用公钥,并基于该终端标识,存储该应用公钥。
[0164]其中,应用服务器基于该设备公钥和第一签名信息,对该应用程序的原串进行验证的方法与上述第一种方式中根密钥服务器验证的方法相同,本发明实施例对此不再进行赘述。
[0165]其中,当该终端基于上述方法生成该应用程序的应用密钥之后,当验证该业务的安全性时,可以通过如下的步骤来获取该业务私钥并验证业务的安全性。
[0166]步骤504:当应用程序检测到对当前所提供业务进行验证的生物特征信息时,向终端发送密钥获取请求,该密钥获取请求中携带应用程序标识。
[0167]具体地,当应用程序检测到对当前所提供业务进行验证的生物特征信息时,该应用程序确定需要对当前所提供的业务的安全性进行验证,而验证该业务的安全性时,该应用程序需要基于该业务的业务私钥,对该业务数据进行签名,因此,该应用程序可以向终端发送密钥获取请求,该密钥获取请求用于获取该业务的业务私钥。
[0168]需要说明的是,该生物特征信息用于验证该业务的安全性,且该业务的验证信息可以为指纹信息、掌纹信息、虹膜信息等等,本发明实施例对此不做具体限定。
[0169]另外,当该应用程序中只存在一个业务需要进行安全性验证时,也即是,在该终端中只存储该应用程序的一个业务私钥,此时,该密钥获取请求中可以只携带应用程序标识,进而在该终端接收到该密钥获取请求时,可以直接基于该应用程序标识,获取该应用程序对应的业务私钥。
[0170]当然,该应用程序中也可以存在多个业务需要进行安全性验证,也即是,在该终端中可以存储该应用程序的多个业务私钥,此时,为了准确地获取到该应用程序当前所提供业务的业务私钥,在该密钥获取请求中还需要携带当前所提供业务的业务标识。
[0171]需要说明的是,该业务标识用于唯一标识该应用程序当前所提供的业务,且该业务标识可以为该业务的名称等等,本发明实施例对此不做具体限定。
[0172]可选地,该密钥获取请求中还可以携带该生物特征信息,该生物特征信息用于验证当前操作该终端的用户是否为该终端的持有者,从而验证该业务的安全性。
[0173]步骤505:当该终端接收到该应用程序发送的密钥获取请求时,该终端基于该应用程序标识,获取该业务的业务私钥,并将该业务私钥发送给该应用程序。
[0174]具体地,当该终端接收到该应用程序发送的密钥获取请求时,在该应用程序只存在一个需要进行安全性验证的业务时,也即是,该终端中只存储该应用程序的一个业务私钥时,该终端可以直接基于该应用程序标识,从第一安全存储空间存储的应用程序标识与业务私钥之间的对应关系中,获取该业务的业务私钥,并将该业务私钥发送给该应用程序。而在该应用程序存在多个需要进行安全性验证的业务时,也即是,该终端中存储该应用程序的多个业务私钥时,该密钥获取请求中还携带业务标识,此时,该终端可以基于该应用程序标识和该业务标识,从第一安全存储空间存储的应用程序标识、业务标识与业务私钥之间的对应关系中,获取该业务的业务私钥,并将该业务私钥发送给该应用程序。
[0175]由于第一安全存储空间的访问速度大于第二安全存储空间的访问速度,因此,获取该业务私钥的速度大于获取设备私钥的速度,从而通过应用私钥生成该业务私钥,并通过该业务私钥验证该业务的安全性,可以提高安全验证的效率,并且还降低了对该应用程序性能的影响。
[0176]可选地,当该密钥获取请求中还携带生物特征信息时,该终端可以判断是否已存储该生物特征信息,当已存储该生物特征信息时,确定当前操作该终端的用户为该终端的持有者,该终端再执行基于该应用程序标识,获取该业务的业务私钥的步骤,以通过该业务私钥验证该业务的安全性。
[0177]进一步地,当未存储该生物特征信息时,该终端可以确定当前操作该终端的用户不为该终端的持有者,可能存在风险,可以显示一个提示信息,或者结束操作,本发明实施例对此不做具体限定。
[0178]需要说明的是,在本发明实施例中,由于业务私钥是基于应用私钥生成,从而存储在第一安全存储空间中的应用程序标识与业务私钥之间的对应关系中,或者存储在第一安全存储空间中的应用程序标识、业务标识与业务私钥之间的对应关系中,并且终端可以在进行业务安全性验证之前,通过应用私钥生成业务私钥,还可以在进行业务安全性验证的过程中,通过应用私钥生成业务私钥,本发明实施例对基于应用私钥生成业务私钥的时机不做具体限定。
[0179]当该终端在进行业务安全性验证之前,通过应用私钥生成业务私钥时,该应用程序可以在业务安全性验证之前的任意时机向该终端发送业务密钥生成请求,使终端基于该业务密钥生成请求生成业务密钥,具体可以包括如下(1)-(3)的步骤:
[0180](1)、当该终端接收到该应用程序发送的业务密钥生成请求时,基于应用程序标识,获取该应用私钥,该业务密钥生成请求中携带该应用程序标识。
[0181]具体地,当生成业务密钥时,该应用程序可以向终端发送业务密钥生成请求,当终端接收到该应用程序发送的业务密钥生成请求时,根据该应用程序标识,从第一安全存储空间中获取该应用私钥。
[0182]其中,由于该终端中的第一安全存储空间中可以存储应用程序标识与应用私钥之间的对应关系中,因此,该终端根据该应用程序标识,从第一安全存储空间中获取该应用私钥时,该终端可以根据该应用程序标识,从第一安全存储空间的应用程序标识与应用私钥之间的对应关系中,获取对应的应用私钥。
[0183]需要说明的是,当该应用程序中只存在一个需要进行安全性验证的业务时,该业务密钥获取请求中可以只携带该应用程序标识,而当该应用程序中存在多个需要进行安全性验证的业务时,该业务密钥获取请求中不仅携带该应用程序标识,还需要携带该业务标识。
[0184](2)、该终端基于该应用私钥,生成该业务的业务密钥,该业务密钥包括业务私钥和业务公钥。
[0185]具体地,终端可以基于该应用私钥,按照第二指定算法,生成该业务的业务密钥。
[0186]其中,第二指定算法也是事先设置,且第二指定算法可以与第一指定算法相同,也可以不同,本发明实施例对此不做具体限定。
[0187]由于应用私钥存储在第一安全存储空间中,而第一安全存储空间的访问速度大于第二安全存储空间的访问速度,因此,通过访问第一安全存储空间来获取应用私钥,提高了基于该应用私钥来生成该业务密钥的速度。
[0188](3)、该终端基于该应用程序标识存储生成的业务私钥,将生成的业务公钥上传到应用服务器中。
[0189]具体地,当该业务密钥生成请求中携带该应用程序标识时,在终端基于该应用程序标识存储生成的业务私钥时,该终端可以基于该应用程序标识,判断是否已存储该业务私钥,如果已存储,则将已存储的业务私钥替换为生成的业务私钥。也即是,对于同一个应用程序,在该终端中只存储一个业务私钥。当该业务密钥生成请求中携带该应用程序标识和该业务标识时,在终端基于该应用程序标识存储生成的业务私钥时,该终端可以基于该应用程序标识和该业务标识,判断是否已存储该业务私钥,如果已存储,则将已存储的业务私钥替换为生成的业务私钥。也即是,对于同一个应用程序中的同一个业务,在该终端中只存储一个业务私钥。
[0190]其中,在本发明实施例中,该业务私钥可以存储在该终端的第一安全存储空间中。由于该业务私钥存储在该终端的第一安全存储空间中,因此,当该终端基于该应用程序标识,判断是否已存储该业务私钥时,该终端可以从第一安全存储空间中,查找该应用程序标识对应的业务私钥,如果查找到,则确定已存储该业务私钥,否则,确定未存储该业务私钥。或者,当终端基于该应用程序标识和该业务标识,判断是否已存储该业务私钥时,该终端可以从第一安全存储空间中,查找该应用程序标识和该业务标识对应的业务私钥,如果查找到,则确定已存储该业务私钥,否则,确定未存储该业务私钥。
[0191]需要说明的是,该终端会存储多个应用程序的业务私钥,且一个应用程序中不仅可以存在一个需要进行安全性验证的业务,还可以包括多个需要进行安全性验证的业务,因此,当应用程序中存在一个需要进行安全性验证的业务时,为了区分每个应用程序中的业务私钥,该终端可以基于该应用程序标识,从该第一安全存储空间中存储的应用程序标识与业务私钥之间的对应关系中查找对应的业务私钥,从而判断是否已存储该应用程序的该业务的业务私钥。当该应用程序中存在多个需要进行安全性验证的业务时,为了区分每个应用程序中不同业务的业务私钥,该终端可以基于该应用程序标识和业务标识,从该第一安全存储空间中存储的应用程序标识、业务标识与业务私钥之间的对应关系中查找对应的业务私钥,从而判断是否已存储该应用程序的该业务的业务私钥。
[0192]而当该终端将生成的业务公钥上传到应用服务器时,终端可以基于该业务公钥,生成该业务的原串,并基于该应用私钥,对该业务的原串进行签名,得到第二签名信息,将该业务的原串和该第二签名信息发送给该应用程序。当该应用程序接收到该业务的原串和第二签名信息时,该应用程序可以向应用服务器发送业务密钥上传请求,该业务密钥上传请求中携带该业务的原串、第二签名信息和该终端标识。当该应用服务器接收到该业务密钥上传请求时,基于该终端标识,获取应用公钥,基于该应用公钥和第二
签名信息,对该业务的原串进行验证,当该业务的原串验证通过时,该应用服务器从该业务的原串中获取业务公钥,并基于该终端标识,存储该业务公钥。
[0193]或者,当该应用程序接收到该业务的原串和第二签名信息时,该应用程序可以向应用服务器发送业务密钥上传请求,该业务密钥上传请求中携带该业务的原串、第二签名信息、该终端标识和该业务标识。当该应用服务器接收到该业务密钥上传请求时,基于该终端标识,获取应用公钥,基于该应用公钥和第二签名信息,对该业务的原串进行验证,当该业务的原串验证通过时,该应用服务器从该业务的原串中获取业务公钥,并基于该终端标识和该业务标识,存储该业务公钥。
[0194]其中,由于该应用程序中不仅可以只包括一个需要进行安全性验证的业务,还可以包括多个需要进行安全性验证的业务,因此,当该应用程序中只包括一个需要进行安全性验证的业务时,该业务密钥上传请求中可以不需要携带该业务标识,从而在应用服务器中也只需要基于该终端标识存储该业务公钥。而当该应用程序中包括多个需要进行安全性验证的业务时,该业务密钥上传请求中需要携带业务标识,从而在应用服务器中需要基于该终端标识和该业务标识,存储该业务公钥。
[0195]需要说明的是,终端基于该业务公钥生成该业务的原串时,该业务的原串中不仅可以包括该业务的公钥,还可以包括其他的信息,比如应用程序标识,业务标识等等,本发明实施例对其他信息的内容不做具体限定。并且终端基于该业务的公钥生成该业务的原串时,可以将该业务公钥和其他的信息按照指定格式生成该业务的原串,而当应用服务器从该业务的原串中获取该业务公钥时,可以按照该指定格式从该业务的原串中来获取,本发明实施例对此不做具体限定。
[0196]另外,终端基于该应用私钥对该业务的原串进行签名的方法也可以参考相关技术,本发明实施例对此不进行详细阐述。
[0197]其中,由于该应用服务器存储应用公钥时,是将该终端标识和该应用公钥存储在终端标识与应用公钥之间的对应关系中,因此,当该应用服务器基于该终端标识获取应用公钥时,该应用服务器可以基于该终端标识,从存储的终端标识与应用公钥之间的对应关系中,获取对应的应用公钥。
[0198]而该应用服务器基于该应用公钥和第二签名信息,对该业务的原串进行验证的操作可以为:该应用服务器基于该应用公钥,对第二签名信息进行解签名,得到第二解签名信息,判断第二解签名信息是否与该业务的原串相同,当第二解签名信息与该业务的原串相同时,确定该业务的原串验证通过,否则,确定该业务的原串验证不通过。
[0199]由于应用服务器可以为多个终端提供多个业务,且该应用程序中可以只存在一个需要进行安全性验证的业务,也可以存在多个需要进行安全性验证的业务,因此,当该应用程序中可以只存在一个需要进行安全性验证的业务,为了区分不同终端的业务公钥,该应用服务器基于该终端标识,存储该业务公钥时,该应用服务器可以将该终端标识和该业务公钥,存储在终端标识与业务公钥之间的对应关系中。当该应用程序中存在多个需要进行安全性验证的业务时,为了区分不同终端不同业务的业务公钥,该应用服务器基于该终端标识和该业务标识,存储该业务公钥时,该应用服务器可以将该终端标识、该业务标识和该业务公钥,存储在终端标识、业务标识与业务公钥之间的对应关系中。
[0200]需要说明的是,该业务的业务密钥可以由应用服务器在任意时间通过该终端生成,且该应用服务器还可以对该业务密钥设置一个有效期,当该业务密钥的有效期过期时,该应用服务器可以指示该应用程序,使该应用程序通过该终端重新生成该业务的业务密钥,本发明实施例对业务密钥的生成时机不做具体限定。
[0201]当该终端在进行业务安全性验证的过程中,通过应用私钥生成业务私钥时,在该终端接收到该密钥获取请求时,该终端可以基于该应用程序标识,获取该应用程序的应用私钥,基于该应用私钥,生成该业务的业务密钥,该业务密钥包括业务私钥和业务公钥,并将该业务密钥发送给该应用程序,使该应用程序将该业务密钥中的业务公钥上传到应用服务器中,并通过该业务密钥中的业务私钥验证该业务的安全性。当然,该终端生成该业务的业务密钥之后,还可以先存储生成的业务私钥,并将生成的业务公钥上传到应用服务器中,之后,该终端再基于该应用程序标识,获取该业务的业务私钥,并将该业务私钥发送给该应用程序。
[0202]需要说明的是,该终端存储生成的业务私钥时,如果该密钥获取请求中只携带应用程序标识,则确定该应用程序中只存在一个需要进行安全验证的业务,此时,该终端可以直接基于该应用程序标识,存储生成的业务私钥,如果该密钥获取请求中不仅携带该应用程序标识,还携带业务标识,则确定该应用程序中存在多个需要进行安全验证的业务,此时,该终端可以基于该应用程序标识和该业务标识,存储生成的业务私钥,而具体的存储方法可以参考上述在安全性验证之前生成业务私钥并存储的方法,本发明实施例对此不再进行赘述。
[0203]可选地,当该密钥获取请求中还携带生物特征信息时,该终端在基于该应用程序标识,获取该业务的业务私钥之前,还可以判断是否已存储该生物特征信息,当已存储该生物特征信息时,再执行基于该应用程序标识,获取该业务的业务私钥的步骤。
[0204]步骤506:当该应用程序接收到该终端发送的业务私钥时,基于该业务私钥,对该验证信息进行签名,得到第三签名信息。
[0205]需要说明的是,该应用程序基于该业务私钥,对该验证信息进行签名的方法可以参考相关技术,本发明实施例对此不做详细阐述。
[0206]步骤507:该应用程序向应用服务器发送业务验证请求,该业务验证请求中携带第二签名?目息和终端标识。
[0207]需要说明的是,当该应用程序中只存在一个需要进行安全验证的业务时,该业务验证请求中可以只携带第三签名信息和终端标识,当该应用程序中存在多个需要进行安全验证的业务时,该业务验证请求中不仅可以携带第三签名信息和终端标识,还需要携带该业务标识。
[0208]可选地,该业务验证请求中还可以携带业务数据,也即是,该业务的安全性验证可以在对业务数据进行处理的过程中进行。
[0209]另外,该业务数据为通过该业务完成某个操作的数据,比如,当该业务为支付业务时,该业务数据可以为进行支付的账号、转移数值等等,本发明实施例对此不做具体限定。
[0210]步骤508:当该应用服务器接收到该业务验证请求时,基于该终端标识,获取该业务的业务公钥,并基于该业务公钥和第三签名信息,对该业务的安全性进行验证。
[0211]具体地,当该应用服务器接收到该业务验证请求时,如果该业务验证请求中携带第三签名信息和终端标识,则该应用服务器可以基于该终端标识,获取该业务的业务公钥,并获取该应用服务器存储的该业务的生物特征信息,基于该业务公钥,对第三签名信息进行解签名,得到第三解签名信息,判断第三解签名信息是否该应用服务器存储的该业务的生物特征信息是否相同,如果相同,则确定该业务的安全性验证通过,否则,确定该业务的安全性验证不通过。如果该业务验证请求中不仅携带第三签名信息和终端标识,还携带业务标识,则该应用服务器可以基于该终端标识和该业务标识,获取该业务的业务公钥,并获取该应用服务器存储的该业务的验证信息,基于该业务公钥,对第三签名信息进行解签名,得到第三解签名信息,判断第三解签名信息是否该应用服务器存储的该业务的验证信息是否相同,如果相同,则确定该业务的安全性验证通过,否则,确定该业务的安全性验证不通过。
[0212]其中,该应用服务器基于该终端标识,获取该业务的业务公钥时,该应用服务器可以基于该终端标识,从存储的终端标识与业务公钥之间的对应关系中,获取对应的业务公钥。
[0213]该应用服务器基于该终端标识和该业务标识,获取该业务的业务公钥时,该应用服务器可以基于该终端标识和该业务标识,从存储的终端标识、业务标识与业务公钥之间的对应关系中,获取对应的业务公钥。
[0214]其中,应用服务器中还可以存储该业务的生物特征信息,从而可以基于该生物特征信息来验证该业务,进而验证该业务的安全性,且当该应用程序中只存在一个需要生物特征信息验证安全性的业务时,该应用服务器中可以存储终端标识与生物特征信息之间的对应关系,当获取该应用服务器存储的该业务的生物特征信息时,该应用服务器可以基于该终端标识,从该终端标识与生物特征信息之间的对应关系中,获取对应的生物特征信息,并将获取的生物特征信息确定为该应用服务器存储的该业务的生物特征信息。
[0215]当该应用程序中存在多个需要生物特征信息验证安全性的业务时,该应用服务器中可以存储终端标识、业务标识与生物特征信息之间的对应关系中。当获取该应用服务器存储的该业务的生物特征信息时,该应用服务器可以基于该终端标识和业务标识,从该终端标识、业务标识与生物特征信息之间的对应关系中,获取对应的生物特征信息,并将获取的生物特征信息确定为该应用服务器存储的该业务的生物特征信息。
[0216]需要说明的是,该应用服务器基于该业务公钥,对第三签名信息进行解签名的方法也可以参考相关技术,本发明实施例对此不做详细阐述。
[0217]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。另外,由于该应用私钥和业务私钥存储在第一安全存储空间中,第一安全存储空间的访问速度大于第二安全存储空间的访问速度,因此,通过访问第一安全存储空间来获取该业务私钥的速度较高,并且访问应用私钥来生成业务私钥的速度也较高,进而提高了验证该业务安全性的效率,降低了对该应用程序性能的影响。
[0218]本发明实施例是基于图1所示的系统架构进行详细阐述的实施例,且图6是本发明实施例提供的一种基于密钥的业务安全性验证过程中生成应用密钥的方法流程图。参见图6,该方法包括:
[0219]步骤601:应用程序向操作系统框架发送应用密钥生成请求,该应用密钥生成请求中携带应用程序标识。
[0220]需要说明的是,该操作系统框架可以包括KeyStore API和KeyStoreDaemon,当然,实际应用中,该操作系统框架还包括其他的接口,本发明实施例对此不做具体限定。
[0221]另外,该应用密钥生成请求用于生成该应用程序的密钥。
[0222]步骤602:当该操作系统框架接收到该应用密钥生成请求时,将该应用密钥生成请求发送给KeyMaster ΤΑ。
[0223]步骤603:当KeyMaster ΤΑ接收到该应用密钥生成请求时,获取设备私钥,该设备私钥包含于设备根密钥中。
[0224]需要说明的是,由于图5所示的实施例的执行主体可以为该终端的KeyMasterΤΑ,因此,本发明实施例中该KeyMaster ΤΑ获取设备私钥的方法与图5所示实施例中获取设备私钥的方法相同,本发明实施例对此不再赘述。
[0225]步骤604:KeyMaster ΤΑ基于该设备私钥,生成该应用程序的应用密钥,该应用密钥包括应用私钥和应用公钥。
[0226]需要说明的是,KeyMaster ΤΑ基于该设备私钥生成该应用程序的应用密钥的方法已在图5所示的实施例中进行解释说明,本发明实施例对此不再赘述。
[0227]步骤605:该KeyMaster ΤΑ基于该应用程序标识存储生成的应用私钥。
[0228]需要说明的是,KeyMaster ΤΑ基于该应用程序标识存储生成的应用私钥的方法已在图5所示的实施例中进行解释说明,本发明实施例对此不再赘述。
[0229]当该KeyMasterΤΑ基于上述步骤生成该应用程序的应用密钥,并将该应用私钥存储之后,该KeyMaster ΤΑ不仅可以按照图5所示实施例中直接将该应用公钥发送给应用程序,从而使应用程序将该应用公钥上传到应用服务器中,当然,该应用程序也可以按照下述步骤606-611的方法从该KeyMaster ΤΑ中,获取应用公钥,从而上传到应用服务器中。
[0230]步骤606:应用程序向操作系统框架发送应用密钥获取请求,该应用密钥获取请求中携带应用程序标识。
[0231]需要说明的是,该应用密钥获取请求用于获取该终端为该应用程序所生成的应用公钥。
[0232]步骤607:当该操作系统框架接收到该应用密钥获取请求时,将该应用密钥获取请求发送给该KeyMaster ΤΑ。
[0233]步骤608:当该KeyMaster ΤΑ接收到该应用密钥获取请求时,增加存储的第一计数值,该第一计数值用于指示KeyMaster ΤΑ中的应用密钥的使用次数。
?0234] 其中,KeyMaster ΤΑ增加存储的第一计数值时,可以将该第一计数值增加指定数值,该指定数值可以事先设置,比如该指定数值可以为1、2、3等等,本发明实施例对此不做具体限定。
[0235]需要说明的是,KeyMaster ΤΑ可以通过一个计数器对应用密钥的使用次数进行计数,当然,该KeyMaster ΤΑ还可以通过其他的方式对应用密钥的使用次数进行计数,本发明实施例对此不做具体限定。
[0236]步骤609:该KeyMaster ΤΑ基于该应用公钥和增加后的第一计数值,生成该应用程序的原串,并基于内置的设备私钥对该应用程序的原串进行签名,得到第一签名信息。
[0237]具体地,该KeyMasterΤΑ基于该应用公钥和增加后的第一计数值,按照指定格式生成该应用程序的原串,并获取内置的设备私钥,基于该设备私钥对该应用程序的原串进行签名,得到第一签名信息。
[0238]需要说明的是,该应用程序的原串中不仅可以包括该应用公钥和增加后的第一计数值,当然,还可以包括其他的信息,比如应用程序标识、终端标识等等,本发明实施例对其他信息的具体内容不做具体限定。
[0239]另外,KeyMasterΤΑ基于该设备私钥对该应用程序的原串进行签名的方法已在图5所示的实施例中进行解释说明,本发明实施例对此不再赘述。
[0240]步骤610:该KeyMasterΤΑ将该应用程序的原串和第一签名信息发送给操作系统框架。
[0241]步骤611:当该操作系统框架接收到该应用程序的原串和第一签名信息时,将该应用程序的原串和第一签名信息发送给该应用程序。
[0242]当该应用程序获取到该应用公钥之后,该应用程序需要将该应用公钥上传到应用服务器中,而图7是本发明实施例提供的一种应用公钥上传方法的流程图。参见图7,该方法包括:
[0243]步骤701:该应用程序向应用服务器发送应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、第一签名信息和终端标识。
[0244]需要说明的是,该应用密钥上传请求用于将该应用程序的应用公钥上传到应用服务器中。
[0245]步骤702:当该应用服务器接收到该应用密钥上传请求时,向根密钥服务器发送密钥验证请求,该密钥验证请求中携带该应用程序的原串、第一签名信息和该终端标识。
[0246]步骤703:当该根密钥服务器接收到该密钥验证请求时,基于该终端标识获取设备公钥,并基于该设备公钥和第一签名信息对该应用程序的原串进行验证,得到验证结果。
[0247]具体地,当该根密钥服务器接收到该密钥验证请求时,基于该终端标识,从存储的终端标识与设备公钥之间的对应关系中获取对应的设备公钥,并基于该设备公钥,对第一签名信息进行解签名,得到第一解签名信息,判断第一解签名信息是否与该应用程序的原串相同,如果相同,则确定验证结果为验证通过,否则,确定验证结果为验证不通过。
[0248]步骤704:该根密钥服务器将该验证结果和该终端的安全级别发送给该应用服务器。
[0249]具体地,当该根密钥服务器确定该验证结果之后,该根密钥服务器可以基于该终端标识,从存储的终端标识与安全级别之间的对应关系中,获取该终端的安全级别,并将该验证结果和该终端的安全级别发送给该应用服务器。
[0250]需要说明的是,该根密钥服务器中存储的终端标识与安全级别之间的对应关系可以事先获取的,而具体如何获取可以参考相关技术,本发明实施例对此不做具体限定。
[0251]进一步地,该根密钥服务器还可以获取该设备公钥的安全字段,该设备公钥的安全字段用于指示该设备公钥的随机性检查是否通过,该设备公钥是否可能被泄露等等,之后,该根密钥服务器还可以将该设备公钥的安全字段发送给该应用程序。
[0252]步骤705:当该应用服务器确定该验证结果为验证通过时,基于该终端标识存储该终端的安全级别。
[0253]具体地,当该应用服务器确定该验证结果为验证通过时,该应用服务器可以将该终端标识和该终端的安全级别,存储在终端标识与安全级别之间的对应关系中。
[0254]步骤706:该应用服务器从该应用程序的原串中获取第一计数值,判断第一计数值是否大于第二计数值,第二计数值用于指示应用服务器中的应用密钥的使用次数。
[0255]步骤707:当第一计数值大于第二计数值时,应用服务器将第二计数值替换为第一计数值。
[0256]其中,当该应用服务器确定第一计数值大于第二计数值时,确定该应用密钥被使用了一次,为了保证KeyMaster ΤΑ与应用服务器中的计数值相同,避免该应用密钥被盗用,该应用服务器可以将第二计数值替换为第一计数值。
[0257]步骤708:应用服务器基于该终端标识,存储该应用公钥。
[0258]需要说明的是,该应用服务器基于该终端标识,存储该应用公钥的方法已在图5所示的实施例中进行解释说明,本发明实施例对此不再赘述。
[0259]可选地,当该应用程序获取到该应用公钥之后,该应用程序需要将该应用公钥上传到应用服务器中,而图8是本发明实施例提供的另一种应用公钥上传方法的流程图。参见图8,该方法包括:
[0260]步骤801:该应用程序向应用服务器发送应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、第一签名信息和终端标识。
[0261 ]步骤802:当该应用服务器接收到该应用密钥上传请求时,向根密钥服务器发送设备密钥获取请求,该设备密钥获取请求中携带该终端标识。
[0262]需要说明的是,该设备密钥获取请求用于获取该终端的设备公钥。
[0263]步骤803:当该根密钥服务器接收到该设备密钥获取请求时,基于该终端标识,获取对应的设备公钥和该终端的安全级别。
[0264]需要说明的是,根密钥服务器基于终端标识,获取对应的设备公钥和该终端的安全级别的方法已在步骤704中详细阐述,本步骤不再进行赘述。
[0265]进一步地,该根密钥服务器还可以获取该设备公钥的安全字段。
[0266]步骤804:该根密钥服务器将该设备公钥和该终端的安全级别发送给应用服务器。
[0267]进一步地,该根密钥服务器还可以将该设备公钥的安全字段发送给应用服务器。
[0268]步骤805:当该应用服务器接收到该设备公钥和该终端的安全级别时,基于该终端标识存储该终端的安全级别。
[0269]需要说明的是,根密钥服务器基于该终端标识存储该终端的安全级别的方法已在步骤705中详细阐述,本步骤不再进行赘述。
[0270]步骤806:该应用服务器基于该设备公钥和第一签名信息,对该应用程序的原串进行验证。
[0271]需要说明的是,根密钥服务器基于该终端标识存储该终端的安全级别的方法已在图5所示的实施例中详细阐述,本步骤不再进行赘述。
[02
72]步骤807:当该应用程序的原串验证通过时,该应用服务器从该应用程序的原串中获取第一计数值,判断第一计数值是否大于第二计数值,第二计数值用于指示应用服务器中的应用密钥的使用次数。
[0273]步骤808:当第一计数值大于第二计数值时,该应用服务器将第二计数值替换为第一计数值。
[0274]步骤809:该应用服务器基于该终端标识,存储该应用公钥。
[0275]需要说明的是,该应用服务器基于该终端标识,存储该应用公钥的方法已在图5所示的实施例中详细阐述,本步骤不再进行赘述。
[0276]进一步地,由于本发明实施例是基于业务密钥对业务的安全性进行验证,因此,在基于密钥的业务安全性验证过程中还需要生成业务密钥。图9是本发明实施例提供的一种基于密钥的业务安全性验证过程中生成业务密钥的方法流程图。参见图9,该方法包括:
[0277]步骤901:该应用程序向操作系统框架发送业务密钥生成请求,该业务密钥生成请求中携带该应用程序标识。
[0278]需要说明的是,由于该应用程序中不仅可以包括一个需要安全性验证的业务,还可以包括多个需要安全性验证的业务,因此,当该应用程序中包括一个需要安全性验证的业务时,该业务密钥生成请求中可以只携带该应用程序标识,当该应用程序中包括多个需要安全性验证的业务时,该业务密钥生成请求不仅可以携带该应用程序标识,还可以携带该业务标识,且该方法已在上述图5所示的实施例中进行了详细阐述。
[0279]另外,该业务密钥生成请求用于生成该业务的业务密钥,且该业务密钥生成请求可以为该应用程序在进行业务安全性验证之前发送,也可以在进行业务安全性验证的过程中发送,本发明实施例对该业务密钥生成请求的发送时机不做具体限定。
[0280]步骤902:当该操作系统框架接收到该业务密钥生成请求时,将该业务密钥生成请求发送给KeyMaster ΤΑ。
[0281]步骤903:当KeyMaster ΤΑ接收到该业务密钥生成请求时,基于该应用程序标识获取应用私钥。
[0282]需要说明的是,由于图5所示的实施例的执行主体可以为该终端的KeyMasterΤΑ,因此,本发明实施例中该KeyMaster ΤΑ基于该应用程序标识获取应用私钥的方法与图5所示实施例中获取应用私钥的方法相同,本发明实施例对此不再赘述。
[0283]步骤904:KeyMaster ΤΑ基于该应用私钥,生成该业务的业务密钥,该业务密钥包括业务私钥和业务公钥。
[0284]需要说明的是,KeyMaster ΤΑ基于该应用私钥生成该业务的业务密钥的方法已在图5所示的实施例中进行解释说明,本发明实施例对此不再赘述。
[0285]步骤905:该KeyMaster ΤΑ基于该应用程序标识存储生成的业务私钥。
[0286]需要说明的是,KeyMasterΤΑ基于该应用程序标识存储生成的业务私钥的方法已在图5所示的实施例中进行解释说明,本发明实施例对此不再赘述。
[0287]当该KeyMasterΤΑ基于上述步骤生成该业务的业务密钥,并将该业务私钥存储之后,该KeyMaster ΤΑ不仅可以按照图5所示实施例中直接将该业务公钥发送给应用程序,从而使应用程序将该业务公钥上传到应用服务器中,当然,该应用程序也可以按照下述步骤906-911的方法从该KeyMaster ΤΑ中,获取业务公钥,从而上传到应用服务器中。
[0288]步骤906:应用程序向操作系统框架发送业务密钥获取请求,该业务密钥获取请求中携带应用程序标识。
[0289]需要说明的是,该业务密钥获取请求用于获取该终端为该应用程序的该业务所生成的业务公钥。
[0290]另外,由于该应用程序中不仅可以包括一个需要安全性验证的业务,还可以包括多个需要安全性验证的业务,因此,当该应用程序中包括一个需要安全性验证的业务时,该业务密钥获取请求中可以只携带该应用程序标识,当该应用程序中包括多个需要安全性验证的业务时,该业务密钥获取请求不仅可以携带该应用程序标识,还可以携带该业务标识。[0291 ]步骤907:当该操作系统框架接收到该业务密钥获取请求时,将该业务密钥获取请求发送给该KeyMaster ΤΑ。
[0292]步骤908:当该KeyMaster ΤΑ接收到该业务密钥获取请求时,增加存储的第三计数值,该第三计数值用于指示KeyMaster ΤΑ中的业务密钥的使用次数。
[0293]其中,KeyMaSterΤΑ增加存储的第三计数值时,可以将该第三计数值增加指定数值,该指定数值可以事先设置,比如该指定数值可以为1、2、3等等,本发明实施例对此不做具体限定。
[0294]需要说明的是,KeyMaster ΤΑ可以通过一个计数器对业务密钥的使用次数进行计数,当然,该KeyMaster ΤΑ还可以通过其他的方式对业务密钥的使用次数进行计数,本发明实施例对此不做具体限定。
[0295]步骤909:该KeyMaster ΤΑ基于该业务公钥、增加后的第三计数值和密钥标识,生成该业务的原串,并基于该应用程序标识对应的应用私钥对该业务的原串进行签名,得到第二签名信息。
[0296]具体地,该KeyMasterΤΑ基于该业务公钥、增加后的第三计数值和密钥标识,按照指定格式生成该业务的原串,并基于该应用程序标识获取对应的应用私钥,基于该应用私钥对该业务的原串进行签名,得到第二签名信息。
[0297]需要说明的是,密钥标识用于唯一标识该业务公钥,且该密钥标识可以是为该业务公钥分配的密钥别名,也可以是为该业务公钥分配的编号等等,本发明实施例对此不做具体限定。
[0298]另外,该业务的原串中不仅可以包括该业务公钥、增加后的第三计数值和密钥标识,当然,还可以包括其他的信息,比如应用程序标识、终端标识、业务标识等等,本发明实施例对其他信息的具体内容不做具体限定。
[0299]另外,KeyMasterΤΑ基于该应用私钥对该业务的原串进行签名的方法已在图5所示的实施例中进行解释说明,本发明实施例对此不再赘述。
[0300]步骤910:该KeyMasterΤΑ将该业务的原串和第二签名信息发送给操作系统框架。[0301 ]步骤911:当该操作系统框架接收到该业务的原串和第二签名信息时,将该业务的原串和第二签名信息发送给该应用程序。
[0302]当该应用程序获取到该业务公钥之后,该应用程序需要将该业务公钥上传到应用服务器中,而图10是本发明实施例提供的一种业务公钥上传方法的流程图。参见图10,该方法包括:
[0303]步骤1001:该应用程序向应用服务器发送业务密钥上传请求,该业务密钥上传请求中携带该业务的原串、第二签名信息、终端标识和密钥标识。
[0304]需要说明的是,该业务密钥上传请求用于将该业务的业务公钥上传到应用服务器中。
[0305]步骤1002:当该应用服务器接收到该业务密钥上传请求时,基于该终端标识获取应用公钥,并基于该应用公钥和第二签名信息对该业务的原串进行验证。
[0306]需要说明的是,该应用服务器基于应用公钥和第二签名信息对该业务的原串进行验证的方法已在图5所示的实施例中详细阐述,本步骤不再进行赘述。
[0307]步骤1003:当该业务的原串验证通过时,该应用服务器从该业务的原串中获取第三计数值,判断第三计数值是否大于第四计数值,第四计数值用于指示应用服务器中的业务密钥的使用次数。
[0308]步骤1004:当第三计数值大于第四计数值时,该应用服务器将第四计数值替换为第三计数值。
[0309]步骤1005:该应用服务器基于该终端标识和该密钥标识,存储该业务公钥。
[0310]具体地,该应用服务器可以将该终端标识、该密钥标识和该业务公钥,存储在终端标识、密钥标识与该业务公钥之间的对应关系中。
[0311 ]需要说明的是,该应用服务器不仅可以基于该终端标识和该密钥标识,存储该业务公钥,当然,当该应用程序中只存在一个需要安全性验证的业务时,该应用服务器也可以直接基于该终端标识,存储该业务公钥,当该应用程序中存在多个需要安全性验证的业务时,该应用服务器可以基于该终端标识和该业务标识,存储该业务公钥,本发明实施例对此不做具体限定。
[0312]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。另外,由于该应用私钥和业务私钥存储在第一安全存储空间中,第一安全存储空间的访问速度大于第二安全存储空间的访问速度,因此,通过访问第一安全存储空间来获取该业务私钥的速度较高,并且访问应用私钥来生成业务私钥的速度也较高,进而提高了验证该业务安全性的效率,降低了对该应用程序性能的影响。
[0313]图11是本发明实施例提供的一种基于密钥的业务安全性验证装置结构示意图,参见图11,该装置包括:
[0314]接收模块1101,用于接收当前提供业务的应用程序发送的密钥获取请求,该密钥获取请求中携带应用程序标识;
[0315]第一获取模块1102,用于基于该应用程序标识,获取该应用程序的应用私钥,该应用私钥是通过内置的设备私钥生成,该设备私钥包含于设备根密钥中;
[0316]验证模块1103,用于基于该应用私钥验证该业务的安全性。
[0317]可选地,参见图12,该装置还包括:
[0318]第二获取模块1104,用于当接收到该应用程序发送的应用密钥生成请求时,获取设备私钥,该应用密钥生成请求中携带该应用程序标识;
[0319]生成模块1105,用于基于该设备私钥,生成该应用程序的应用密钥,该应用密钥包括应用私钥和应用公钥;
[0320]存储模块1106,用于基于该应用程序标识存储生成的应用私钥;
[0321]上传模块1107,用于将生成的应用公钥上传到应用服务器中。
[0322]可选地,生成模块1105包括:
[0323]第一生成单元,用于基于该设备私钥,按照第一指定算法,生成该应用程序的应用密钥。
[0324]可选地,存储模块1106包括:
[0325]第一判断单元,用于基于该应用程序标识,判断是否已存储该应用程序的应用私钥;
[0326]替换单元,用于如果已存储,则将已存储的该应用私钥替换为生成的应用私钥。
[0327]可选地,上传模块1107包括:
[0328]第二生成单元,用于基于该应用公钥,生成该应用程序的原串;
[0329]签名单元,用于基于该设备私钥,对该应用程序的原串进行签名,得到第一签名信息;
[0330]第一发送单元,用于将该应用程序的原串和该第一签名信息发送给该应用程序,使该应用程序将该应用公钥上传到该应用服务器中。
[0331]可选地,验证模块1103包括:
[0332]获取单元,用于当该密钥获取请求中还携带业务标识时,基于该应用程序标识和该业务标识,获取该业务的业务私钥,该业务私钥是通过应用私钥生成;
[0333]第二发送单元,用于将该业务私钥发送给应用程序,以通过该业务私钥验证该业务的安全性。
[0334]可选地,验证模块1103还包括:
[0335]第二判断单元,用于当该密钥获取请求中还携带生物特征信息时,判断是否已存储该生物特征信息,该生物特征信息为该应用程序基于该业务检测得到;
[0336]获取单元,还用于当已存储该生物特征信息时,基于该应用程序标识和该业务标识,获取该业务的业务私钥。
[0337]可选地,该验证模块1103还包括:
[0338]第三生成单元,用于基于该应用私钥,生成该业务的业务密钥,该业务密钥包括业务私钥和业务公钥;
[0339]存储单元,用于基于该应用程序标识和该业务标识存储生成的业务私钥;
[0340]上传单元,用于将生成的业务公钥上传到应用服务器中。
[0341]可选地,第三生成单元包括:
[0342]第一生成子单元,用于基于该应用私钥,按照第二指定算法,生成该业务的业务密钥。
[0343]可选地,上传单元包括:
[0344]第二生成子单元,用于基于该业务公钥,生成该业务的原串;
[0345]签名子单元,用于基于该应用私钥,对该业务的原串进行签名,得到第二签名信息;
[0346]发送子单元,用于将该业务的原串和该第二签名信息发送给该应用程序,使该应用程序将该业务公钥上传到该应用服务器中。
[0347]可选地,该应用私钥和该业务私钥存储在第一安全存储空间中,第一安全存储空间的访问速度大于第二存储空间的访问速度,第二安全存储空间为存储该设备私钥的存储空间。
[0348]可选地,第一安全存储空间为可信安全存储空间,第二安全存储空间为RPMB,可信安全存储空间和RPMB均包含于eMMC中。
[0349]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。
[0350]图13是本发明实施例提供的一种基于密钥的业务安全性验证装置的结构示意图,参见图13,该装置包括:
[0351]第一发送模块1301,用于当检测到对当前所提供业务进行验证的生物特征信息时,向终端发送密钥获取请求,该密钥获取请求中携带应用程序标识;
[0352]签名模块1302,用于当接收到该终端基于该应用程序标识发送的该业务私钥时,基于该业务私钥,对该生物特征信息进行签名,得到第三签名信息,该业务私钥是该终端基于应用私钥生成,该应用私钥是该终端基于内置的设备私钥生成,该应用私钥为应用程序的私钥,该设备私钥包含于设备根密钥中;
[0353]第二发送模块1303,用于向应用服务器发送业务验证请求,该业务验证请求中携带该第三签名信息和终端标识,使该应用服务器验证该业务的安全性。
[0354]可选地,该密钥获取请求中还携带该业务标识和该生物特征信息中的至少一个。
[0355]可选地,该装置还包括:
[0356]第三发送模块,用于向该终端发送应用密钥生成请求,该应用密钥生成请求中携带该应用程序标识,使该终端基于该设备私钥生成应用公钥,该应用公钥为该应用程序的公钥;
[0357]第四发送模块,用于当接收到该终端发送的该应用程序的原串和第一签名信息时,向该应用服务器发送应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、该第一签名信息和该终端标识,该应用程序的原串是该终端基于该应用公钥生成,该第一签名信息是该终端基于该设备私钥对该应用程序的原串进行签名得到。
[0358]可选地,该装置还包括:
[0359]第五发送模块,用于向该终端发送业务密钥生成请求,该业务密钥生成请求中携带该应用程序标识,使该终端基于该应用私钥生成业务公钥;
[0360]第六发送模块,用于当接收到该终端发送的该业务的原串和第二签名信息时,向该应用服务器发送业务密钥上传请求,该业务密钥上传请求中携带该业务的原串、该第二签名信息和该终端标识,该业务的原串是该终端基于该业务公钥生成,该第二签名信息是该终端基于该应用私钥对该业务的原串进行签名得到。
[0361]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。
[0362]图14是本发明实施例提供的一种基于密钥的业务安全性验证装置的结构示意图,参见图14,该装置包括:
[0363]第一接收模块1401,用于接收应用程序发送的业务验证请求,该业务验证请求中携带第三签名信息和终端标识,该第三签名信息是该应用程序基于当前所提供业务的业务私钥对检测到的生物特征信息进行签名得到,该业务私钥是终端基于应用私钥生成,该应用私钥是该终端基于内置的设备私钥生成,该应用私钥为该应用程序的私钥,该设备私钥包含于设备根密钥中;
[0364]第一获取模块1402,用于基于该终端标识,获取该业务的业务公钥;
[0365]第一验证模块1403,用于基于该业务公钥和该第三签名信息,对该业务的安全性进行验证。
[0366]可选地,该装置还包括:
[0367]第二接收模块,用于接收该应用程序发送的应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、第一签名信息和该终端标识;
[0368]第一发送模块,用于向根密钥服务器发送密钥验证请求,该密钥验证请求中携带该应用程序的原串、该第一签名信息和该终端标识,使该根密钥服务器对该应用程序的原串进行验证;
[0369]第二获取模块,用于当接收到该根密钥服务器发送的验证通过消息时,从该应用程序的原串中获取应用公钥,该应用公钥为该应用程序的公钥;
[0370]第一存储模块,用于基于该终端标识,存储该应用公钥。
[0371]可选地,该装置还包括:
[0372]第三接收模块,用于接收该应用程序发送的应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、第一签名信息和该终端标识;
[0373]第二发送模块,用于向根密钥服务器发送设备密钥获取请求,该设备密钥获取请求中携带该终端标识,使该根密钥服务器返回设备公钥;
[0374]第二验证模块,用于当接收到该根密钥服务器发送的该设备公钥时,基于该设备公钥和该第一签名信息,对该应用程序的原串进行验证;
[0375]第三获取模块,用于当该应用程序的原串验证通过时,从该应用程序的原串中获取应用公钥,该应用公钥为该应用程序的公钥;
[0376]第二存储模块,用于基于该终端标识,存储该应用公钥。
[0377]可选地,该第二验证模块包括:
[0378]第一解签名单元,用于基于该设备公钥,对该第一签名信息进行解签名,得到第一解签名信息;
[0379]第一判断单元,用于判断该第一解签名信息是否与该应用程序的原串相同;
[0380]第一确定单元,用于当该第一解签名信息与该应用程序的原串相同时,确定该应用程序的原串验证通过,否则,确定该应用程序的原串验证不通过。
[0381]可选地,该装置还包括:
[0382]第四接收模块,用于接收该应用程序发送的业务密钥上传请求,该业务密钥上传请求中携带该业务的原串、第二签名信息和该终端标识;
[0383]第四获取模块,用于基于该终端标识,获取应用公钥;
[0384]第三验证模块,用于基于该应用公钥和该第二签名信息,对该业务的原串进行验证;
[0385]第五获取模块,用于当该业务的原串验证通过时,从该业务的原串中获取业务公钥;
[0386]第三存储模块,用于基于该终端标识,存储该业务公钥。
[0387]可选地,第三验证模块包括:
[0388]第二解签名单元,用于基于该应用公钥,对该第二签名信息进行解签名,得到第二解签名信息;
[0389]第二判断单元,用于判断该第二解签名信息是否与该业务的原串相同;
[0390]第二确定单元,用于当该第二解签名信息与该业务的原串相同时,确定该业务的原串验证通过,否则,确定该业务的
原串验证不通过。
[0391]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。
[0392]需要说明的是:上述实施例提供的基于密钥的业务安全性验证装置在业务安全性验证时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于密钥的业务安全性验证装置与基于密钥的业务安全性验证方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0393]图15是本发明实施例提供的一种终端结构示意图。上述实施例中的第一用户客户端可以安装在该终端中。参见图15,终端1500可以包括通信单元1510、包括有一个或一个以上计算机可读存储介质的存储器1520、输入单元1530、显示单元1540、传感器1550、音频电路15130、WIFI(Wireless Fidelity,无线保真)模块1570、包括有一个或者一个以上处理核心的处理器1580、以及电源1590等部件。本领域技术人员可以理解,图15中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0394]通信单元1510可用于收发信息或通话过程中,信号的接收和发送,该通信单元1510可以为RF(Rad1 Frequency,射频)电路、路由器、调制解调器、等网络通信设备。特别地,当通信单元1510为RF电路时,将基站的下行信息接收后,交由一个或者一个以上处理器1580处理;另外,将涉及上行的数据发送给基站。通常,作为通信单元的RF电路包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SH0卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,通信单元1510还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communicat1n,全球移动通讯系统)、GPRS(General Packet Rad1 Service,通用分组无线服务)、CDMA(Code Divis1n MultipleAccess,码分多址)、WCDMA(Wideband Code Divis1n Multiple Access,宽带码分多址)、LTE(Long Term Evolut1n,长期演进)、电子邮件、SMS(Short Messaging Service,短消息服务)等。存储器1520可用于存储软件程序以及模块,处理器1580通过运行存储在存储器1520的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端1500的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1520还可以包括存储器控制器,以提供处理器1580和输入单元1530对存储器1520的访问。
[0395]输入单元1530可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。优选地,输入单元1530可包括触敏表面1531以及其他输入设备1532。触敏表面1531,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面1531上或在触敏表面1531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面1531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1580,并能接收处理器1580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面1531。除了触敏表面1531,输入单元1530还可以包括其他输入设备1532。优选地,其他输入设备1532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0396]显示单元1540可用于显示由用户输入的信息或提供给用户的信息以及终端1500的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1540可包括显示面板1541,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、0LED(0rganic Light-Emitting D1de,有机发光二极管)等形式来配置显示面板1541。进一步的,触敏表面1531可覆盖显示面板1541,当触敏表面1531检测到在其上或附近的触摸操作后,传送给处理器1580以确定触摸事件的类型,随后处理器1580根据触摸事件的类型在显示面板1541上提供相应的视觉输出。虽然在图15中,触敏表面1531与显示面板1541是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面1531与显示面板1541集成而实现输入和输出功能。
[0397]终端1500还可包括至少一种传感器1550,比如光传感器、运动传感器以及其他传感器。光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1541的亮度,接近传感器可在终端1500移动到耳边时,关闭显示面板1541和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端1500还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0398]音频电路1560、扬声器1561,传声器1562可提供用户与终端1500之间的音频接口。音频电路1560可将接收到的音频数据转换后的电信号,传输到扬声器1561,由扬声器1561转换为声音信号输出;另一方面,传声器1562将收集的声音信号转换为电信号,由音频电路1560接收后转换为音频数据,再将音频数据输出处理器1580处理后,经通信单元1510以发送给比如另一终端,或者将音频数据输出至存储器1520以便进一步处理。音频电路1560还可能包括耳塞插孔,以提供外设耳机与终端1500的通信。
[0399]为了实现无线通信,该终端上可以配置有无线通信单元1570,该无线通信单元1570可以为WIFI模块。WIFI属于短距离无线传输技术,终端1500通过无线通信单元1570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图中示出了无线通信单元1570,但是可以理解的是,其并不属于终端1500的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0400]处理器1580是终端1500的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1520内的软件程序和/或模块,以及调用存储在存储器1520内的数据,执行终端1500的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1580可包括一个或多个处理核心;优选的,处理器1580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1580中。
[0401]终端1500还包括给各个部件供电的电源1590(比如电池),优选的,电源可以通过电源管理系统与处理器1580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源1560还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0402]尽管未示出,终端1500还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0403]在本实施例中,终端还包括有一个或者一个以上的程序,这一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,所述一个或者一个以上程序可以为该终端中的TEE,且该一个或者一个以上程序包含用于进行本发明实施例提供的如下所述的基于密钥的业务安全性验证方法的指令,包括:
[0404]接收当前提供业务的应用程序发送的密钥获取请求,该密钥获取请求中携带应用程序标识;
[0405]基于该应用程序标识,获取该应用程序的应用私钥,该应用私钥是通过内置的设备私钥生成,该设备私钥包含于设备根密钥中;
[0406]基于该应用私钥验证该业务的安全性。
[0407]可选地,基于该应用程序标识,获取该应用程序的应用私钥之前,还包括:
[0408]当接收到该应用程序发送的应用密钥生成请求时,获取设备私钥,该应用密钥生成请求中携带应用程序标识;
[0409]基于该设备私钥,生成该应用程序的应用密钥,该应用密钥包括应用私钥和应用公钥;
[0410]基于该应用程序标识存储生成的应用私钥,将生成的应用公钥上传到应用服务器中。
[0411]可选地,基于该设备私钥,生成该应用程序的应用密钥,包括:
[0412]基于该设备私钥,按照第一指定算法,生成该应用程序的应用密钥。
[0413]可选地,基于该应用程序标识存储生成的应用私钥,包括:
[0414]基于该应用程序标识,判断是否已存储该应用程序的应用私钥;
[0415]如果已存储,则将已存储的应用程序的私钥替换为生成的应用私钥。
[0416]可选地,将生成的应用公钥上传到应用服务器中,包括:
[0417]基于该应用公钥,生成该应用程序的原串;
[0418]基于该设备私钥,对该应用程序的原串进行签名,得到第一签名信息;
[0419]将该应用程序的原串和该第一签名信息发送给该应用程序,使该应用程序将该应用程序的公钥上传到应用服务器中。
[0420]可选地,基于该应用私钥验证该业务的安全性,包括:
[0421 ]当该密钥获取请求中还携带业务标识时,基于该应用程序标识和该业务标识,获取该业务的业务私钥,该业务私钥是通过该应用私钥生成;
[0422]将该业务私钥发送给该应用程序,以通过该业务私钥验证该业务的安全性。
[0423]可选地,基于该应用程序标识和该业务标识,获取该业务的业务私钥之前,还包括:
[0424]当该密钥获取请求中还携带生物特征信息时,判断是否已存储该生物特征信息,该生物特征信息为该应用程序基于该业务检测得到;
[0425]当已存储该生物特征信息时,执行基于该应用程序标识和该业务标识,获取该业务的业务私钥的步骤。
[0426]可选地,基于该应用程序标识和该业务标识,获取该业务的业务私钥之前,还包括:
[0427]基于该应用私钥,生成该业务的业务密钥,该业务密钥包括业务私钥和业务公钥;
[0428]基于该应用程序标识和该业务标识存储生成的业务私钥,将生成的业务公钥上传到应用服务器中。
[0429]可选地,基于该应用私钥,生成该业务的业务密钥,包括:
[0430]基于该应用私钥,按照第二指定算法,生成该业务的业务密钥。
[0431 ] 可选地,将生成的业务公钥上传到应用服务器中,包括:
[0432]基于该业务公钥,生成该业务的原串;
[0433]基于该应用私钥,对该业务的原串进行签名,得到第二签名信息;
[0434]将该业务的原串和该第二签名信息发送给该应用程序,使该应用程序将该业务公钥上传到该应用服务器中。
[0435]可选地,该应用私钥和该业务私钥存储在第一安全存储空间中,第一安全存储空间的访问速度大于第二存储空间的访问速度,第二安全存储空间为存储该设备私钥的存储空间。
[0436]可选地,第一安全存储空间为可信安全存储空间,第二安全存储空间为RPMB,可信安全存储空间和RPMB均包含于eMMC中。
[0437]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。
[0438]图16示出了本发明一个实施例提供的服务器的结构示意图。该服务器可以是应用服务器。具体来讲:
[0439]服务器1600包括中央处理单元(CPU) 1601、包括随机存取存储器(RAM) 1602和只读存储器(ROM) 1603的系统存储器1604,以及连接系统存储器1604和中央处理单元1601的系统总线1605。服务器1600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1606,和用于存储操作系统1613、应用程序1614和其他程序模块1615的大容量存储设备1607。
[0440]基本输入/输出系统1606包括有用于显示信息的显示器1608和用于用户输入信息的诸如鼠标、键盘之类的输入设备1609。其中显示器1608和输入设备1609都通过连接到系统总线1605的输入输出控制器1610连接到中央处理单元1601。基本输入/输出系统1606还可以包括输入输出控制器1610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1610还提供输出到显示屏、打印机或其他类型的输出设备。
[0441]大容量存储设备1607通过连接到系统总线1605的大容量存储控制器(未示出)连接到中央处理单元1601。大容量存储设备1607及其相关联的计算机可读介质为服务器1600提供非易失性存储。也就是说,大容量存储设备1607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
[0442]不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、R0M、EPR0M、EEPR0M、闪存或其他固态存储其技术,CD-R0M、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1604和大容量存储设备1607可以统称为存储器。
[0443]根据本发明的各种实施例,服务器1600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即服务器1600可以通过连接在系统总线1605上的网络接口单元1611连接到网络1612,或者说,也可以使用网络接口单元1611来连接到其他类型的网络或远程计算机系统(未示出)。
[0444]上述存储器还包括一个或者一个以上的程序,一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的如下基于密钥的业务安全性验证方法的指令。
[0445]接收应用程序发送的业务验证请求,该业务验证请求中携带第三签名信息和终端标识,该第三签名信息是该应用程序基于当前所提供业务的业务私钥对检测到的生物特征信息进行签名得到,该业务私钥是终端基于应用私钥生成,该应用私钥是该终端基于内置的设备私钥生成,该应用私钥为该应用程序的私钥,该设备私钥包含于设备根密钥中;
[0446]基于该终端标识,获取该业务的业务公钥;
[0447]基于该业务公钥和该第三签名信息,对该业务的安全性进行验证。
[0448]可选地,接收应用程序发送的业务验证请求之前,还包括:
[0449]接收该应用程序发送的应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、第一签名信息和该终端标识;
[0450]向根密钥服务器发送密钥验证请求,该密钥验证请求中携带该应用程序的原串、该第一签名信息和该终端标识,使该根密钥服务器对该应用程序的原串进行验证;
[0451 ]当接收到该根密钥服务器发送的验证通过消息时,从该应用程序的原串中获取应用公钥,该应用公钥为该应用程序的公钥;
[0452 ]基于该终端标识,存储该应用公钥。
[0453] 可选地,接收应用程序发送的业务验证请求之前,还包括:
[0454]接收该应用程序发送的应用密钥上传请求,该应用密钥上传请求中携带该应用程序的原串、第一签名信息和该终端标识;
[0455]向根密钥服务器发送设备密钥获取请求,该设备密钥获取请求中携带该终端标识,使该根密钥服务器返回设备公钥;
[0456]当接收到该根密钥服务器发送的该设备公钥时,基于该设备公钥和该第一签名信息,对该应用程序的原串进行验证;
[0457]当该应用程序的原串验证通过时,从该应用程序的原串中获取应用公钥,该应用公钥为该应用程序的公钥;
[0458]基于该终端标识,存储该应用公钥。
[0459]可选地,基于该设备公钥和该第一签名信息,对该应用程序的原串进行验证,包括:
[0460]基于该设备公钥,对该第一签名信息进行解签名,得到第一解签名信息;
[0461 ]判断该第一解签名信息是否与该应用程序的原串相同;
[0462]当该第一解签名信息与该应用程序的原串相同时,确定该应用程序的原串验证通过,否则,确定该应用程序的原串验证不通过。
[0463]可选地,接收应用程序发送的业务验证请求之前,还包括:
[0464]接收该应用程序发送的业务密钥上传请求,该业务密钥上传请求中携带该业务的原串、第二签名信息和该终端标识;
[0465]基于该终端标识,获取应用公钥;
[0466]基于该应用公钥和该第二签名信息,对该业务的原串进行验证;
[0467]当该业务的原串验证通过时,从该业务的原串中获取业务公钥;
[0468]基于该终端标识,存储该业务公钥。
[0469]可选地,基于该应用公钥和该第二签名信息,对该业务的原串进行验证,包括:
[0470]基于该应用公钥,对该第二签名信息进行解签名,得到第二解签名信息;
[0471 ]判断该第二解签名信息是否与该业务的原串相同;
[0472]当该第二解签名信息与该业务的原串相同时,确定该业务的原串验证通过,否则,确定该业务的原串验证不通过。
[0473]在本发明实施例中,由于应用私钥是通过终端内置的设备私钥生成,在该设备私钥存在安全性的基础上,确保了该应用私钥的安全性,而业务私钥又是通过该应用私钥生成,因此,通过该业务私钥验证该业务的安全性,可以提高该业务的安全性。
[0474]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述
提到的存储介质可以是只读存储器,磁盘或光盘等。
[0475]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种基于密钥的业务安全性验证方法,其特征在于,所述方法包括: 接收当前提供业务的应用程序发送的密钥获取请求,所述密钥获取请求中携带应用程序标识; 基于所述应用程序标识,获取所述应用程序的应用私钥,所述应用私钥是通过内置的设备私钥生成,所述设备私钥包含于设备根密钥中; 基于所述应用私钥验证所述业务的安全性。2.如权利要求1所述的方法,其特征在于,所述基于所述应用程序标识,获取所述应用程序的应用私钥之前,还包括: 当接收到所述应用程序发送的应用密钥生成请求时,获取所述设备私钥,所述应用密钥生成请求中携带所述应用程序标识; 基于所述设备私钥,生成所述应用程序的应用密钥,所述应用密钥包括所述应用私钥和应用公钥; 基于所述应用程序标识存储生成的应用私钥,将生成的应用公钥上传到应用服务器中。3.如权利要求2所述的方法,其特征在于,所述基于所述设备私钥,生成所述应用程序的应用密钥,包括: 基于所述设备私钥,按照第一指定算法,生成所述应用程序的应用密钥。4.如权利要求2所述的方法,其特征在于,所述基于所述应用程序标识存储生成的应用私钥,包括: 基于所述应用程序标识,判断是否已存储所述应用程序的应用私钥; 如果已存储,则将已存储的所述应用私钥替换为所述生成的应用私钥。5.如权利要求2-4任一权利要求所述的方法,其特征在于,所述将生成的应用公钥上传到应用服务器中,包括: 基于所述应用公钥,生成所述应用程序的原串; 基于所述设备私钥,对所述应用程序的原串进行签名,得到第一签名信息; 将所述应用程序的原串和所述第一签名信息发送给所述应用程序,使所述应用程序将所述应用公钥上传到所述应用服务器中。6.如权利要求1-5任一权利要求所述的方法,其特征在于,所述基于所述应用私钥验证所述业务的安全性,包括: 当所述密钥获取请求中还携带业务标识时,基于所述应用程序标识和所述业务标识,获取所述业务的业务私钥,所述业务私钥是通过所述应用私钥生成; 将所述业务私钥发送给所述应用程序,以通过所述业务私钥验证所述业务的安全性。7.如权利要求6所述的方法,其特征在于,所述基于所述应用程序标识和所述业务标识,获取所述业务的业务私钥之前,还包括: 当所述密钥获取请求中还携带生物特征信息时,判断是否已存储所述生物特征信息,所述生物特征信息为所述应用程序基于所述业务检测得到; 当已存储所述生物特征信息时,执行所述基于所述应用程序标识和所述业务标识,获取所述业务的业务私钥的步骤。8.如权利要求6或7所述的方法,其特征在于,所述基于所述应用程序标识和所述业务标识,获取所述业务的业务私钥之前,还包括: 基于所述应用私钥,生成所述业务的业务密钥,所述业务密钥包括所述业务私钥和业务公钥; 基于所述应用程序标识和所述业务标识存储生成的业务私钥,将生成的业务公钥上传到应用服务器中。9.如权利要求8所述的方法,其特征在于,所述基于所述应用私钥,生成所述业务的业务密钥,包括: 基于所述应用私钥,按照第二指定算法,生成所述业务的业务密钥。10.如权利要求8或9所述的方法,其特征在于,所述将生成的业务公钥上传到应用服务器中,包括: 基于所述业务公钥,生成所述业务的原串; 基于所述应用私钥,对所述业务的原串进行签名,得到第二签名信息; 将所述业务的原串和所述第二签名信息发送给所述应用程序,使所述应用程序将所述业务公钥上传到所述应用服务器中。11.如权利要求1-10任一权利要求所述的方法,其特征在于,所述应用私钥和业务私钥存储在第一安全存储空间中,所述第一安全存储空间的访问速度大于第二存储空间的访问速度,所述第二安全存储空间为存储所述设备私钥的存储空间。12.如权利要求11所述的方法,其特征在于,所述第一安全存储空间为可信安全存储空间,所述第二安全存储空间为回访保护内存块RPMB,所述可信安全存储空间和所述RPMB均包含于嵌入式多媒体卡eMMC中。13.一种基于密钥的业务安全性验证方法,其特征在于,所述方法包括: 当检测到对当前所提供业务进行验证的生物特征信息时,向终端发送密钥获取请求,所述密钥获取请求中携带应用程序标识; 当接收到所述终端基于所述应用程序标识发送的业务私钥时,基于所述业务私钥,对所述生物特征信息进行签名,得到第三签名信息,所述业务私钥是所述终端基于应用私钥生成,所述应用私钥是所述终端基于内置的设备私钥生成,所述应用私钥为应用程序的私钥,所述设备私钥包含于设备根密钥中; 向应用服务器发送业务验证请求,所述业务验证请求中携带所述第三签名信息和终端标识,使所述应用服务器验证所述业务的安全性。14.如权利要求13所述的方法,其特征在于,所述密钥获取请求中还携带所述业务标识和所述生物特征信息中的至少一个。15.如权利要求13所述的方法,其特征在于,所述向终端发送密钥获取请求之前,还包括: 向所述终端发送应用密钥生成请求,所述应用密钥生成请求中携带所述应用程序标识,使所述终端基于所述设备私钥生成应用公钥,所述应用公钥为所述应用程序的公钥; 当接收到所述终端发送的所述应用程序的原串和第一签名信息时,向所述应用服务器发送应用密钥上传请求,所述应用密钥上传请求中携带所述应用程序的原串、所述第一签名信息和所述终端标识,所述应用程序的原串是所述终端基于所述应用公钥生成,所述第一签名信息是所述终端基于所述设备私钥对所述应用程序的原串进行签名得到。16.如权利要求13-15任一权利要求所述的方法,其特征在于,所述向终端发送业务密钥获取请求之前,还包括: 向所述终端发送业务密钥生成请求,所述业务密钥生成请求中携带所述应用程序标识,使所述终端基于所述应用私钥生成业务公钥; 当接收到所述终端发送的所述业务的原串和第二签名信息时,向所述应用服务器发送业务密钥上传请求,所述业务密钥上传请求中携带所述业务的原串、所述第二签名信息和所述终端标识,所述业务的原串是所述终端基于所述业务公钥生成,所述第二签名信息是所述终端基于所述应用私钥对所述业务的原串进行签名得到。17.一种基于密钥的业务安全性验证方法,其特征在于,所述方法包括: 接收应用程序发送的业务验证请求,所述业务验证请求中携带第三签名信息和终端标识,所述第三签名信息是所述应用程序基于当前所提供业务的业务私钥对检测到的生物特征信息进行签名得到,所述业务私钥是终端基于应用私钥生成,所述应用私钥是所述终端基于内置的设备私钥生成,所述应用私钥为所述应用程序的私钥,所述设备私钥包含于设备根密钥中; 基于所述终端标识,获取所述业务的业务公钥; 基于所述业务公钥和所述第三签名信息,对所述业务的安全性进行验证。18.如权利要求17所述的方法,其特征在于,所述接收应用程序发送的业务验证请求之前,还包括: 接收所述应用程序发送的应用密钥上传请求,所述应用密钥上传请求中携带所述应用程序的原串、第一签名信息和所述终端标识; 向根密钥服务器发送密钥验证请求,所述密钥验证请求中携带所述应用程序的原串、所述第一签名信息和所述终端标识,使所述根密钥服务器对所述应用程序的原串进行验证; 当接收到所述根密钥服务器发送的验证通过消息时,从所述应用程序的原串中获取应用公钥,所述应用公钥为所述应用程序的公钥; 基于所述终端标识,存储所述应用公钥。19.如权利要求17所述的方法,其特征在于,所述接收应用程序发送的业务验证请求之前,还包括: 接收所述应用程序发送的应用密钥上传请求,所述应用密钥上传请求中携带所述应用程序的原串、第一签名信息和所述终端标识; 向根密钥服务器发送设备密钥获取请求,所述设备密钥获取请求中携带所述终端标识,使所述根密钥服务器返回设备公钥; 当接收到所述根密钥服务器发送的所述设备公钥时,基于所述设备公钥和所述第一签名信息,对所述应用程序的原串进行验证; 当所述应用程序的原串验证通过时,从所述应用程序的原串中获取应用公钥,所述应用公钥为所述应用程序的公钥; 基于所述终端标识,存储所述应用公钥。20.如权利要求19所述的方法,其特征在于,所述基于所述设备公钥和所述第一签名信息,对所述应用程序的原串进行验证,包括: 基于所述设备公钥,对所述第一签名信息进行解签名,得到第一解签名信息; 判断所述第一解签名信息是否与所述应用程序的原串相同; 当所述第一解签名信息与所述应用程序的原串相同时,确定所述应用程序的原串验证通过,否则,确定所述应用程序的原串验证不通过。21.如权利要求17-20任一权利要求所述的方法,其特征在于,所述接收应用程序发送的业务验证请求之前,还包括: 接收所述应用程序发送的业务密钥上传请求,所述业务密钥上传请求中携带所述业务的原串、第二签名信息和所述终端标识; 基于所述终端标识,获取应用公钥; 基于所述应用公钥和所述第二签名信息,对所述业务的原串进行验证; 当所述业务的原串验证通过时,从所述业务的原串中获取业务公钥; 基于所述终端标识,存储所述业务公钥。22.如权利要求21所述的方法,其特征在于,所述基于所述应用公钥和所述第二签名信息,对所述业务的原串进行验证,包括: 基于所述应用公钥,对所述第二签名信息进行解签名,得到第二解签名信息; 判断所述第二解签名信息是否与所述业务的原串相同; 当所述第二解签名信息与所述业务的原串相同时,确定所述业务的原串验证通过,否则,确定所述业务的原串验证不通过。23.一种基于密钥的业务安全性验证装置,其特征在于,所述装置包括: 接收模块,用于接收当前提供业务的应用程序发送的密钥获取请求,所述密钥获取请求中携带应用程序标识; 第一获取模块,用于基于所述应用程序标识,获取所述应用程序的应用私钥,所述应用私钥是通过内置的设备私钥生成,所述设备私钥包含于设备根密钥中; 验证模块,用于基于所述应用私钥验证所述业务的安全性。24.如权利要求23所述的装置,其特征在于,所述装置还包括: 第二获取模块,用于当接收到所述应用程序发送的应用密钥生成请求时,获取所述设备私钥,所述应用密钥生成请求中携带所述应用程序标识; 生成模块,用于基于所述设备私钥,生成所述应用程序的应用密钥,所述应用密钥包括所述应用私钥和应用公钥; 存储模块,用于基于所述应用程序标识存储生成的应用私钥; 上传模块,用于将生成的应用公钥上传到应用服务器中。25.如权利要求24所述的装置,其特征在于,所述生成模块包括: 第一生成单元,用于基于所述设备私钥,按照第一指定算法,生成所述应用程序的应用密钥。26.如权利要求24所述的装置,其特征在于,所述存储模块包括: 第一判断单元,用于基于所述应用程序标识,判断是否已存储所述应用程序的应用私钥; 替换单元,用于如果已存储,则将已存储的所述应用私钥替换为所述生成的应用私钥。27.如权利要求24-26任一权利要求所述的装置,其特征在于,所述上传模块包括: 第二生成单元,用于基于所述应用公钥,生成所述应用程序的原串; 签名单元,用于基于所述设备私钥,对所述应用程序的原串进行签名,得到第一签名信息; 第一发送单元,用于将所述应用程序的原串和所述第一签名信息发送给所述应用程序,使所述应用程序将所述应用公钥上传到所述应用服务器中。28.如权利要求23-27任一权利要求所述的装置,其特征在于,所述验证模块包括: 获取单元,用于当所述密钥获取请求中还携带业务标识时,基于所述应用程序标识和所述业务标识,获取所述业务的业务私钥,所述业务私钥是通过所述应用私钥生成; 第二发送单元,用于将所述业务私钥发送给所述应用程序,以通过所述业务私钥验证所述业务的安全性。29.如权利要求28所述的装置,其特征在于,所述验证模块还包括: 第二判断单元,用于当所述密钥获取请求中还携带生物特征信息时,判断是否已存储所述生物特征信息,所述生物特征信息为所述应用程序基于所述业务检测得到; 所述获取单元,还用于当已存储所述生物特征信息时,基于所述应用程序标识和所述业务标识,获取所述业务的业务私钥。30.如权利要求28或29所述的装置,其特征在于,所述验证模块还包括: 第三生成单元,用于基于所述应用私钥,生成所述业务的业务密钥,所述业务密钥包括所述业务私钥和业务公钥; 存储单元,用于基于所述应用程序标识和所述业务标识存储生成的业务私钥; 上传单元,用于将生成的业务公钥上传到应用服务器中。31.如权利要求30所述的装置,其特征在于,所述第三生成单元包括: 第一生成子单元,用于基于所述应用私钥,按照第二指定算法,生成所述业务的业务密钥。32.如权利要求30或31所述的装置,其特征在于,所述上传单元包括: 第二生成子单元,用于基于所述业务公钥,生成所述业务的原串; 签名子单元,用于基于所述应用私钥,对所述业务的原串进行签名,得到第二签名信息; 发送子单元,用于将所述业务的原串和所述第二签名信息发送给所述应用程序,使所述应用程序将所述业务公钥上传到所述应用服务器中。33.如权利要求23-32任一权利要求所述的装置,其特征在于,所述应用私钥和所述业务私钥存储在第一安全存储空间中,所述第一安全存储空间的访问速度大于第二存储空间的访问速度,所述第二安全存储空间为存储所述设备私钥的存储空间。34.如权利要求33所述的装置,其特征在于,所述第一安全存储空间为可信安全存储空间,所述第二安全存储空间为回访保护内存块RPMB,所述可信安全存储空间和所述RPMB均包含于嵌入式多媒体卡eMMC中。35.一种基于密钥的业务安全性验证装置,其特征在于,所述装置包括: 第一发送模块,用于当检测到对当前所提供业务进行验证的生物特征信息时,向终端发送密钥获取请求,所述密钥获取请求中携带应用程序标识; 签名模块,用于当接收到所述终端基于所述应用程序标识发送的业务私钥时,基于所述业务私钥,对所述生物特征信息进行签名,得到第三签名信息,所述业务私钥是所述终端基于应用私钥生成,所述应用私钥是所述终端基于内置的设备私钥生成,所述应用私钥为应用程序的私钥,所述设备私钥包含于设备根密钥中; 第二发送模块,用于向应用服务器发送业务验证请求,所述业务验证请求中携带所述第三签名信息和终端标识,使所述应用服务器验证所述业务的安全性。36.如权利要求35所述的装置,其特征在于,所述密钥获取请求中还携带所述业务标识和所述生物特征信息中的至少一个。37.如权利要求35所述的装置,其特征在于,所述装置还包括: 第三发送模块,用于向所述终端发送应用密钥生成请求,所述应用密钥生成请求中携带所述应用程序标识,使所述终端基于所述设备私钥生成应用公钥,所述应用公钥为所述应用程序的公钥; 第四发送模块,用于当接收到所述终端发送的所述应用程序的原串和第一签名信息时,向所述应用服务器发送应用密钥上传请求,所述应用密钥上传请求中携带所述应用程序的原串、所述第一签名信息和所述终端标识,所述应用程序的原串是所述终端基于所述应用公钥生成,所述第一签名信息是所述终端基于所述设备私钥对所述应用程序的原串进行签名得到。38.如权利要求35-37任一权利要求所述的装置,其特征在于,所述装置还包括: 第五发送模块,用于向所述终端发送业务密钥生成请求,所述业务密钥生成请求中携带所述应用程序标识,使所述终端基于所述应用私钥生成业务公钥; 第六发送模块,用于当接收到所述终端发送的所述业务的原串和第二签名信息时,向所述应用服务器发送业务密钥上传请求,所述业务密钥上传请求中携带所述业务的原串、所述第二签名信息和所述终端标识,所述业务的原串是所述终端基于所述业务公钥生成,所述第二签名信息是所述终端基于所述应用私钥对所述业务的原串进行签名得到。39.一种基于密钥的业务安全性验证装置,其特征在于,所述装置包括: 第一接收模块,用于接收应用程序发送的业务验证请求,所述业务验证请求中携带第三签名信息和终端标识,所述第三签名信息是所述应用程序基于当前所提供业务的业务私钥对检测到的生物特征信息进行签名得到,所述业务私钥是终端基于应用私钥生成,所述应用私钥是所述终端基于内置的设备私钥生成,所述应用私钥为所述应用程序的私钥,所述设备私钥包含于设备根密钥中; 第一获取模块,用于基于所述终端标识,获取所述业务的业务公钥; 第一验证模块,用于基于所述业务公钥和所述第三签名信息,对所述业务的安全性进行验证。40.如权利要求39所述的装置,其特征在于,所述装置还包括: 第二接收模块,用于接收所述应用程序发送的应用密钥上传请求,所述应用密钥上传请求中携带所述应用程序的原串、第一签名信息和所述终端标识; 第一发送模块,用于向根密钥服务器发送密钥验证请求,所述密钥验证请求中携带所述应用程序的原串、所述第一签名信息和所述终端标识,使所述根密钥服务器对所述应用程序的原串进行验证; 第二获取模块,用于当接收到所述根密钥服务器发送的验证通过消息时,从所述应用程序的原串中获取应用公钥,所述应用公钥为所述应用程序的公钥; 第一存储模块,用于基于所述终端标识,存储所述应用公钥。41.如权利要求39所述的装置,其特征在于,所述装置还包括: 第三接收模块,用于接收所述应用程序发送的应用密钥上传请求,所述应用密钥上传请求中携带所述应用程序的原串、第一签名信息和所述终端标识; 第二发送模块,用于向根密钥服务器发送设备密钥获取请求,所述设备密钥获取请求中携带所述终端标识,使所述根密钥服务器返回设备公钥; 第二验证模块,用于当接收到所述根密钥服务器发送的所述设备公钥时,基于所述设备公钥和所述第一签名信息,对所述应用程序的原串进行验证; 第三获取模块,用于当所述应用程序的原串验证通过时,从所述应用程序的原串中获取应用公钥,所述应用公钥为所述应用程序的公钥; 第二存储模块,用于基于所述终端标识,存储所述应用公钥。42.如权利要求41所述的装置,其特征在于,所述第二验证模块包括: 第一解签名单元,用于基于所述设备公钥,对所述第一签名信息进行解签名,得到第一解签名ig息; 第一判断单元,用于判断所述第一解签名信息是否与所述应用程序的原串相同; 第一确定单元,用于当所述第一解签名信息与所述应用程序的原串相同时,确定所述应用程序的原串验证通过,否则,确定所述应用程序的原串验证不通过。43.如权利要求39-42任一权利要求所述的装置,其特征在于,所述装置还包括: 第四接收模块,用于接收所述应用程序发送的业务密钥上传请求,所述业务密钥上传请求中携带所述业务的原串、第二签名信息和所述终端标识; 第四获取模块,用于基于所述终端标识,获取应用公钥; 第三验证模块,用于基于所述应用公钥和所述第二签名信息,对所述业务的原串进行验证; 第五获取模块,用于当所述业务的原串验证通过时,从所述业务的原串中获取业务公钥; 第三存储模块,用于基于所述终端标识,存储所述业务公钥。44.如权利要求43所述的装置,其特征在于,所述第三验证模块包括: 第二解签名单元,用于基于所述应用公钥,对所述第二签名信息进行解签名,得到第二解签名信息; 第二判断单元,用于判断所述第二解签名信息是否与所述业务的原串相同; 第二确定单元,用于当所述第二解签名信息与所述业务的原串相同时,确定所述业务的原串验证通过,否则,确定所述业务的原串验证不通过。
【专利摘要】本发明公开了一种基于密钥的业务安全性验证方法及装置,属于互联网领域。所述方法包括:接收当前提供业务的应用程序发送的密钥获取请求,所述密钥获取请求中携带应用程序标识;基于所述应用程序标识,获取所述应用程序的应用私钥,所述应用私钥是通过内置的设备私钥生成,所述设备私钥包含于设备根密钥中;基于所述应用私钥验证所述业务的安全性。本发明通过终端内置的设备私钥生成应用私钥,通过应用私钥验证业务的安全性,可以防止应用私钥被篡改,提高了业务的安全性。
【IPC分类】H04L29/06, H04L9/32
【公开号】CN105491067
【申请号】CN201610013656
【发明人】卢强
【申请人】腾讯科技(深圳)有限公司
【公开日】2016年4月13日
【申请日】2016年1月8日