基于可信计算平台的权限委托方法

文档序号:82554阅读:200来源:国知局
专利名称:基于可信计算平台的权限委托方法
技术领域
本发明涉及权限委托,具体涉及一种基于可信计算平台的权限委托方法,能够提高委托的安全性和隐私性。
背景技术
当前,各种有授权管理的应用中,为了实现权限的委托,采用包括用户、角色和口令的普通体系,或PMI(Privilege ManagementInfrastructure,权限管理基础架构)。上述的普通体系的缺点是需要针对每个应用单独开发和安全性较弱。也就是,各类授权数据采用纯软件的方式进行保护。上述的PMI的缺点是需要搭建完整的PKI(PublicKey Infrastructure,公钥基础架构)和PMI体系架构,导致部署比较复杂,投入较大,对网络要求高。因此,PMI对于中小型应用特别是桌面应用来说,实现成本太高。

发明内容鉴于上述问题,完成了本发明。本发明的目的是提供一种基于可信计算平台且与业务分离的权限委托方法,以提高权限委托的安全性和隐私性。
在本发明的一个方面,提出了一种基于可信计算平台的、委托由密钥表示的权限的方法,所述可信计算平台包括可信硬件和处于该可信硬件上的软件协议栈,所述可信硬件存储有凭证数据、根密钥和具有至少一个计数器的计数器表,所述软件协议栈中存储有具有至少一个密钥的密钥表和具有至少一项委托的委托表,所述方法包括步骤将至少一项委托和相应的密钥、委托口令以及密钥的访问口令输入到可信硬件;可信硬件利用根密钥解密密钥,提取密钥访问口令,以验证输入的访问口令是否正确;在输入的访问口令正确的情况下,将委托和密钥相关联;用根密钥加密委托口令,并填入委托中,利用凭证数据计算完整性值并填入委托中,产生授权的委托;将授权的委托返回给软件协议栈,以填入委托信息表中。
根据本发明的一个实施例,在该方法中,所述将委托和密钥相关联的步骤包括可信硬件读取计数器表中与该密钥相对应的计数器的校验值,填入委托的对应字段,并计算当前密钥的杂凑值,填入委托的密钥摘要字段。
根据本发明的一个实施例,在该方法中,所述软件协议栈还存储有具有至少一组策略的策略组表,该方法还包括策略设定步骤可信硬件所有者为一委托策略创建一个策略组,包括设置有效的计数器标识符、标记以及描述,连同根密钥的访问口令一起传送给可信硬件;可信硬件检查根密钥的访问口令;在根密钥的访问口令正确的情况下,在计数器表中建立对应的计数器,根据策略设定计数器的状态;将该计数器的信息返回软件协议栈,以更新策略组表。
根据本发明的一个实施例,在该方法中,还包括步骤被委托方将授权的委托、密钥、相应的操作和委托口令输入到可信硬件内;可信硬件验证委托口令是否正确和相应的操作是否在委托范围之内;在验证成功的情况下,被委托方执行该操作。
根据本发明的一个实施例,在该方法中,通过用根密钥解密委托来验证委托口令是否正确。
根据本发明的一个实施例,在该方法中,可信硬件校验委托的委托摘要、密钥摘要。
根据本发明的一个实施例,在该方法中,可信硬件检查与该密钥相对应的计数器的状态和校验值。
根据本发明的一个实施例,在该方法中,所述完整性值是HMAC值。
根据本发明的一个实施例,在该方法中,所述根密钥是RSA密钥对。
根据本发明的一个实施例,在该方法中,所述密钥是RSA密钥对。
在本发明的另一方面,提出了一种基于可信计算平台的撤销授权委托的方法,所述可信计算平台包括可信硬件和处于该可信硬件上的软件协议栈,所述可信硬件存储有根密钥和具有至少一个计数器的计数器表,所述软件协议栈中存储有具有至少一个密钥的密钥表和具有至少一项委托的委托表,所述方法包括步骤从委托表中选择待撤销的委托,与相应的密钥和密钥的所有者口令输入到可信硬件;在可信硬件内通过用根密钥解密所述密钥来验证所有者口令;在验证成功的情况下,检查委托信息的完整性以及委托信息与密钥是否匹配;在检查结果是肯定的情况下,可信硬件修改计数器值;在软件协议栈删除所述委托表中的该委托。
在本发明的又一方面,提出了一种基于可信计算平台的撤销授权委托的方法,所述可信计算平台包括可信硬件和处于该可信硬件上的软件协议栈,所述可信计算平台包括可信硬件和处于该可信硬件上的软件协议栈,所述可信硬件存储有根密钥和具有至少一个计数器的计数器表,所述软件协议栈中存储有具有至少一个密钥的密钥表、具有至少一项委托的委托表和具有至少一组策略的策略组表,所述方法包括步骤可信硬件所有者从策略组表中选择要撤回的策略组,连同所有者口令一起传送给可信硬件;可信硬件验证用户输入的所有者访问口令是否正确;在验证成功的情况下,检查委托信息的完整性以及委托信息与密钥是否匹配;在检查结果是肯定的情况下,可信硬件修改计数器值;在软件协议栈删除所述委托表中的该委托。
利用本发明的方法,委托方可以定制对被委托方开放哪些授权操作;被委托方不会知道委托方访问该资源的授权信息;外部在缺少可信硬件或者资源的所有者授权情况下,不能修改委托信息,更不能执行委托的权限之外的任何操作。此外,本发明的配置与平台紧密集成,而且与具体业务剥离。
图1示出了根据本发明实施例的可信计算平台的总体结构;图2示出了在图1所示的可信计算平台中使用的数据结构的示意 图3示出了根据本发明实施例的权限委托过程;图4示出了根据本发明实施例的使用权限委托的过程;图5示出了根据本发明实施例的由委托方撤回权限委托的过程;图6示出了根据本发明实施例的由可信硬件所有者撤回权限委托的过程;图7示出了根据本发明实施例的设定委托策略的过程。
具体实施方式下面对照附图详细说明本发明的具体实施例
可信计算平台的构成
图1示出了根据本发明实施例的可信计算平台的总体构成。如图1所示,根据本发明实施例的可信计算平台包括软件平台100和可信硬件200。平台用户300通过软件平台100接受可信硬件200提供的服务。
在可信硬件200中,输入输出模块210负责与上层的软件平台100的数据交换和命令的调度。权限委托模块220可以提供“权限委托”、“委托撤销”、“委托鉴别”和“委托策略管理”等基本的权限委托服务。
此外,密钥生成模块240用于在可信硬件内部随机地生成根密钥(RootKey)以及普通的密钥(Key)。持久存储模块230在芯片内部持久存储凭证数据(ProofData)231、根密钥(RootKey)232以及计数器表(Counter Table)233。持久存储模块230所使用的存储介质比如是闪存。
可信硬件200中的其它模块240包括可信硬件需要的其它功能,但与权限委托关系不大的模块,这里不详细描述。
在持久存储模块230中存储有凭证数据(ProofData)231,它是在可信硬件200的制造阶段固化的隐秘数据。可信硬件200的制造方应确保该数据不被可信硬件以外的任何实体所知。每一个可信硬件都有与众不同的凭证数据。可以用该凭证数据对可信硬件200产生的数据进行HMAC(一种需要密钥的杂凑函数,支持完整性校验和身份鉴别)运算,以确保这些数据不被窜改和伪造。
此外,持久存储模块230中还存储有可信硬件200的根密钥(RootKey)232,它用来加密委托信息中的隐秘数据。此外,该根密钥232也用来加密可信硬件200产生的其它密钥。根据本发明的一个实施例,根密钥和密钥可能是2048位的RSA密钥对。根密钥只能保存在可信硬件200内部并在可信硬件内部使用。此外,在可信硬件200创建根密钥的同时,也生成了访问根密钥的访问口令,并且它作为根密钥的一部分保存,并在用户使用根密钥的时候用于验证用户输入的访问口令。
此外,持久存储模块230中还存储有计数器表(Counter Table)233。该计数器表233的大小受可信硬件200的存储空间限制。如图2中的(D)所示,每一个计数器除了有用于标识自身的ID(标识)字段外,还包括校验值(VerificationNumber,该值只能增加,不能减小)字段、Enabled字段(使能字段,0表示不能使用,则所有与该计数器相关的委托信息都暂时无效,并且只能由可信硬件所有者修改)、Locked字段(锁止字段,1表示锁止,则任何人不得修改计数器值。只有可信硬件所有者可以修改Locked值)。
在软件平台100中,输入输出模块110负责与上层的应用软件以及底层的可信硬件200的数据交换和命令的调度。
此外,权限委托模块120为上层应用提供“权限委托”、“委托撤销”、“委托鉴别”和“委托策略管理”等基本的权限委托服务。当然,这些功能最终是通过调用可信硬件200的相应功能来实现的。
持久存储模块130在持久化存储介质上存取密钥表(Key Table)131、委托表(Delegation Table)132以及组表(Group Table)133。持久存储模块130使用的存储介质比如是硬盘。
软件平台100中的其它模块140包括软件平台需要的其它功能,即与权限委托关系不大的模块,比如密钥的生成、删除、修改等。因此这里不详细描述其它模块140的功能。
在持久存储模块130中存储有登记了多个密钥的密钥表131,其中每个密钥在可信硬件200内部生成,并且由根密钥加密。如前所述。密钥可能是2048位的RSA密钥对。与根密钥类似,密钥在创建时也生成访问该密钥的访问口令,并作为该密钥的一部分被根密钥一并加密保存,如图2中的(A)所示。
此外,持久存储模块130中存储有登记了多个委托的委托表(Delegation Table)132。本发明中指的委托,都是对密钥的委托。即,密钥的所有者(知道密钥的访问口令的用户)把对密钥的使用权限,以委托的形式允许其它用户有限地使用密钥的功能。如图2中的(B)所示,委托包含了计数器标识符(CounterID,即对应的Counter的ID,也就是GroupID,因为GroupID总是与CounterID一致)、密钥标识符(KeyID,即所委托的Key的ID)、委托信息(DelegationInfo,即具体能使用的Key的操作列表)、校验值(VerificationNumber,其与Counter中的VerificationNumber对应)、密钥摘要(KeyDigest,即所对应密钥的一个杂凑结果)、加密的委托口令(Enc(DelSecret))、委托摘要(DelDigest,委托的HMAC结果)等字段。
此外,持久存储模块130中存储有组表(Group Table),即策略组信息数据表,其允许用户建立委托的策略组。如图2中的(C)所示,每个组对应可信硬件中的一个计数器,并可与多个委托相关联。每个委托必须受所在组策略的约束。标记(Label)表示用户可读的简短的策略组标识,描述(Description)则表明当前组策略的详细信息,摘要(Digest)是该组的数据的一个HMAC结果。
可信计算平台的操作
下面分别对照图3~图7详细描述根据本发明实施例的可信计算平台的操作过程。图3示出了根据本发明实施例的权限委托过程。图4示出了根据本发明实施例的使用权限委托的过程。图5示出了根据本发明实施例的由委托方撤回权限委托的过程。图6示出了根据本发明实施例的由可信硬件所有者撤回权限委托的过程。图7示出了根据本发明实施例的设定委托策略的过程。
A)委托方(即某个密钥的所有者)进行权限委托的过程步骤S110,委托方设定要对某密钥进行权限委托,编辑好该委托能使用的密钥的操作权限列表以及该委托所属的策略组(即对应了一个可信硬件内部的计数器)。然后,把编辑好的委托连同密钥、策略信息、委托口令以及密钥的访问口令一起传给可信硬件200。
步骤S120和S130,可信硬件200利用根密钥解密密钥的隐秘信息,提取其中的密钥访问口令,验证用户输入的访问口令是否正确,如果错误则直接退出。然后,检查对应的计数器的Enabled字段,如果是0,则直接退出。随后,检查对应的计数器的Locked字段。根据策略信息决定是否继续执行以及是否要修改Locked值。这里,策略信息是一个数值,0表示locked为1则退出;1表示无论locked为何值都加入。
步骤S140,在可信硬件200内对密钥和委托进行关联,即读取对应计数器的校验值(VerificationNumber),填入委托的对应字段。然后,计算当前密钥的杂凑值,填入KeyDigest(密钥摘要)字段。
步骤S150,用根密钥加密委托口令,存入加密的委托口令(Enc(DelSecret))字段。然后,对委托中的委托摘要(DelDigest)之前的所有数据利用凭证数据计算HMAC值,并把结果填入委托摘要字段。
步骤S160,将授权委托返回给上层的软件平台100,然后填入委托表中。
B)利用委托的权限访问资源的过程步骤S210,被委托方输入委托授权信息,连同密钥、希望执行的操作、操作参数以及权限委托一起传送给可信硬件200。
步骤S220和S230,可信硬件利用根密钥解密委托的加密委托口令,验证用户输入的委托口令是否正确。如果错误,则直接退出。
步骤S240,可信硬件200校验委托的委托摘要(DelDigest)值,发现委托不合法,则直接退出。可信硬件200校验委托的密钥摘要(KeyDigest)值,发现与传入的密钥不一致,则直接退出。可信硬件200检查对应的计数器,如果该计数器的Enabled字段的值为0,则直接退出。可信硬件检查对应计数器的校验值(VerificationNumber),如果与委托不一致,则直接退出。可信硬件校验希望执行的操作是否在委托的委托信息(DelegationInfo)指定的范围内。如果错误,则直接退出。
步骤S250,在希望的操作在委托的委托信息指定的范围内时,执行该操作。
C)委托方(即密钥的所有者)进行权限撤回的过程步骤S310,委托方从委托表中选择需要撤销的权限委托,连同对应的密钥以及密钥的访问口令一起传送给可信硬件。
步骤S320和S330,可信硬件利用根密钥解密密钥的隐秘信息,提取其中的密钥访问口令,验证用户输入的访问口令是否正确。错误则直接退出。
步骤S340,可信硬件检查委托摘要(DelDigest),判断该委托是否被窜改。不一致则退出。可信硬件检查密钥摘要(KeyDigest),判断是否与提交的密钥对应。不一致则退出。然后,检查对应计数器的Enabled和Locked字段。如果Enabled为0(不可用),则直接退出,不然,如果Locked为1,则退出。
步骤S350,可信硬件修改对应计数器的校验值(verificationNumber,该值只能增加,不能减小,以确保不会出现重复的值),返回给上层软件允许删除该权限委托的指令。
步骤S360,上层软件删除对应的委托信息。需要注意的是密钥的所有者不负责更新其它密钥的委托的计数器值。对于一个计数器关联了多个委托的情形,可信硬件所有者制定策略,锁止计数器,不允许单个委托的撤回。
此外,需要指出,可以允许可信硬件所有者执行权限撤回操作,但该操作必须是针对策略组执行。图5示出了在这种情况下撤回权限委托的过程。
C’)可信硬件所有者进行权限撤回的过程步骤S410,所有者选择要执行撤回的策略组,连同所有者口令一起传送给可信硬件。
步骤S420和S430,可信硬件验证用户输入的所有者访问口令是否正确。错误则直接退出。
步骤S440和S450,可信硬件检查策略组的摘要,判断该策略组是否被窜改。不一致则退出。
步骤S460,修改对应计数器的Locked字段为0;修改对应计数器的校验值(verificationNumber,该值只能增加,不能减小,以确保不会出现重复的值),并返回给上层软件允许删除该权限委托的指令。
步骤S470,上层软件从委托表中删除该策略组关联的所有委托。
D)可信硬件所有者设定委托策略组的过程(以新建一个委托策略组为例)步骤S510,可信硬件所有者设定一个委托策略,比如“2006年1月1日收回委托”,为该策略创建一个关联的策略组,包括设置有效的计数器标识符(CounterID)、标记(Label)以及描述(Description)等,连同根密钥的访问口令一起传送给可信硬件200。
步骤S520和S530,可信硬件首先鉴定所有者身份,即检查根密钥的访问口令。错误则直接退出。
步骤S540建立对应的计数器,根据策略设定Locked值,然后把数据存入计数器表中。
步骤S550,把结果返回软件平台,软件平台更新策略组表。
此外,修改以及删除一条策略组信息的过程与上述的过程类似,因此不再详细说明。
需要指出的是,策略可以是由上层应用自由指定的。比如,一个策略组的描述可以是“在周末晚上8点撤回改组所有委托”,而另一个策略组的描述可以是“该组委托可由委托方在任何时候撤回”。
此外,计数器表以及策略组表的条目数量是受可信硬件的存储空间限制的。
例子
下面给出一个本发明的方法的实例,其中使用了基于可信计算平台的电子签章系统。
在该实例中,可信硬件采用TPM芯片,软件平台采用TSS软件,而上层应用是签章系统。
此外,根密钥是2048位的RSA公钥,而密钥是2048位的RSA公钥,且凭证数据是20字节的随机数。
一个电子签章和一个TPM芯片产生的密钥所对应。撇开电子签章的其它部分不谈,签章最后的签名事实上就是在TPM芯片内部利用密钥的私钥对公文的一个杂凑值进行签名并返回给用户。
一个完整的电子签章系统是一台PC,PC中至少包含了TPM芯片、TSS软件以及签章系统。只有在该PC上,用户输入密钥的访问口令,才可以使用该密钥进行签名,即利用电子签章对公文盖章。
假设用户A是密钥A的所有者,即签章A的所有者。当用户A因为本周要出差而希望把用签章A进行盖章的权限转交给用户B的时候,他需要进行如下操作假设用户A就是TPM芯片的所有者,即平台的管理员,则他首先要设定委托策略。不妨为如下两组策略策略一,委托方随时可收回该委托;策略二,周一收回委托。
随后,用户A设定委托Da,指定委托口令,并指明仅仅委托密钥A的签名功能,然后把Da与策略一关联。
用户A离开后,用户B可以使用A设定的委托口令(委托口令可以通过其它途径传递,比如亲口告之)使用签章A进行盖章。但是用户B不能修改委托、不能修改委托口令以及密钥A的访问口令。
用户A回来之后,可以执行“委托撤回”过程,收回委托。用户B无法再使用。
以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所披露的技术范围内,可轻易想到的变换或替换,都应涵盖在本发明的包含范围之内。因此,本发明的保护范围应该以权利要求
书的保护范围为准。
权利要求
1.一种基于可信计算平台的、委托由密钥表示的权限的方法,所述可信计算平台包括可信硬件和处于该可信硬件上的软件协议栈,所述可信硬件存储有凭证数据、根密钥和具有至少一个计数器的计数器表,所述软件协议栈中存储有具有至少一个密钥的密钥表和具有至少一项委托的委托表,所述方法包括步骤将至少一项委托和相应的密钥、委托口令以及密钥的访问口令输入到可信硬件;可信硬件利用根密钥解密密钥,提取密钥访问口令,以验证输入的访问口令是否正确;在输入的访问口令正确的情况下,将委托和密钥相关联;用根密钥加密委托口令,并填入委托中,利用凭证数据计算完整性值并填入委托中,产生授权的委托;将授权的委托返回给软件协议栈,以填入委托信息表中。
2.如权利要求
1所述的方法,其特征在于,所述将委托和密钥相关联的步骤包括可信硬件读取计数器表中与该密钥相对应的计数器的校验值,填入委托的对应字段,并计算当前密钥的杂凑值,填入委托的密钥摘要字段。
3.如权利要求
1所述的方法,其特征在于,所述软件协议栈还存储有具有至少一组策略的策略组表,所述方法还包括策略设定步骤可信硬件所有者为一委托策略创建一个策略组,包括设置有效的计数器标识符、标记以及描述,连同根密钥的访问口令一起传送给可信硬件;可信硬件检查根密钥的访问口令;在根密钥的访问口令正确的情况下,在计数器表中建立对应的计数器,根据策略设定计数器的状态;将该计数器的信息返回软件协议栈,以更新策略组表。
4.如权利要求
1所述的方法,其特征在于,还包括步骤被委托方将授权的委托、密钥、相应的操作和委托口令输入到可信硬件内;可信硬件验证委托口令是否正确和相应的操作是否在委托范围之内;在验证成功的情况下,被委托方执行该操作。
5.如权利要求
4所述的方法,其特征在于,通过用根密钥解密委托来验证委托口令是否正确。
6.如权利要求
4所述的方法,其特征在于,可信硬件校验委托的委托摘要、密钥摘要。
7.如权利要求
6所述的方法,其特征在于,可信硬件检查与该密钥相对应的计数器的状态和校验值。
8.如权利要求
1所述的方法,其特征在于,所述完整性值是HMAC值。
9.如权利要求
2或3所述的方法,其特征在于,所述根密钥是RSA密钥对。
10.如权利要求
2或3所述的方法,其特征在于,所述密钥是RSA密钥对。
11.一种基于可信计算平台的撤销授权委托的方法,所述可信计算平台包括可信硬件和处于该可信硬件上的软件协议栈,所述可信硬件存储有根密钥和具有至少一个计数器的计数器表,所述软件协议栈中存储有具有至少一个密钥的密钥表和具有至少一项委托的委托表,所述方法包括步骤从委托表中选择待撤销的委托,与相应的密钥和密钥的所有者口令输入到可信硬件;在可信硬件内通过用根密钥解密所述密钥来验证所有者口令;在验证成功的情况下,检查委托信息的完整性以及委托信息与密钥是否匹配;在检查结果是肯定的情况下,可信硬件修改计数器值;在软件协议栈删除所述委托表中的该委托。
12.一种基于可信计算平台的撤销授权委托的方法,所述可信计算平台包括可信硬件和处于该可信硬件上的软件协议栈,所述可信计算平台包括可信硬件和处于该可信硬件上的软件协议栈,所述可信硬件存储有根密钥和具有至少一个计数器的计数器表,所述软件协议栈中存储有具有至少一个密钥的密钥表、具有至少一项委托的委托表和具有至少一组策略的策略组表,所述方法包括步骤可信硬件所有者从策略组表中选择要撤回的策略组,连同所有者口令一起传送给可信硬件;可信硬件验证用户输入的所有者访问口令是否正确;在验证成功的情况下,检查委托信息的完整性以及委托信息与密钥是否匹配;在检查结果是肯定的情况下,可信硬件修改计数器值;在软件协议栈删除所述委托表中的该委托。
专利摘要
公开了一种基于可信计算平台的、委托由密钥表示的权限的方法,可信计算平台包括可信硬件和软件协议栈,可信硬件存储有凭证数据、根密钥和具有至少一个计数器的计数器表,软件协议栈中存储有具有至少一个密钥的密钥表和具有至少一项委托的委托表,该方法包括将至少一项委托和相应的密钥、委托口令以及密钥的访问口令输入到可信硬件;可信硬件利用根密钥解密密钥,提取密钥访问口令,以验证输入的访问口令是否正确;在输入的访问口令正确的情况下,将委托和密钥相关联;用根密钥加密委托口令,并填入委托中,利用凭证数据计算完整性值并填入委托中,产生授权的委托;将授权的委托返回给软件协议栈,以填入委托信息表中。
文档编号H04L9/08GK1992714SQ200510135576
公开日2007年7月4日 申请日期2005年12月29日
发明者冯荣峰, 王凯, 郭轶尊, 李俊 申请人:联想(北京)有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1