可信计算平台用户根密钥和用户密钥生成方法和装置的制作方法

文档序号:7892847阅读:176来源:国知局
专利名称:可信计算平台用户根密钥和用户密钥生成方法和装置的制作方法
技术领域
本发明涉及信息安全领域,尤其涉及可信计算平台用户根密钥和用户密钥生成方法和装置。
背景技术
可信计算组织(Trusted Computing Group,TCG)定义的可信计算技术规范中主要有对象无关授权协议(Object-Independent Authorization Protocol, 0IAP)和对象相关授权协议(Object-Specific Authorization Protocol, OSAP)等认证 / 授权协议。可信计算规范中的授权协议都能够保证会话的完整性,基于授权口令来保护一些关键数据,例如新建密钥的授权数据,封装数据的保护数据等的机密性。授权协议的安全性依赖于授权数据的机密性,如果攻击者知道或者猜测到授权数据,那么授权协议将没有安全性或安全性受到极大威胁。一个可信平台模块(Trusted Platform Module, TPM)只有一个存储根密钥(Storage Root Key, SRK)。为了让多个用户都可以使用SRK,SRK的授权数据经常被假定为一个众所周知的值,如此,任何知道授权数据的用户都可以在SRK下建立一个密钥分支。如前所述,授权协议的安全性依赖于授权数据的机密性。若攻击者知道SRK的授权数据,则可以伪造SRK,从而以伪造的SPL产生子密钥。这样,用户所产生的密钥就在攻击者的控制下,攻击者可以假冒TPM的存储功能。

发明内容
本发明实施例提供可信计算平台用户根密钥和用户密钥生成方法和装置,以增强可信计算组织授权协议的安全性。本发明实施例提供一种可信计算平台用户根密钥生成方法,所述方法包括可信平台模块所有者接收可信平台模块用户提出的用户根密钥生成请求;所述可信平台模块通过与所述可信平台模块所有者交互,生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据;所述可信平台模块所有者将所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据发送至所述可信平台模块用户。可选地,所述可信平台模块通过与所述可信平台模块所有者交互,生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据包括所述可信平台模块所有者向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令,所述命令包括预置用户根密钥的口令;所述可信平台模块验证所述可信平台模块所有者的合法性;若验证所述可信平台模块所有者合法,则根据所述预置用户根密钥的口令生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据并返回至所述可信平台模块所有者。可选地,所述命令还包括存储根密钥授权数据和所述可信平台模块所有者授权数据;所述可信平台模块验证所述可信平台模块所有者的合法性包括所述可信平台模块验证所述存储根密钥授权数据和所述可信平台模块所有者授权数据的合法性。可选地,所述可信平台模块所有者向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令包括所述可信平台模块所有者调用可信计算组织软件栈命令接口向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令。本发明实施例提供一种可信计算平台用户密钥生成方法,所述方法包括将可信平台模块用户的用户根密钥私有化;接收用户密钥创建请求,所述用户密钥创建请求包括父密钥的密钥类型;根据所述用户密钥创建请求和所述私有化的用户根密钥,创建所述可信平台模块用户的用户密钥。 可选地,所述将可信平台模块用户的用户根密钥私有化包括可信平台模块接收所述可信平台模块用户发送的更改所述用户根密钥的口令的请求;所述可信平台模块验证所述可信平台模块用户提供的父授权数据和所述用户根密钥的旧有授权数据;所述可信平台模块设置所述可信平台模块用户的用户根密钥的私有化标志。可选地,所述根据所述用户密钥创建请求和私有化的用户根密钥,创建所述可信平台模块用户的用户密钥包括根据父密钥的密钥类型,判断用户密钥创建请求是否是可信平台模块用户发起;若所述用户密钥创建请求是可信平台模块用户发起,则检测所述可信平台模块用户的用户根密钥的私有化标志;若检测通过,则验证所述私有化的用户根密钥的授权数据;若验证通过,则创建所述可信平台模块用户的用户密钥。本发明实施例提供一种可信计算平台用户根密钥生成装置,所述装置包括请求模块和可信平台模块,所述请求模块包括接收单元和第一发送单元;所述接收单元,用于可信平台模块所有者接收可信平台模块用户提出的用户根密钥生成请求;所述可信平台模块,用于通过与所述请求模块交互,生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据;所述第一发送单元,用于所述可信平台模块所有者将所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据发送至所述可信平台模块用户。可选地,所述可信平台模块包括验证单元和生成单元,所述请求模块还包括第二发送单元;所述第二发送单元,用于可信平台模块所有者向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令,所述命令包括预置用户根密钥的口令;所述验证单元,用于验证所述可信平台模块所有者的合法性;所述生成单元,用于若验证所述可信平台模块所有者合法,则根据所述预置用户根密钥的口令生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据并返回至所述可信平台模块所有者。可选地,所述命令还包括存储根密钥授权数据和所述可信平台模块所有者授权数据;所述验证单元具体用于验证所述存储根密钥授权数据和所述可信平台模块所有者授权数据的合法性。可选地,所述第二发送单元具体用于所述可信平台模块所有者调用可信计算组织软件栈命令接口向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令。本发明实施例提供一种可信计算平台用户密钥生成装置,所述装置包括可信平台模块,用于将可信平台模块用户的用户根密钥私有化;接收模块,用于接收用户密钥创建请求,所述用户密钥创建请求包括父密钥的密钥类型;用户密钥生成模块,用于根据所述用户密钥创建请求和所述私有化的用户根密钥,创建所述可信平台模块用户的用户密钥。
可选地,所述可信平台模块包括请求接收单元,用于接收所述可信平台模块用户发送的更改所述用户根密钥的口令的请求;验证单元,用于验证所述可信平台模块用户提供的父授权数据和所述用户根密钥的旧有授权数据;设置单元,用于设置所述可信平台模块用户的用户根密钥的私有化标志。可选地,所述用户密钥生成模块包括判断单元,用于根据父密钥的密钥类型,判断用户密钥创建请求是否是可信平台模块用户发起;检测单元,用于若所述判断单元判断所述用户密钥创建请求是可信平台模块用户发起,则检测所述可信平台模块用户的用户根密钥的私有化标志;验证单元,用于若检测通过,则验证所述私有化的用户根密钥的授权数据;创建单元,用于若验证通过,则创建所述可信平台模块用户的用户密钥。从上述本发明实施例可知,由于可信平台模块用户的用户根密钥是可信平台模块 用户、可信平台模块所有者和可信平台模块通过交互生成。因此,这种方法保证了用户根密钥的特殊性、私有性与独立性,用户(包括攻击者)即使知道存储根密钥的授权数据,若无可信平台模块所有者的授权,也无法创建用户根密钥,从而避免可信平台模块的资源被非法占用。


为了更清楚地说明本发明实施例的技术方案,下面将对现有技术或实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,还可以如这些附图获得其他的附图。图I是本发明实施例提供的可信计算平台用户根密钥生成方法流程示意图;图2是本发明实施例提供用户根密钥生成过程中可信平台模块用户、可信平台模块所有者、可信计算组织软件栈和可信平台模块之间的交互示意图;图3a是本发明实施例提供的可信计算平台用户密钥生成方法流程示意图;图3b是本发明另一实施例提供的可信计算平台用户密钥生成方法流程示意图;图4是本发明实施例提供的可信平台模块用户调用扩展后的Tspi_Key_CreateKey命令创建用户根密钥的子密钥的方法流程示意图;图5是本发明实施例提供的可信计算平台用户根密钥生成装置结构示意图;图6是本发明另一实施例提供的可信计算平台用户根密钥生成装置结构示意图;图7是本发明实施例提供的可信计算平台用户密钥生成装置结构示意图;图8是本发明另一实施例提供的可信计算平台用户密钥生成装置结构示意图;图9是本发明另一实施例提供的可信计算平台用户密钥生成装置结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员所获得的所有其他实施例,都属于本发明保护的范围。请参阅附图1,是本发明实施例提供的可信计算平台用户根密钥生成方法流程示意图,主要包括步骤S101、步骤S102和步骤S103 S101,可信平台模块所有者接收用户提出的用户根密钥生成请求。
可信平台模块(Trusted Platform Module, TPM)只有一个存储根密钥(StorageRoot Key, SRK), SRK是密钥树的根结点,它由TPM所有者生成,密钥树中的所有叶子结点密钥均由SRK派生并由SRK保护。在本发明实施例中,在现有的可信平台模块密钥树结构中引入的用户根密钥(User Root Key, URK)是一个可信平台模块用户的存储根密钥,其作为SRK的子密钥来代替SRK进行用户密钥的生成与管理。URK是一种特殊的不可迁移密钥,用户不能自行创建,只能由用户申请、TPM的所有者(Owner)创建,即,可信平台模块用户向可信平台模块所有者发送用户根密钥生成请求,可信平台模块所有者接收用户提出的用户根密钥生成请求。S102,可信平台模块通过与所述可信平台模块所有者交互,生成所述用户的用户根密钥和所述用户根密钥的授权数据。依据现有的可信计算组织(Trusted Computing Group, TCG)规范,存储根密钥的授权数据在可信平台模块用户间共享,只要拥有存储根密钥的授权数据,任何用户(包括
攻击者)便可以在存储根密钥下任意创建自己所需的密钥。为了解决由此带来的安全隐患,在本发明实施例中,用户根密钥的生成由可信平台模块用户(User)、可信平台模块所有者(Owner)和可信平台模块用户三方共同完成。具体地,包括可信平台模块所有者向所述可信平台模块发送要求生成所述用户的用户根密钥的命令,所述命令包括预置用户根密钥的口令;所述可信平台模块验证所述可信平台模块所有者的合法性;若验证所述可信平台模块所有者合法,则根据所述预置用户根密钥的口令生成所述用户的用户根密钥和所述用户根密钥的授权数据并返回至所述可信平台模块所有者。其中,要求生成所述用户的用户根密钥的命令还可以包括存储根密钥授权数据和所述可信平台模块所有者授权数据,所述可信平台模块验证所述可信平台模块所有者的合法性可以是验证所述存储根密钥授权数据和所述可信平台模块所有者授权数据的合法性。作为本发明一个实施例,可信平台模块所有者向所述可信平台模块发送要求生成所述用户的用户根密钥的命令可以是可信平台模块所有者调用可信计算组织软件栈命令接口,例如,Tspi_Key_CreateKey,向所述可信平台模块发送要求生成所述用户的用户根密钥的命令。由上述可信平台模块通过与所述可信平台模块所有者交互生成所述用户的用户根密钥和所述用户根密钥的授权数据可知,用户根密钥的生成过程保证了用户根密钥的特殊性、私有性与独立性,用户(包括攻击者)即使知道SRK的授权数据,若无可信平台模块所有者的授权,也无法创建用户根密钥。S103,可信平台模块所有者将所述用户的用户根密钥和所述用户根密钥的授权数据发送至所述用户。需要说明的是,可信平台模块用户(User)与所有者(Owner)之间的通信,即,可信平台模块用户向可信平台模块所有者发送用户根密钥生成请求以及可信平台模块所有者向可信平台模块用户返回所述用户的用户根密钥和所述用户根密钥的授权数据等等均以安全的通信方式进行,例如,发送安全邮件或者双方口头交换等,本发明对此不做限定。从上述本发明实施例提供的可信计算平台用户根密钥生成方法可知,由于可信平台模块用户的用户根密钥是可信平台模块用户、可信平台模块所有者和可信平台模块通过交互生成。因此,这种方法保证了用户根密钥的特殊性、私有性与独立性,用户(包括攻击者)即使知道存储根密钥的授权数据,若无可信平台模块所有者的授权,也无法创建用户根密钥,从而避免可信平台模块的资源被非法占用。以下以可信平台模块用户、可信平台模块所有者、TCG软件栈和可信平台模块之间的交互为例,说明用户的用户根密钥生成过程,如附图2所示,包括步骤S201至S208 S201,可信平台模块用户(User)向可信平台模块所有者(Owner)发送生成用户根密钥的请求。S202,可信平台模块所有者向可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令。认可可信平台模块用户的请求后,可信平台模块所有者设置用户跟密钥的预置 口令,调用可信计算组织(Trusted Computing Group, TCG)的软件栈命令接口 Tspi_Key_CreateKey O向可信平台模块发送创建用户根密钥的命令。S203,可信平台模块所有者向可信平台模块发送存储根密钥的授权数据和所有者的授权数据。具体地,可信平台模块所有者通过对象相关授权协议(Object-SpecificAuthorization Protocol,0SAP)向可信平台模块证明拥有所有者的授权数据,通过对象无关授权协议(Object-Independent Authorization Protocol, 0IAP)向可信平台模块证明拥有存储根密钥的授权数据。S204,可信平台模块验证可信平台模块所有者的合法性。S205,可信平台模块执行TPM_CreateURK命令,生成用户根密钥。S206,可信平台模块将用户根密钥的密钥数据块(key block)返回给TCG软件栈。S207, TCG软件栈通知可信平台模块所有者,用户根密钥创建成功。S208,创建用户根密钥成功后,可信平台模块所有者向可信平台模块用户发送用户根密钥的预置口令。可信平台模块所有者向可信平台模块用户发送用户根密钥的预置口令是以安全的方式,例如,发送安全邮件或者双方口头交换等方式进行。步骤S205中的可信平台模块执行的TPM_CreateURK命令是本发明实施例针对现有TCG规范新增的用以创建用户根密钥的TPM命令,TPM_CreateURK命令包括输入参数和输出参数,其定义分别如下表I和表2所示
权利要求
1.一种可信计算平台用户根密钥生成方法,其特征在于,所述方法包括 可信平台模块所有者接收可信平台模块用户提出的用户根密钥生成请求; 所述可信平台模块通过与所述可信平台模块所有者交互,生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据; 所述可信平台模块所有者将所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据发送至所述可信平台模块用户。
2.如权利要求I所述的方法,其特征在于,所述可信平台模块通过与所述可信平台模块所有者交互,生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据包括 所述可信平台模块所有者向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令,所述命令包括预置用户根密钥的口令; 所述可信平台模块验证所述可信平台模块所有者的合法性; 若验证所述可信平台模块所有者合法,则根据所述预置用户根密钥的口令生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据并返回至所述可信平台模块所有者。
3.如权利要求2所述的方法,其特征在于,所述命令还包括存储根密钥授权数据和所述可信平台模块所有者授权数据; 所述可信平台模块验证所述可信平台模块所有者的合法性包括 所述可信平台模块验证所述存储根密钥授权数据和所述可信平台模块所有者授权数据的合法性。
4.如权利要求2所述的方法,其特征在于,所述可信平台模块所有者向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令包括 所述可信平台模块所有者调用可信计算组织软件栈命令接口向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令。
5.一种可信计算平台用户密钥生成方法,其特征在于,所述方法包括 将可信平台模块用户的用户根密钥私有化; 接收用户密钥创建请求,所述用户密钥创建请求包括父密钥的密钥类型; 根据所述用户密钥创建请求和所述私有化的用户根密钥,创建所述可信平台模块用户的用户密钥。
6.如权利要求5所述的方法,其特征在于,所述将可信平台模块用户的用户根密钥私有化包括 可信平台模块接收所述可信平台模块用户发送的更改所述用户根密钥的口令的请求; 所述可信平台模块验证所述可信平台模块用户提供的父授权数据和所述用户根密钥的旧有授权数据; 所述可信平台模块设置所述可信平台模块用户的用户根密钥的私有化标志。
7.如权利要求5所述的方法,其特征在于,所述根据所述用户密钥创建请求和私有化的用户根密钥,创建所述可信平台模块用户的用户密钥包括 根据父密钥的密钥类型,判断用户密钥创建请求是否是可信平台模块用户发起;若所述用户密钥创建请求是可信平台模块用户发起,则检测所述可信平台模块用户的用户根密钥的私有化标志; 若检测通过,则验证所述私有化的用户根密钥的授权数据; 若验证通过,则创建所述可信平台模块用户的用户密钥。
8.一种可信计算平台用户根密钥生成装置,其特征在于,所述装置包括请求模块和可信平台模块,所述请求模块包括接收单元和第一发送单元; 所述接收单元,用于可信平台模块所有者接收可信平台模块用户提出的用户根密钥生成请求; 所述可信平台模块,用于通过与所述请求模块交互,生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据; 所述第一发送单元,用于所述可信平台模块所有者将所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据发送至所述可信平台模块用户。
9.如权利要求8所述的装置,其特征在于,所述可信平台模块包括验证单元和生成单元,所述请求模块还包括第二发送单元; 所述第二发送单元,用于可信平台模块所有者向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令,所述命令包括预置用户根密钥的口令; 所述验证单元,用于验证所述可信平台模块所有者的合法性; 所述生成单元,用于若验证所述可信平台模块所有者合法,则根据所述预置用户根密钥的口令生成所述可信平台模块用户的用户根密钥和所述用户根密钥的授权数据并返回至所述可信平台模块所有者。
10.如权利要求9所述的装置,其特征在于,所述命令还包括存储根密钥授权数据和所述可信平台模块所有者授权数据; 所述验证单元具体用于验证所述存储根密钥授权数据和所述可信平台模块所有者授权数据的合法性。
11.如权利要求9所述的装置,其特征在于,所述第二发送单元具体用于所述可信平台模块所有者调用可信计算组织软件栈命令接口向所述可信平台模块发送要求生成所述可信平台模块用户的用户根密钥的命令。
12.—种可信计算平台用户密钥生成装置,其特征在于,所述装置包括 可信平台模块,用于将可信平台模块用户的用户根密钥私有化; 接收模块,用于接收用户密钥创建请求,所述用户密钥创建请求包括父密钥的密钥类型; 用户密钥生成模块,用于根据所述用户密钥创建请求和所述私有化的用户根密钥,创建所述可信平台模块用户的用户密钥。
13.如权利要求12所述的装置,其特征在于,所述可信平台模块包括 请求接收单元,用于接收所述可信平台模块用户发送的更改所述用户根密钥的口令的请求; 验证单元,用于验证所述可信平台模块用户提供的父授权数据和所述用户根密钥的旧有授权数据; 设置单元,用于设置所述可信平台模块用户的用户根密钥的私有化标志。
14.如权利要求12所述的装置,其特征在于,所述用户密钥生成模块包括 判断单元,用于根据父密钥的密钥类型,判断用户密钥创建请求是否是可信平台模块用户发起; 检测单元,用于若所述判断单元判断所述用户密钥创建请求是可信平台模块用户发起,则检测所述可信平台模块用户的用户根密钥的私有化标志; 验证单元,用于若检测通过,则验证所述私有化的用户根密钥的授权数据; 创建单元,用于若验证通过,则创建所述可信平台模块用户的用户密钥。
全文摘要
本发明实施例提供可信计算平台用户根密钥和用户密钥生成方法和装置,以增强可信计算组织授权协议的安全性。所述方法包括可信平台模块所有者接收可信平台模块用户提出的用户根密钥生成请求;可信平台模块通过与可信平台模块所有者交互,生成可信平台模块用户的用户根密钥和用户根密钥的授权数据;可信平台模块所有者将可信平台模块用户的用户根密钥和用户根密钥的授权数据发送至可信平台模块用户。本发明实施例提供的方法保证了用户根密钥的特殊性、私有性与独立性,用户(包括攻击者)即使知道存储根密钥的授权数据,若无可信平台模块所有者的授权,也无法创建用户根密钥,从而避免可信平台模块的资源被非法占用。
文档编号H04L9/08GK102647273SQ20121009273
公开日2012年8月22日 申请日期2012年3月31日 优先权日2012年3月31日
发明者宫俊, 李新国, 李茹, 赵宝龙, 黄诗勇 申请人:深圳数字电视国家工程实验室股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1