一种密钥处理方法及装置的制造方法

文档序号:10515195阅读:204来源:国知局
一种密钥处理方法及装置的制造方法
【专利摘要】本发明实施例提供一种密钥处理方法及装置,涉及通信领域,能够避免在密钥装载时返回空间已满的错误码,保证密钥装载的顺利进行。该密钥处理方法包括:获取密钥装载命令,密钥装载命令指示在可信平台模块TPM芯片装载第一密钥;若TPM芯片内的所有密钥插槽均处于非空闲状态,则释放TPM芯片内所有密钥插槽中的第一密钥插槽;根据密钥装载命令,在第一密钥插槽上装载第一密钥。
【专利说明】
—种密钥处理方法及装置
技术领域
[0001]本发明涉及通信领域,尤其涉及一种密钥处理方法及装置。
【背景技术】
[0002]在通信系统中,为了保证数据的安全,终端设备(TerminalDevice)通常需要使用密钥对数据进行加密,这些密钥一旦泄露,与其相关的被加密数据的机密性将受到严重影响。因此必须提供安全保护机制,防止密钥以明文的形式保存在系统或代码中。TPM(Trusted Platform Module,可信平台模块)是常用的一种密钥保护方案,通过集成密钥和加解密运算引擎,能够提供基于硬件的敏感信息安全存储功能。TPM芯片是一种符合TPM标准的芯片,其中,TPM标准是由TCG(Trusted Computing Group,可信计算组织)提出的,该标准通过在计算机系统中嵌入一个包含密钥生成、加解密计算、安全存储和防篡改功能的芯片,使非法用户无法对其内部的数据进行访问更改,从而确保了数据加密的安全性。
[0003]现有技术中,通常一个TPM芯片内具有5至10个密钥插槽,密钥只有装载在密钥插槽内,才能被应用程序调用。若TPM芯片的密钥插槽已被占满,且仍有应用程序试图进行密钥装载时,TPM芯片就会返回空间已满的错误码。

【发明内容】

[0004]本发明实施例提供一种密钥处理方法及装置,能够避免在密钥装载时返回空间已满的错误码,保证密钥装载的顺利进行。
[0005]为达到上述目的,本发明的实施例采用如下技术方案:
[0006]第一方面,本发明实施例提供一种密钥处理方法,包括:
[0007]首先,获取密钥装载命令,密钥装载命令指示在可信平台模块TPM芯片装载第一密钥;其次,判断TPM芯片内的所有密钥插槽是否均处于非空闲状态,若TPM芯片内的所有密钥插槽均处于非空闲状态,则释放TPM芯片内所有密钥插槽中的第一密钥插槽;最后,根据密钥装载命令,在第一密钥插槽上装载第一密钥。
[0008]本发明实施例提供的密钥处理方法中,由于在获取指示在可信平台模块TPM芯片装载第一密钥的密钥装载命令,且TPM芯片内的所有密钥插槽均处于非空闲状态时,密钥处理装置能够释放所述TPM芯片内所有密钥插槽中的第一密钥插槽,并根据密钥装载命令,在所述第一密钥插槽上装载所述第一密钥。因此,能够避免在密钥装载时返回空间已满的错误码,保证密钥装载的顺利进行,合理地使用TPM芯片内存空间资源。
[0009]可选的,所述方法还包括:
[0010]在释放所述第一密钥插槽前,确认TPM芯片内的所有密钥插槽与密钥的映射关系。[0011 ]可选的,释放TPM芯片内所有密钥插槽中的第一密钥插槽,具体包括:
[0012]获取第一密钥插槽的标识,其中,占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中使用次数最少的密钥,或者,占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中最早装载的密钥;以及根据第一密钥插槽的标识,指示TPM芯片释放第一密钥插槽。
[0013]本发明实施例提供的密钥处理方法中,占用所述第一密钥插槽的密钥为占用所有密钥插槽的密钥中使用次数最少的密钥,或者,占用所述第一密钥插槽的密钥为占用所有密钥插槽的密钥中最早装载的密钥。通过合理的方式选择第一密钥插槽,尽可能地保证在装载第一密钥时其他密钥插槽不受影响。
[0014]可选的,所述方法还包括:
[0015]在释放第一密钥插槽前,保存占用第一密钥插槽的密钥的现场记录。
[0016]本发明实施例提供的密钥处理方法中,在释放第一密钥插槽前,保存占用第一密钥插槽的密钥的现场记录,以使得下次再装载该密钥时,能够直接恢复该密钥的现场记录,实现密钥的快速装载。
[0017]可选的,所述方法还包括:
[0018]在第一插槽上装载第一密钥时,确认存储器中存储有第一密钥的现场记录,获取并恢复第一密钥的现场记录。
[0019]本发明实施例提供的密钥处理方法中,在第一插槽上装载第一密钥时,若存储器中存储有第一密钥的现场记录,也可以直接恢复第一密钥的现场记录,实现密钥的快速装载。
[0020]可选的,所述方法还包括:
[0021]在第一密钥插槽上装载第一密钥时,记录第一密钥插槽与第一密钥的映射关系,以便根据映射关系从第一密钥插槽获取到第一密钥。
[0022]可选的,所述方法还包括:
[0023]获取密钥释放命令,密钥释放命令用于触发TPM芯片释放占用TPM芯片内的第二密钥插槽的第二密钥;
[0024]根据密钥释放命令,在第二密钥插槽上释放第二密钥;
[0025]在第二密钥插槽上释放第二密钥时,删除第二密钥插槽与第二密钥的映射关系。
[0026]在第一种可能的实现方式中,在获取密钥装载命令前,所述方法还包括:
[0027]判断TPM芯片内处于空闲状态的密钥插槽的个数是否大于或等于预设门限;若TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限,则从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中的任意一个命令,第一命令包括密钥装载命令。
[0028]在第二种可能的实现方式中,在获取密钥装载命令前,所述方法还包括:
[0029]判断TPM芯片内处于空闲状态的密钥插槽的个数是否小于预设门限;若TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限,则从接收到的至少一个命令中获取第一命令,第一命令为所述至少一个命令中优先级最高的命令,第一命令包括密钥装载命令。
[0030]本发明实施例提供的密钥处理方法中,通过判断芯片内处于空闲状态的密钥插槽的个数是否大于或者等于预设门限,并在所述芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限时,从接收到的至少一个命令中获取第一命令,所述第一命令为所述至少一个命令中的任意一个命令;在所述芯片内处于空闲状态的密钥插槽的个数小于预设门限时,从接收到的至少一个命令中获取第一命令,所述第一命令为所述至少一个命令中优先级最高的命令,保证合理地利用TPM芯片内的密钥插槽。
[0031 ]第二方面,本发明实施例提供一种密钥处理装置,密钥处理装置包括获取模块、确认模块、释放模块和装载模块;
[0032]获取模块,用于获取密钥装载命令,密钥装载命令指示在可信平台模块TPM芯片装载第一密钥;
[0033]确认模块,用于在获取模块获取密钥装载命令后,确认TPM芯片内的所有密钥插槽均处于非空闲状态;
[0034]释放模块,用于若TPM芯片内的所有密钥插槽均处于非空闲状态,则释放TPM芯片内所有密钥插槽中的第一密钥插槽;
[0035]装载模块,用于在释放模块释放TPM芯片内所有密钥插槽中的第一密钥插槽后,根据密钥装载命令,在第一密钥插槽上装载第一密钥。
[0036]本发明实施例提供的密钥处理装置的技术效果可以参见上述第一方面密钥处理装置执行的密钥处理方法中描述的密钥处理装置的技术效果,此处不再赘述。
[0037]可选的,确认模块,还用于在释放模块释放第一密钥插槽前,确认TPM芯片内的所有密钥插槽与密钥的映射关系。
[0038]可选的,释放模块,具体用于获取第一密钥插槽的标识,其中,占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中使用次数最少的密钥,或者,占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中最早装载的密钥;以及根据第一密钥插槽的标识,指示TPM芯片释放第一密钥插槽。
[0039]可选的,密钥处理装置还包括保存模块;
[0040]保存模块,用于在释放模块释放第一密钥插槽前,保存占用第一密钥插槽的密钥的现场记录。
[0041]可选的,装载模块,具体用于在装载模块在第一插槽上装载第一密钥时,确认存储器中存储有第一密钥的现场记录,获取并恢复第一密钥的现场记录。
[0042]可选的,密钥处理装置还包括记录模块;
[0043]记录模块,用于在装载模块在第一密钥插槽上装载第一密钥时,记录第一密钥插槽与第一密钥的映射关系,以便根据映射关系从第一密钥插槽获取到第一密钥。
[0044]可选的,获取模块,还用于获取密钥释放命令,密钥释放命令用于触发TPM芯片释放占用TPM芯片内的第二密钥插槽的第二密钥;
[0045]所述释放模块,还用于在所述获取模块获取密钥释放命令后,根据密钥释放命令,在第二密钥插槽上释放第二密钥;
[0046]所述记录模块,还用于在所述释放模块在第二密钥插槽上释放第二密钥时,删除第二密钥插槽与第二密钥的映射关系。
[0047]可选的,确认模块,还用于在获取模块获取密钥装载命令前,确认TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限;
[0048]获取模块,还用于在确认模块确认TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限后,从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中的任意一个命令,第一命令包括密钥装载命令。
[0049]可选的,确认模块,还用于在获取模块获取密钥装载命令前,确认TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限;
[0050]获取模块,还用于在确认模块确认TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限后,从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中优先级最高的命令,第一命令包括密钥装载命令。
[0051]第三方面,本发明实施例还提供一种终端设备,所述终端设备包括存储器、处理器、通信接口和系统总线;
[0052]所述存储器、所述处理器和所述通信接口通过所述系统总线连接,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器存储的计算机指令,以使所述终端设备执行如上述第一方面所述的密钥处理方法。
[0053]本发明实施例提供的终端设备的技术效果可以参见上述第一方面密钥处理装置执行的密钥处理方法中描述的密钥处理装置的技术效果,此处不再赘述。
[0054]第四方面,本发明实施例还提供一种软件产品,所述软件产品包括实现密钥处理方法的计算机指令。
[0055]所述计算机指令可以存储在可读存储介质上;处理器可以从该可读存储介质上读取到计算机指令并执行,使得处理器实现密钥处理方法。
[0056]本发明实施例提供一种密钥处理方法及装置,通过获取密钥装载命令,密钥装载命令指示在可信平台模块TPM芯片装载第一密钥;若TPM芯片内的所有密钥插槽均处于非空闲状态,则释放TPM芯片内所有密钥插槽中的第一密钥插槽;根据密钥装载命令,在第一密钥插槽上装载第一密钥。基于上述实施例的描述,由于在获取指示在可信平台模块TPM芯片装载第一密钥的密钥装载命令,且TPM芯片内的所有密钥插槽均处于非空闲状态时,密钥处理装置能够释放所述TPM芯片内所有密钥插槽中的第一密钥插槽,并根据密钥装载命令,在所述第一密钥插槽上装载所述第一密钥。因此,能够避免在密钥装载时返回空间已满的错误码,保证密钥装载的顺利进行,合理地使用TPM芯片内存空间资源。
【附图说明】
[0057]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
[0058]图1为本发明实施例提供的一种基于TSS1.2版本的芯片的系统架构图一;
[0059]图2为本发明实施例提供的一种基于TSS2.0版本的芯片的系统架构图一;
[0060]图3为本发明实施例提供的一种密钥处理方法的流程示意图一;
[0061]图4为本发明实施例提供的一种密钥处理方法的流程示意图二;
[0062]图5为本发明实施例提供的一种密钥处理方法的流程示意图三;
[0063]图6为本发明实施例提供的一种密钥处理方法的流程示意图四;
[0064]图7为本发明实施例提供的一种密钥处理方法的流程示意图五;
[0065]图8为本发明实施例提供的一种密钥处理装置的结构示意图一;
[0066]图9为本发明实施例提供的一种密钥处理装置的结构示意图二;
[0067]图10为本发明实施例提供的一种密钥处理装置的结构示意图三;
[0068]图11本发明实施例提供的一种基于TSS1.2版本的芯片的系统架构图二;
[0069]图12为本发明实施例提供的一种基于TSS2.0版本的芯片的系统架构图二;
[0070]图13为本发明实施例提供的一种终端设备的硬件示意图。
【具体实施方式】
[0071]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0072]本发明实施例中描述的技术可以用于各种芯片,尤其是TPM芯片。TCG除了提出TPM标准外,还定义了TSS(TPM Software Stack,TPM软件栈),其中,TSS是一种为上层可信计算应用提供访问TPM接口的软件系统。
[0073]图1是本发明实施例提供的一种基于TSS1.2版本的芯片的系统架构,包括:精简API (Applicat1n Program Interface,应用编程接口)、TDDL(TPM Device DriverLibrary,TPM设备驱动库)、TCS(TCG Core Service,核心服务)和TSP(TCG ServiceProvider,服务提供者)四层。其中,精简API为各种应用程序提供兼容性服务;TDDL为不同的TPM设备提供一个统一的驱动程序库函数接口; TCS负责将以字节流的形式发送TPM命令和接收TPM命令响应,并为TPM命令的并发调用基本的排队处理;TSP负责密钥管理和为应用程序提供API接口。
[0074]图2是本发明实施例提供的一种基于TSS2.0版本的芯片的系统架构,包括:精简AP1、特征AP1、增强系统AP1、系统AP1、TCTI(TPM Command Transmiss1n Interface,TPM命令传输接口)、TAB(TPM Access Broker,TPM访问代理)和资源管理器。其中,精简API为各种应用程序提供兼容性服务;资源管理器主要提供TPM对象(例如密钥)、上下文的管理;TAB用于处理多进程对TPM访问的同步,保证一个进程调用一个TPM命令时不被其他进程干扰;TCTI用于处理底层所有TPM的通信方式,如本地TPM、TPM模拟器、虚拟TPM、远程TPM等;系统API用于通过字节流的形式发送TPM命令和接收TPM命令;增强系统AP1、特征API为应用程序提供更好的底层抽象。
[0075]本发明实施例提供的密钥处理方法既可以应用于图1所示的TSS 1.2,也可以应用于图2所示的TSS 2.0,本发明可应用的TSS不做限制,TSS 1.2和TSS 2.0仅是示例。
[0076]TSS可以部署到TPM芯片,也可以部署到终端设备中,部署形式可以是中间件形式。TSS如果是部署到TPM芯片,由TPM芯片的处理器基于TSS来执行密钥处理方法。TSS如果是部署到终端设备,由终端设备的处理器基于TSS来执行密钥处理方法。
[0077]另外,本发明实施例所描述的终端设备,可以是无线终端也可以是有线终端,无线终端可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。无线终端可以经无线接入网(例如,RAN,rad1access network)与一个或多个核心网进行通信,无线终端可以是移动终端,如移动电话(或称为“蜂窝”电话)和具有移动终端的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(PCS,personal communicat1n service)电话、无绳电话、会话发起协议(SIP)话机、无线本地环路(WLL,wireless local loop)站、个人数字助理(PDA,personal digitalassistant)等设备。无线终端也可以称为系统、订户单元(subscriber unit)、订户站(subscriber stat1n),移动站(mobile stat1n)、移动台(mobile)、远程站(remotestat1n)、接入点(access point)、远程终端(remote terminal)、接入终端(accessterminal)、用户终端(user terminal)、用户代理(user agent)、用户设备(user device)、或用户装备(user equipment)。
[0078]还需要说明的是,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/SB,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符,一般表示前后关联对象是一种“或”的关系。
[0079]本发明实施例提供一种密钥处理方法,如图3所示,具体的,该方法包括:
[0080]SlOl、TSS获取密钥装载命令。
[0081]其中,密钥装载命令指示在可信平台模块TPM芯片装载第一密钥。
[0082]需要说明的是,本发明实施例所提供的密钥处理方法的是在TSS软件层面上实现的,具体的,TSS部署在密钥处理装置中,其中,密钥处理装置可以是TPM芯片,也可以是终端设备中,本发明对此并不做限制。
[0083]本发明实施例所提到的TPM芯片可以处理的命令通常分为四类:密钥装载命令、密钥释放命令、长作业命令和短作业命令。其中,密钥装载命令是指在空闲状态的密钥插槽内装载密钥的命令;密钥释放命令是指释放密钥插槽被装载的密钥的命令;长作业命令和短作业命令均是指应用程序调用密钥插槽内装载的密钥的命令。TPM芯片获取其他类型的命令(如密钥释放命令、长作业命令或者短作业命令)的情况将在下述实施例中进行详细描述,此处不再赘述。
[0084]S102、若TPM芯片内的所有密钥插槽均处于非空闲状态,则TSS释放TPM芯片内所有密钥插槽中的第一密钥插槽。
[0085]TSS释放TPM芯片内的第一密钥插槽,具体实现可以是:TSS指示所述TPM芯片释放第一密钥插槽。
[0086]TSS获取密钥装载命令后,首先需要确认TPM芯片内的所有密钥插槽是否均处于非空闲状态。具体的,TSS确认TPM芯片内的所有密钥插槽是否均处于非空闲状态的方法可以为:TSS确认TPM芯片内的所有密钥插槽与密钥的映射关系。若TPM芯片内的所有密钥插槽各自映射不同密钥,则说明TPM芯片内的所有密钥插槽均处于非空闲状态;若TPM芯片内的至少一个密钥插槽没有与任何一个密钥存在映射关系,则说明TPM芯片内的没有与任何一个密钥存在映射关系的密钥插槽处于空闲状态。
[0087]若TPM芯片内的所有密钥插槽中有至少一个密钥插槽处于空闲状态,则表明该至少一个密钥插槽为空闲的密钥插槽,此时直接在任意一个空闲的密钥插槽上装载第一密钥即可;若TPM芯片内的所有密钥插槽均处于非空闲状态,则表明TPM芯片内所有的密钥插槽均被占满,此时,TSS需要释放TPM芯片内的第一密钥插槽。
[0088]需要说明的是,第一密钥插槽可以是TPM芯片内所有密钥插槽中的任意一个密钥插槽。优选的,占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中使用次数最少的密钥,或者,占用所述第一密钥插槽的密钥为占用所有密钥插槽的密钥中最早装载的密钥。
[0089]S103、TSS根据密钥装载命令,在第一密钥插槽上装载第一密钥。
[0090]TSS在所述第一密钥插槽上装载所述第一密钥,具体实现可以是:TSS指示所述TPM芯片在所述第一密钥插槽上装载所述第一密钥。
[0091]具体的,TSS根据密钥装载命令,在第一密钥插槽上装载第一密钥的过程可以包括:TSS根据第一密钥,获取第一密钥的父密钥,其中,第一密钥的父密钥是指第一密钥的上一级密钥;若第一密钥的父密钥为SRK(Storage Root Key,存储根密钥),则TSS使用SRK对密钥数据进行解密,解密得到第一密钥的明文,再将第一密钥装载在第一密钥插槽上,生成第一密钥句柄。需要说明的是,若第一密钥的父密钥不为SRK,则TSS继续获取第一密钥的祖父密钥,其中,第一密钥的祖父密钥是指第一密钥的父密钥的上一级密钥,直到获取到SRK为止;假设第一密钥的父密钥为SRK,本实施例首先使用SRK获得第一密钥的父密钥的明文,在空闲的密钥插槽上装载第一密钥的父密钥,并使用第一密钥的父密钥对密钥数据进行解密,解密得到第一密钥的明文,再将第一密钥装载在第一密钥插槽上,生成第一密钥句柄。从而使得应用程序能够根据第一密钥句柄,调用接受执行加密、签名、验证或者HMAC(HashMessage Authenticat1n Code,哈希消息认证码)计算等操作。
[0092]具体的,如图4所示,本发明实施例提供的密钥处理方法的完整流程包括:
[0093]S201、TSS判断TPM芯片内处于空闲状态的密钥插槽的个数是否大于或等于预设门限。
[0094]可以理解的是,在步骤S201执行之前,TSS首先在同一时间可能会接受到至少一个应用程序发出的至少一个命令,那么,需要对至少一个命令的执行顺序做出定义。其中,一个应用程序能够发出一个命令,也能够发出多个命令,本发明不做限制。
[0095]可选的,TSS能够对接收到的至少一条命令按照命令类型进行分类。即TSS将密钥装载命令分为一类,将密钥释放命令分为一类,将长作业命令分为一类,以及将短作业命令分为一类,同一类型的命令的执行先后根据TSS接收命令的时间先后决定。
[0096]TSS判断TPM芯片内处于空闲状态的密钥插槽的个数是否大于或等于预设门限。其中,预设门限可以小于或等于芯片内密钥插槽的总个数。通常的,预设门限小于芯片内密钥插槽的总个数,假设TPM芯片内具有6个密钥插槽,可以设置预设门限为2。
[0097]S202、若TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限,则TSS从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中的任意一个命令。
[0098]若TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限,则说明TPM芯片内处于空闲状态的密钥插槽还有很多,此时TSS从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中的任意一个命令。
[0099]S203、若TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限,则TSS从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中优先级最高的命令。
[0100]若TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限,则说明TPM芯片内处于空闲状态的密钥插槽很少,甚至可能没有处于空闲状态的密钥插槽,此时TSS从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中优先级最高的命令,如此能够保证优先级高的命令能够优先执行。
[0101]通常的,TSS可以处理的四类命令的优先级从高到低依次为:密钥释放命令、短作业命令、长作业命令,以及密钥装载命令。
[0102]需要说明的是,TSS在处理命令时是依次执行的,因此,TSS每次从接收到的至少一个命令中获取的第一命令都是一个单独的命令。在执行完第一命令后,TSS可以返回执行步骤S202或步骤S203,直至接收到的所有命令执行完毕。
[0103]S204、TSS判断第一命令是否为密钥装载命令。
[0104]其中,密钥装载命令指示在TPM芯片装载第一密钥。
[0105]S205、若第一命令为密钥装载命令,则TSS判断第一密钥是否已经装载。
[0106]若第一密钥已经装载,则无需再装载第一密钥,下述步骤无须执行。
[0107]S206、若第一密钥未装载,则TSS获取TPM芯片内的所有密钥插槽的状态。
[0108]若第一密钥未装载,则TSS需要获取TPM芯片内的所有密钥插槽的状态,判断TPM芯片内的所有密钥插槽是否均处于非空闲状态。具体的,TSS确认TPM芯片内的所有密钥插槽是否均处于非空闲状态的方法可以为:TSS确认TPM芯片内的所有密钥插槽与密钥的映射关系。若TPM芯片内的至少一个密钥插槽处于空闲状态,则表明TPM芯片内至少有一个空闲的密钥插槽,此时直接在任意一个空闲的密钥插槽上装载第一密钥即可。
[0109]S207、若TPM芯片内的所有密钥插槽均处于非空闲状态,则TSS释放芯片内所有密钥插槽中的第一密钥插槽。
[0110]具体的,如图5所示,步骤S207可以包括S207a和S207b:
[0111]S207a、若TPM芯片内的所有密钥插槽均处于非空闲状态,TSS获取第一密钥插槽。
[0112]其中,TSS获取第一密钥插槽是指TSS获取满足预设条件的第一密钥插槽,其中,满足预设条件的第一密钥插槽是指:占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中使用次数最少的密钥,或者,占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中最早装载的密钥。
[0113]S207b、TSS释放第一密钥插槽。具体实现是,TSS是指示TPM芯片释放第一密钥插槽。
[0114]可选的,如图6所示,在步骤S207a和步骤S207b之间,方法还包括步骤S207c:
[0115]S207c、TSS保存占用第一密钥插槽的密钥的现场记录。
[0116]需要说明的是,本发明实施例提供的密钥处理方法中,与TPM芯片连接的存储器或者TPM芯片内部的存储器可以保存密钥的现场记录,其中,密钥的现场记录是指密钥装载时所需的文件、状态等信息,以保证下次装载该密钥时能够快速地从存储器中读取到该密钥的现场记录,恢复密钥。
[0117]因此,在TSS释放第一密钥插槽之前,TSS需要保存占用第一密钥插槽的密钥的现场记录。
[0118]S208、TSS在第一密钥插槽上装载第一密钥。具体实现是,TSS是指示TPM芯片在第一密钥插槽上装载第一密钥。
[0119]具体的,如图7所示,步骤S208可以包括S208a和S208b:
[0120]S208a、TSS判断存储器中是否存储有第一密钥的现场记录。
[0121]TSS在第一密钥插槽上装载第一密钥时,首先判断存储器中是否存储有第一密钥的现场记录,若存储器中未存储有第一密钥的现场记录,则TSS在第一密钥插槽上装载第一密钥。具体的装载过程已经在上述实施例中进行了详细描述,此处不再赘述。
[0122]S208b、若存储器中存储有第一密钥的现场记录,则TSS获取并恢复第一密钥的现场记录。
[0123]若存储器中存储有第一密钥的现场记录,则TSS获取并恢复第一密钥的现场记录,实现快速装载密钥。
[0124]S209、TSS在密钥装载记录中记录第一信息。
[0125]其中,第一信息至少包括第一密钥插槽与第一密钥的映射关系。
[0126]需要说明的是,在密钥装载记录中实时记录着当前时刻TPM芯片内所有密钥插槽的状态。当TSS在第一密钥插槽上装载第一密钥后,TSS在密钥装载记录中记录第一信息,第一信息至少包括第一密钥插槽与第一密钥的映射关系。
[0127]S210、若第一命令不为密钥装载命令,则TSS判断第一命令是否为密钥释放命令。
[0128]步骤S210是与步骤S205并列的步骤。
[0129]其中,密钥释放命令用于触发芯片释放第二密钥,第二密钥为占用芯片内的第二密钥插槽的密钥。
[0130]S211、若第一命令为密钥释放命令,则TSS在第二密钥插槽上释放第二密钥。
[0131]S212、TSS在密钥装载记录中删除第二信息。
[0132]其中,第二信息至少包括第二密钥插槽与第二密钥的映射关系。
[0133]需要说明的是,在密钥装载记录中实时记录着当前时刻TPM芯片内所有密钥插槽的状态。当TSS在第二密钥插槽上释放第二密钥后,TSS在密钥装载记录中删除第二信息,第二信息至少包括第二密钥插槽与第二密钥的映射关系。
[0134]需要补充的是,若第一命令既不为密钥装载命令,也不为密钥释放命令,则说明第一命令为长作业命令或者短作业命令,由于长作业命令或者短作业命令请求使用的一定是密钥插槽中已经装载了的密钥,因此只需在密钥装载记录中对长作业命令或者短作业命令请求使用的密钥的使用次数进行记录即可。
[0135]本发明实施例提供一种密钥处理方法,通过获取密钥装载命令,密钥装载命令指示在可信平台模块TPM芯片装载第一密钥;若TPM芯片内的所有密钥插槽均处于非空闲状态,则释放TPM芯片内所有密钥插槽中的第一密钥插槽;根据密钥装载命令,在第一密钥插槽上装载第一密钥。基于上述实施例的描述,由于在获取指示在可信平台模块TPM芯片装载第一密钥的密钥装载命令,且TPM芯片内的所有密钥插槽均处于非空闲状态时,密钥处理装置能够释放所述TPM芯片内所有密钥插槽中的第一密钥插槽,并根据密钥装载命令,在所述第一密钥插槽上装载所述第一密钥。因此,能够避免在密钥装载时返回空间已满的错误码,保证密钥装载的顺利进行,合理地使用TPM芯片内存空间资源。
[0136]本发明实施例提供一种密钥处理装置,如图8所示,密钥处理装置用于执行以上方法中的密钥处理装置所执行的步骤。密钥处理装置可以包括相应步骤所对应的模块。示例性的,密钥处理装置可以包括获取模块10、确认模块11、释放模块12和装载模块13。
[0137]获取模块10,用于获取密钥装载命令,密钥装载命令指示在可信平台模块TPM芯片装载第一密钥。
[0138]确认模块11,用于在获取模块10获取密钥装载命令后,确认TPM芯片内的所有密钥插槽均处于非空闲状态。
[0139]释放模块12,用于在确认模块11确认TPM芯片内的所有密钥插槽均处于非空闲状态后,则释放TPM芯片内满足预设条件的第一密钥插槽。
[0140]装载模块13,用于在释放模块12释放TPM芯片内所有密钥插槽中的第一密钥插槽后,根据所述密钥装载命令,在第一密钥插槽上装载第一密钥。
[0141]可选的,确认模块11,还用于在释放模块12释放所述第一密钥插槽前,确认TPM芯片内的所有密钥插槽与密钥的映射关系。
[0142]可选的,释放模块12,具体用于获取第一密钥插槽的标识,其中,占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中使用次数最少的密钥,或者,占用第一密钥插槽的密钥为占用所有密钥插槽的密钥中最早装载的密钥;以及根据第一密钥插槽的标识,指示TPM芯片释放第一密钥插槽。
[0143]可选的,如图9所示,密钥处理装置还包括保存模块14。
[0144]保存模块14,用于在释放模块12释放第一密钥插槽前,保存占用第一密钥插槽的密钥的现场记录。
[0145]可选的,装载模块13,具体用于在装载模块13在第一插槽上装载所述第一密钥时,确认存储器中存储有第一密钥的现场记录,获取并恢复第一密钥的现场记录。
[0146]可选的,如图10所示,密钥处理装置还包括记录模块15。
[0147]记录模块15,用于在装载模块13在第一密钥插槽上装载第一密钥时,记录第一密钥插槽与第一密钥的映射关系,以便根据映射关系从第一密钥插槽获取到第一密钥。
[0148]可选的,获取模块10,还用于获取密钥释放命令,密钥释放命令用于触发密钥处理装置释放占用TPM芯片内的第二密钥插槽的第二密钥。
[0149]释放模块12,还用于在获取模块10获取密钥释放命令后,在第二密钥插槽上释放第二密钥。
[0150]记录模块15,还用于在释放模块12在第二密钥插槽上释放第二密钥后,在密钥装载记录中删除第二信息,第二信息至少包括第二密钥插槽与第二密钥的映射关系。
[0151]可选的,确认模块11,还用于在获取模块10获取密钥装载命令前或者获取密钥释放命令前,确认TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限。
[0152]获取模块10,还用于在确认模块11确认TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限后,从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中的任意一个命令,第一命令包括密钥装载命令或者密钥释放命令。
[0153]可选的,确认模块11,还用于在获取模块10获取密钥装载命令前或者获取密钥释放命令前,确认TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限。
[0154]获取模块10,还用于在确认模块11确认TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限后,从接收到的至少一个命令中获取第一命令,第一命令为至少一个命令中优先级最高的命令,第一命令包括密钥装载命令或者密钥释放命令。
[0155]可以理解的是,本实施例的密钥处理装置可对应于上述如图3-图7任意之一的实施例的密钥处理方法中的密钥处理装置,并且本实施例的密钥处理装置中的各个模块的划分和/或功能等均是为了实现如图3-图7任意之一所示的方法流程,为了简洁,在此不再赘述。
[0156]示例性的,TSS部署在密钥处理装置中,如图11所示,基于TSS1.2版本的芯片的系统架构具体可以包括:精简AP1、TDDL、TCS和TSP四层。其中,TSP层可以包括父密钥装载释放模块和父密钥存储模块,父密钥装载释放模块和父密钥存储模块对应于上述密钥处理装置中的装载模块13;TCS层可以包括多级队列调度模块、密钥装载释放模块、现场记录存储模块、密钥装载记录模块,现场记录存储模块内存储着现场记录,密钥装载记录模块内存储着密钥装载记录,多级队列调度模块对应于上述密钥处理装置中的获取模块10,密钥装载释放模块对应于上述密钥处理装置中的装载模块13,现场记录存储模块对应于上述密钥处理装置中的保存模块14,密钥装载记录模块对应于上述密钥处理装置中的记录模块15。
[0157]又示例性的,如图12所示,基于TSS2.0版本的芯片的系统架构具体可以包括:精简AP1、特征AP1、增强系统AP1、系统AP1、TCT1、TAB和资源管理器。其中,特征API可以包括父密钥装载释放模块和父密钥存储模块,父密钥装载释放模块和父密钥存储模块对应于上述密钥处理装置中的装载模块13;资源管理器可以包括多级队列调度模块、密钥装载释放模块、现场记录存储模块、密钥装载记录模块,现场记录存储模块内存储着现场记录,密钥装载记录模块内存储着密钥装载记录,多级队列调度模块对应于上述密钥处理装置中的获取模块10,密钥装载释放模块对应于上述密钥处理装置中的装载模块13,现场记录存储模块对应于上述密钥处理装置中的保存模块14,密钥装载记录模块对应于上述密钥处理装置中的记录模块15。
[0158]本发明实施例提供一种密钥处理装置,包括获取模块、确认模块、释放模块和装载模块;获取模块,用于获取密钥装载命令,密钥装载命令指示在可信平台模块TPM芯片装载第一密钥;确认模块,用于在获取模块获取密钥装载命令后,确认TPM芯片内的所有密钥插槽均处于非空闲状态;释放模块,用于若TPM芯片内的所有密钥插槽均处于非空闲状态,则释放TPM芯片内所有密钥插槽中的第一密钥插槽;装载模块,用于在释放模块释放TPM芯片内所有密钥插槽中的第一密钥插槽后,根据密钥装载命令,在第一密钥插槽上装载第一密钥。基于上述实施例的描述,由于在获取指示在可信平台模块TPM芯片装载第一密钥的密钥装载命令,且TPM芯片内的所有密钥插槽均处于非空闲状态时,密钥处理装置能够释放所述TPM芯片内所有密钥插槽中的第一密钥插槽,并根据密钥装载命令,在所述第一密钥插槽上装载所述第一密钥。因此,能够避免在密钥装载时返回空间已满的错误码,保证密钥装载的顺利进行,合理地使用TPM芯片内存空间资源。
[0159]本发明实施例还提供一种终端设备,如图13所示,该终端设备包括:存储器20、处理器21、通信接口 22和系统总线23。
[0160]存储器20、处理器21和通信接口 22通过系统总线23连接,存储器20用于存储一些计算机指令,处理器21用于执行计算机指令,以使终端设备执行如图3-图7任意之一的密钥处理方法。具体的密钥处理方法可参见上述如图3-图7任意之一所示的实施例中的相关描述,此处不再赘述。
[0161]具体的,处理器21可以是如图8-图10任意之一所示的实施例中描述的密钥处理装置,也可以是包括如图8-图10任意之一所示的实施例中描述的密钥处理装置的其他能够实现处理器功能的硬件结构。
[0162]处理器21可以为中央处理器(central processing unit’CF^J)。处理器21还可以为其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(applicat1n specific integrated circui t,ASIC)、现场可编程门阵列(fie Id-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0163]处理器21可以为专用处理器,该专用处理器可以包括基带处理芯片、射频处理芯片等中的至少一个。进一步地,该专用处理器还可以包括具有终端设备其他专用处理功能的芯片。
[0164]存储器20可以包括易失性存储器(volatile memory ),例如随机存取存储器(random-access memory ,RAM);存储器20也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器20还可以包括上述种类的存储器的组合。
[0165]系统总线23可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图13中将各种总线都示意为系统总线23。
[0166]通信接口22可以包括接收器和发送器。并且在终端设备的具体实现中,接收器和发送器具体可以是终端设备上的收发器。该收发器可以为无线收发器。
[0167]在具体实现过程中,上述如图3-图7任意之一所示的方法流程中的各步骤均可以通过硬件执行软件形式的计算机执行指令实现。为避免重复,此处不再赘述。
[0168]本发明实施例提供一种终端设备。基于上述实施例的描述,由于在获取指示在可信平台模块TPM芯片装载第一密钥的密钥装载命令,且TPM芯片内的所有密钥插槽均处于非空闲状态时,密钥处理装置能够释放所述TPM芯片内所有密钥插槽中的第一密钥插槽,并根据密钥装载命令,在所述第一密钥插槽上装载所述第一密钥。因此,能够避免在密钥装载时返回空间已满的错误码,保证密钥装载的顺利进行,合理地使用TPM芯片内存空间资源。
[0169]本发明实施例还提供一种软件产品,该软件产品可以包括实现密钥处理方法的计算机指令。
[0170]计算机指令可以存储在可读存储介质上;处理器可以从该可读存储介质上读取到计算机指令并执行,使得处理器实现密钥处理方法。
[0171]所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0172]在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0173]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0174]集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0175]以上,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【主权项】
1.一种密钥处理方法,其特征在于,包括: 获取密钥装载命令,所述密钥装载命令指示在可信平台模块TPM芯片装载第一密钥;若所述TPM芯片内的所有密钥插槽均处于非空闲状态,则释放所述TPM芯片内所有密钥插槽中的第一密钥插槽; 根据所述密钥装载命令,在所述第一密钥插槽上装载所述第一密钥。2.根据权利要求1所述的密钥处理方法,其特征在于,所述方法还包括: 在所述释放所述第一密钥插槽前,确认所述TPM芯片内的所有密钥插槽与密钥的映射关系。3.根据权利要求1或2所述的密钥处理方法,其特征在于,所述释放所述TPM芯片内所有密钥插槽中的第一密钥插槽,具体包括: 获取所述第一密钥插槽的标识,其中,占用所述第一密钥插槽的密钥为占用所有密钥插槽的密钥中使用次数最少的密钥,或者,占用所述第一密钥插槽的密钥为占用所有密钥插槽的密钥中最早装载的密钥; 根据所述第一密钥插槽的标识,指示所述TPM芯片释放所述第一密钥插槽。4.根据权利要求1至3任一项所述的密钥处理方法,其特征在于,所述方法还包括: 在所述释放所述第一密钥插槽前,保存占用所述第一密钥插槽的密钥的现场记录。5.根据权利要求1至4任一项所述的密钥处理方法,其特征在于,所述方法还包括: 在所述第一插槽上装载所述第一密钥时,确认存储器中存储有第一密钥的现场记录,获取并恢复所述第一密钥的现场记录。6.根据权利要求1至5任一项所述密钥处理方法,其特征在于,所述方法还包括: 在所述第一密钥插槽上装载所述第一密钥时,记录所述第一密钥插槽与所述第一密钥的映射关系,以便根据所述映射关系从所述第一密钥插槽获取到所述第一密钥。7.根据权利要求1至6任一项所述的密钥处理方法,其特征在于,在所述获取密钥装载命令前,所述方法还包括: 确认所述TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限; 从接收到的至少一个命令中获取第一命令,所述第一命令为所述至少一个命令中的任意一个命令,所述第一命令包括密钥装载命令。8.根据权利要求1至7任一项所述的密钥处理方法,其特征在于,在所述获取密钥装载命令前,所述方法还包括: 确认所述TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限; 从接收到的至少一个命令中获取第一命令,所述第一命令为所述至少一个命令中优先级最高的命令,所述第一命令包括密钥装载命令。9.一种密钥处理装置,其特征在于,所述密钥处理装置包括获取模块、确认模块、释放模块和装载模块; 所述获取模块,用于获取密钥装载命令,所述密钥装载命令指示在可信平台模块TPM芯片装载第一密钥; 所述确认模块,用于在所述获取模块获取密钥装载命令后,确认所述TPM芯片内的所有密钥插槽均处于非空闲状态; 所述释放模块,用于若所述TPM芯片内的所有密钥插槽均处于非空闲状态,则释放所述TPM芯片内所有密钥插槽中的第一密钥插槽; 所述装载模块,用于在所述释放模块释放所述TPM芯片内所有密钥插槽中的第一密钥插槽后,根据所述密钥装载命令,在所述第一密钥插槽上装载所述第一密钥。10.根据权利要求9所述的密钥处理装置,其特征在于, 所述确认模块,还用于在所述释放模块释放所述第一密钥插槽前,确认所述TPM芯片内的所有密钥插槽与密钥的映射关系。11.根据权利要求9或10所述的密钥处理装置,其特征在于, 所述释放模块,具体用于获取所述第一密钥插槽的标识,其中,占用所述第一密钥插槽的密钥为占用所有密钥插槽的密钥中使用次数最少的密钥,或者,占用所述第一密钥插槽的密钥为占用所有密钥插槽的密钥中最早装载的密钥;以及根据所述第一密钥插槽的标识,指示所述TPM芯片释放所述第一密钥插槽。12.根据权利要求9至11任一项所述的密钥处理装置,其特征在于,所述密钥处理装置还包括保存t旲块; 所述保存模块,用于在所述释放模块释放所述第一密钥插槽前,保存占用所述第一密钥插槽的密钥的现场记录。13.根据权利要求9至12任一项所述的密钥处理装置,其特征在于, 所述装载模块,具体用于在所述装载模块在第一插槽上装载所述第一密钥时,确认存储器中存储有第一密钥的现场记录,获取并恢复所述第一密钥的现场记录。14.根据权利要求9至13任一项所述的密钥处理装置,其特征在于,所述密钥处理装置还包括记录模块; 所述记录模块,用于在所述装载模块在所述第一密钥插槽上装载所述第一密钥时,记录所述第一密钥插槽与所述第一密钥的映射关系,以便根据所述映射关系从所述第一密钥插槽获取到所述第一密钥。15.根据权利要求9至14任一项所述的密钥处理装置,其特征在于, 所述确认模块,还用于在所述获取模块获取密钥装载命令前,确认所述TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限; 所述获取模块,还用于在所述确认模块确认所述TPM芯片内处于空闲状态的密钥插槽的个数大于或等于预设门限后,从接收到的至少一个命令中获取第一命令,所述第一命令为所述至少一个命令中的任意一个命令,所述第一命令包括密钥装载命令。16.根据权利要求9至15任一项所述的密钥处理装置,其特征在于, 所述确认模块,还用于在所述获取模块获取密钥装载命令前,确认所述TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限; 所述获取模块,还用于在所述确认模块确认所述TPM芯片内处于空闲状态的密钥插槽的个数小于预设门限后,从接收到的至少一个命令中获取第一命令,所述第一命令为所述至少一个命令中优先级最高的命令,所述第一命令包括密钥装载命令。17.—种终端设备,其特征在于,所述终端设备包括存储器、处理器、通信接口和系统总线; 所述存储器、所述处理器和所述通信接口通过所述系统总线连接,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器存储的计算机指令,以使所述终端设备执行权利要求1-8任一项所述的密钥处理方法。
【文档编号】H04L9/08GK105871539SQ201610156470
【公开日】2016年8月17日
【申请日】2016年3月18日
【发明人】施迅, 余发江, 赵波
【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1