云存储模式下基于可信平台模块的密钥使用次数管理方法

文档序号:7554257阅读:180来源:国知局
专利名称:云存储模式下基于可信平台模块的密钥使用次数管理方法
技术领域
本发明涉及计算机信息安全技术领域,主要涉及基于可信平台模块的密钥管理,利用可信平台模块实现云存储模式下密钥的安全存储与使用,保护云存储模式下数据的机密性。
背景技术
作为云计算的重要组成部分,云存储专注于向用户提供以互联网为基础的在线存储服务。在云存储模式下,存储即服务,用户无需考虑物理设备的存储类型、存储方式以及数据的可用性、可靠性等具体的技术细节,却能按需从云服务提供商(Cloud ServiceProvider, CSP)处获得相应的服务,随时随地访问自己的数据。云存储能在提高IT效率、成本节省以及绿色计算等方面带来机遇,同时也面临着一些安全挑战。在云存储模式下,数据托管存储于第三方CSP处,脱离了数据拥有者Owner端的控制范围,其安全性高度依赖于CSP。考虑到CSP不可信,为保护数据的机密性,数据拥有者Owner端可先对明文数据加密,再将密文数据存储于CSP处,密钥则由Owner自己保管。此时,密钥的安全存储和使用就是保护数据机密性的关键所在。首先,密钥在数据拥有者Owner端和数据使用者User端都应当是安全存储的,防止因密钥的泄漏而导致数据的机密性被破坏。其次,密钥在User端的使用应当是受限制的,即应控制User对密钥的使用,防止因User对密钥的无限制使用而可能导致安全策略被破坏或数据的泄露。

发明内容
本发明提供一种云存储模式下基于可信平台模块的密钥使用次数管理方法,以有效地保证密钥的安全存储和数据的机密性、控制和管理授权用户对密钥的使用,防止用户对密钥的无保护、无限制使用而破坏数据的机密性。本发明的技术方案为一种云存储模式下基于可信平台模块的密钥使用次数管理方法,在数据拥有者Owner端设置可信平台模块ΤΡΜο、密钥管理守护进程模块KMD和加密模块DE,数据使用者User端设置可信平台模块TPMu、虚拟计数器管理模块VCM和密钥管理模块KM ;数据拥有者Owner对数据进行加密处理,并将加密后的密文数据上传到云服务提供商CSP的服务器中;
数据使用者User端对密钥使用次数进行管理,实现方式包括以下步骤,
步骤1,密钥管理模块KM接收到应用程序的数据访问请求信息后,首先在本地文件系统中查找该密文数据对应的数据加密密钥iffiT是否存在,若不存在,则转步骤2 ;存在则转步骤3 ;
步骤2,密钥管理模块KM向数据拥有者Owner发起密钥申请,并通过密钥迁移协议完成数据加密密钥DEK的传输,获得数据加密密钥DEK ;然后,密钥管理模块KM与虚拟计数器管理模块VCM交互为该数据加密密钥生成一个记录密钥已经使用次数的虚拟计数器V_counter,初始化该V_Counter的值VC为O ;并执行密钥存储,将数据加密密钥安全存储在本地文件系统中,并且在本地文件系统中维护密文数据的数据句柄T^3i3、密钥句柄IDdek以及虚拟计数器V_counter的句柄IDv—counter之间的对应关系;
数据拥有者Owner将数据使用者User的身份和访问权限信息发送给云服务提供商
CSP ;
数据使用者User向云服务提供商CSP发起数据访问请求,并将数据拥有者Owner颁发的访问授权证书出示给云服务提供商CSP,云服务提供商CSP根据Owner提供的身份和访问权限信息验证数据使用者User的身份和访问权限,然后将密文数据发送给数据使用者User ;
然后转步骤3 ;
步骤3,密钥管理模块KM加载数据加密密钥加载过程中判断数据加密密钥已经使用的次数^是否超过了数据拥有者Owner指定的使用次数見若数据加密密钥已经使用的次数E值大于数据加密密钥的指定使用次数见则将该密钥从本地文件系统中删除,并返回密钥加载失败信息;若密钥加载成功则转步骤4 ;
步骤4,密钥管理模块KM使用解密应用程序请求访问的密文数据,并将明文数据返回给应用程序;
步骤5,密钥管理模块KM执行密钥存储,重新将数据加密密钥存储到本地文件系统中。而且,所述数据拥有者Owner对数据进行加密处理,并将加密后的密文数据上传到云服务提供商CSP的服务器中,实现方式包括以下子步骤,
110)数据加密模块DE加密数据Data,数据Data的标识符为数据句柄IDData,数据加密模块DE将数据句柄ID0ata发给密钥管理守护进程模块KMD,向密钥管理守护进程模块KMD发起生成密钥请求;
120)密钥管理守护进程模块KMD随机生成一个数据加密密钥并将数据加密密钥传递给数据加密模块DE ;数据加密密钥的文件句柄为ID眶,密钥管理守护进程模块KMD在本地维护和存储数据句柄ID0ata与文件句柄ID眶的对应关系;
130)数据加密模块DE用AES加密算法对数据Data用数据加密密钥加密,并将所得密文数据上传到云服务提供商CSP的服务器中;
140)密钥管理守护进程模块KMD向可信平台模块TPMo发起绑定密钥生成请求,将数据加密密钥DEK发给可信平台模块TPMo,可信平台模块TPMo为数据加密密钥DEK生成一个绑定密钥OwnerBindKey,并用绑定密钥OwnerBindKey对数据加密密钥加密,将所得密文返回给密钥管理守护进程模块KMD ;
150)密钥管理守护进程模块KMD在本地文件系统中安全存储数据加密密钥实现方式为保存可信平台模块TPMo用绑定密钥对数据加密密钥加密所得密文。而且, 所述密钥管理模块KM向数据拥有者Owner发起密钥申请,实现方式包括以下子步骤,
210)数据使用者User端的密钥管理模块KM请求可信平台模块TPMu生成一个非对称密钥非对称密钥的父密钥为可信平台模块TPMu的存储根密钥,并获得非对称密钥的公钥;220)密钥管理模块KM将公钥用户身份信息UserInfo及数据请求信息DataReq发送给数据拥有者Owner端的密钥管理守护模块KMD。而且,所述通过密钥迁移协议完成数据加密密钥的传输,实现方式包括以下子步骤,
310)密钥管理守护模块KMD验证用户身份信息UserInfo和数据请求信息DataReq,若验证未通过,则终止密钥迁移协议的运行;若验证通过,则通过密钥管理守护模块KMD维护和存储的数据句柄ID0ata与文件句柄之间关系查找对应的数据加密密钥DEK,并产生数据加密密钥的指定使用次数见将数据加密密钥的指定使用次数#与数据加密密钥DEK进行串联得到字符串#| \DEK ;
320)密钥管理守护模块KMD将密钥信息KeyInfo传递给可信平台模块ΤΡΜο,可信平台模块TPMo生成一个可迁移的绑定密钥;
330)密钥管理守护模块KMD将字符串公钥传递给可信平台模块ΤΡΜο,可信平台模块TPMo验证绑定密钥沿的迁移授权信息,验证通过则用绑定密钥BindKey的公钥BindKey_pub对Ar| \DEK加密,用公钥AsyKey_pub对绑定密钥BindKey力口密,并将所得密文信息Α, , ΟνΙ \DEK)取EAsrKerJub{BindKey)返回给密钥管理守护模块KMD ;
340 )密钥管理守护模块KMD将加密后的密文信息Emndxer pub OVl \DEK)和Eas細—pub {Bindley),发送给密钥管理模块KM,完成数据加密密钥DEK的传输。而且,所述密钥管理模块KM执行密钥存 储流程在本地文件系统中安全存储数据加密密钥DEK,实现方式包括以下子步骤,
410)密钥管理模块KM调用虚拟计数器管理模块VCM的计数器增加命令increment命令使虚拟单调计数器的值^加I,并获取增加后的E值;
420)密钥管理模块KM将数据加密密钥的指定使用次数#、已经使用次数E和数据加密密钥使用哈希函数)进行签名,得到签名信息Jifsi=AasAOV/;430)密钥管理模块KM将字符串和密文信息^加载到可信平台模块TPMu内部,可信平台模块TPMu用私钥对密文信息解密出绑定密钥BindKey,再由公钥BindKey_pub加密数据加密密钥DEK的指定使用次数N和数据加密密钥并将加密后的密文信息^-OVl \DEK)返回给密钥管理模块KM ;440)密钥管理模块KM将对数据加密密钥DEK的指定使用次数从已经使用次数E和数据加密密钥签名后所得签名信息以及密文信息万—, ΟνΙ \DEK~)、EAsyKey—pub {Bindley)保存到本地文件系统中。而且,所述密钥管理模块KM执行密钥加载流程,实现方式包括首先判断是否为第一次加载密钥,若是则执行以下子步骤510)-540),若不是则执行以下子步骤510)-550),
510)密钥管理模块KM从本地文件系统中读取密钥信息,获取签名信息加密后绑定密钥BindKey和数据加密密钥DEK所得密文信息EBindKer』ub 0V| \DEK)和EAsyKey—pub (BindKey);
520)密钥管理模块KM将密文信息Asi2te,_ (BindKey)加载到可信平台模块TPMu内部,可信平台模块TPMu用非对称密钥的私钥解密得到绑定密钥;530)密钥管理模块KM将密文信息馬OVl \DEK)加载到可信平台模块TPMu内部,可信平台模块TPMu使用绑定密钥BindKey解密得到数据加密密钥DEK的指定使用次数#和数据加密密钥并将数据加密密钥的指定使用次数#和数据加密密钥返回给密钥管理模块KM ;
540)密钥管理模块KM向虚拟计数器管理模块VCM请求数据加密密钥DEK的虚拟计数器V_counter的当前值『,若数据加密密钥已经使用的次数『值大于数据加密密钥指定的使用次数#则将数据加密密钥销毁,返回加载失败;否则,执行550);
550)密钥管理模块KM使用哈希函数AasA ()对数据加密密钥指定的使用次数#、数据加密密钥已经使用的次数E值和数据加密密钥验证签名信息,即计算digest,二hash (JV/ jDEKj/FT),若digest=digest,则验证通过返回密钥加载成功;否则返回密钥加载失败。本发明与现有技术相比具有以下的主要优点:
第一.将可信计算技术应用到云存储模式中,利用可信平台模块的密钥管理和安全存储功能,实现了云存储模式下的密钥安全存储。第二.在密钥分发和传输方面,采用密钥迁移协议实现密钥在数据拥有者Owner和数据使用者User之间的安全传输,安全性更高。第三.在密钥使用方面,将密钥的使用次数与单调递增的虚拟计数器相绑定,使得密钥的使用次数是受限制的,从而有效解决了密钥的无限制使用而导致的安全问题。总之,本发明利用可信平台模块的密钥管理和安全存储功能,使得密钥能够安全存储和传输;利用可信平台模块的单调计数器功能,通过对密钥的使用次数与单调递增的虚拟计数器值的绑定和判断,管理和控制密钥的使用次数,从而有效解决了密钥的无限制使用而导致的安全问题。


图1是本发明实施例的云存储模式下基于可信平台模块的密钥使用次数管理系统架构。图2是本发明实施例的密钥迁移协议流程。图3是本发明实施例的密钥存储流程。图4是本发明实施例的密钥加载流程。图5是本发明实施例的密钥受限使用流程。
具体实施例方式 以下结合附图和实施例详细说明本发明技术方案。本发明提出了云存储模式下基于可信平台模块的密钥使用次数管理方法,具体流程是:数据拥有者Owner将数据加密后存储于云服务提供商CSP的服务器中。数据使用者User需要访问Owner存储于CSP处的数据时,向Owner发起数据访问请求,从Owner处获取授权证书和密钥。User将授权证书出示给CSP,从CSP处获取到密文数据。User端的密钥管理模块KM在解密数据前,对密钥的可用性进行判断,如果密钥可用,则用密钥解密数据,将明文数据返回给User。如果密钥已经超过了预定的使用次数或者密钥受到了重放攻击,KM将删除密钥,返回密钥加载失败信息,从而实现了对密钥使用次数的控制。实施例的云存储模式下基于可信平台模块的密钥使用次数管理系统架构如图1所示,包括:
数据拥有者Owner端设有可信平台模块ΤΡΜο、密钥管理守护进程模块KMD、加密模块DE:可信平台模块TPMo:可信平台模块一般称为ΤΡΜ,实施例将数据拥有者Owner端的可信平台模块标识为ΤΡΜο。可信平台模块可提供物理单调计数器,提供存储根密钥SRK、迁移密钥和绑定密钥等密钥,在内部进行一些密钥加密和解密操作。密钥管理守护进程模块KMD:提供密钥生成功能,接受使用者User的密钥请求,并与User的密钥管理模块KM交互执行密钥迁移协议将密钥发送给User ;
数据加密模块DE:提供数据加密功能,将数据用对称密码加密后上传给云服务提供商CSP。数据使用者User端设有可信平台模块TPMu、虚拟计数器管理模块VCM、密钥管理模块KM:
可信平台模块TPMu:可信平台模块一般称为TPM,实施例将数据使用者User端的可信平台模块标识为TPMu。可信平台模块可提供物理单调计数器,提供存储根密钥SRK、迁移密钥和绑定密钥等密钥,在内部进行一些密钥加密和解密操作。虚拟计数器管理模块VCM:提供创建虚拟单调计数器功能,与TPMu交互为每一个应用创建一个虚拟单调计数器V_counter,并执行相应的命令管理和使用虚拟单调计数器V_counter,包括增加V_counter的当前值、读取V_counter的当前值;
密钥管理模块KM:提供向数据拥有者Owner请求密钥、在本地文件系统中查找密钥、判断密钥是否可用、删除密钥、解密数据等功能,与Owner的密钥管理守护进程模块KMD交互执行密钥迁移协议从Owner处获取密钥,并与虚拟计数器管理模块VCM交互得到V_counter的当前值以判断密钥是否可用。如密钥可用,则解密数据,将明文数据返回给应用程序;如果密钥已经超过了预定的使用次数或者密钥受到了重放攻击则删除密钥,返回密钥加载失败信息。具体实施时,各模块可由本领域技术人员参照工作流程采用计算机软件方式实现。基于实施例的系统架构,实现密钥使用的基本工作流程,包括以下几个步骤,如图1所示:
(I)数据拥有者Owner对数据进行加密处理,并将加密后的密文数据上传到云服务提供商CSP的服务器中。(2)当数据使用者User要使用数据拥有者Owner存储在云服务提供商CSP处的数据时,向数据拥有者Owner发起数据访问请求。(3)数据拥有者Owner验证数据使用者User的身份和访问权限,若User为非法用户或者对其不拥有访问权限的数据发起访问请求,贝1J不响应User的请求;否则,Owner向User颁发访问授权证书,并将密钥等相关信息安全发送给User ;User通过密钥迁移协议获得数据加密密钥DEK后,执行密钥存储流程在本地安全存储数据加密密钥DEK。(4)数据拥有者Owner将数据使用者User的身份和访问权限等信息发送给云服务提供商CSP。(5)数据使用者User向云服务提供商CSP发起数据访问请求,并将数据拥有者Owner颁发的访问授权证书出示给CSP, CSP根据Owner提供的User身份和访问权限等信息判断User的身份和访问权限;若User可以访问数据,则将密文数据发送给User ;否则,不响应User的访问请求。
(6)数据使用者User从云服务提供商CSP处获取到密文数据后,通过从数据拥有者Owner处获取的数据加密密钥DEK解密访问数据。考虑到数据加密密钥的重复使用,本发明进一步提出:如果User已经从Owner处获得了数据加密密钥DEK,则执行密钥加载流程解密出数据加密密钥DEK,然后用数据加密密钥解密数据,获得明文数据。获得明文数据后,User就执行密钥存储流程将数据加密密钥DEK在本地存储起来。若User还没有从Owner处获得数据加密密钥DEK,则先执行密钥迁移协议获得数据加密密钥DEK,获得数据加密密钥后首先执行密钥存储流程存储数据加密密钥DEK,之后再执行密钥加载流程和密钥存储流程。如图5所示,实施例的数据使用者User端对密钥使用次数进行管理。数据使用者User端可能有多个应用程序需要使用密钥,如应用I…应用n,各有对应密钥。某一应用程序具体使用密钥的实现方式包括以下步骤,
步骤1,密钥管理模块KM接收到应用程序的数据访问请求信息后,首先在本地文件系统中查找该密文数据对应的数据加密密钥iffiT是否存在,若不存在,则转步骤2 ;存在则转步骤3。步骤2,密钥管理模块KM向数据拥有者Owner发起密钥申请,并通过密钥迁移协议完成数据加密密钥DEK的传输,获得数据加密密钥DEK ;然后,密钥管理模块KM与虚拟计数器管理模块VCM交互为该数据加密密钥生成一个记录数据加密密钥已经使用次数的虚拟计数器V_counter,初始化该V_counter的值VC为O ;并执行密钥存储,将数据加密密钥安全 存储在本地文件系统中,并且在本地文件系统中维护密文数据的数据句柄
、密钥句柄IDdek以及虚拟计数器V_counter的句柄IDv counter之间的对应关系;
数据拥有者Owner将数据使用者User的身份和访问权限信息发送给云服务提供商
CSP ;
数据使用者User向云服务提供商CSP发起数据访问请求,并将数据拥有者Owner颁发的访问授权证书出示给云服务提供商CSP,云服务提供商CSP根据Owner提供的身份和访问权限信息验证数据使用者User的身份和访问权限,然后将密文数据发送给数据使用者User ;
转步骤3。后续再次使用数据加密密钥时,无需重新传输数据加密密钥和密文数据。步骤3,密钥管理模块KM加载数据加密密钥加载过程中判断数据加密密钥 已经使用的次数E是否超过了数据拥有者Owner为数据加密密钥指定的使用次数
N。若数据加密密钥已经使用的次数E超过了数据加密密钥指定的使用次数见即Kd,则将数据加密密钥从本地文件系统中删除,并返回密钥加载失败信息;若密钥加载成功则转步骤4。步骤4,密钥管理模块KM使用数据加密密钥DEK解密应用程序请求访问的密文数据,并将明文数据返回给应用程序。步骤5,密钥管理模块KM执行密钥存储,重新将数据加密密钥存储到本地文件系统中。这样每次使用完数据加密密钥后都执行一次密钥存储流程在本地安全存储数据加密密钥为便于实施参考起见,对上述系统工作流程的几个关键阶段作进一步说明如下:1.数据拥有者端对数据的处理阶段:
数据拥有者Owner对数据的处理阶段,主要包括以下几个步骤:
110)数据加密模块DE加密数据Data,数据Data的标识符为数据句柄IDData,数据加密模块DE将数据句柄ID0ata发给密钥管理守护进程模块KMD,向密钥管理守护进程模块KMD发起生成密钥请求;
120)密钥管理守护进程模块KMD随机生成一个数据加密密钥并将数据加密密钥DEK传递给数据加密模块DE。数据加密密钥DEK的文件句柄为ID眶,密钥管理守护进程模块KMD在本地维护和存储数据句柄ID0ata与文件句柄IDdek的对应关系;
130)数据加密模块DE用AES加密算法对数据Data用数据加密密钥加密,并将所得密文数据上传到云服务提供商CSP的服务器中;
140)密钥管理守护进程模块KMD向可信 平台模块TPMo发起绑定密钥生成请求,将数据加密密钥DEK发给可信平台模块TPMo,可信平台模块TPMo为数据加密密钥DEK生成一个绑定密钥OwnerBindKey,并用绑定密钥OwnerBindKey对数据加密密钥加密,将所得密文返回给密钥管理守护进程模块KMD
150)密钥管理守护进程模块KMD在本地文件系统中安全存储数据加密密钥即保存可信平台模块TPMo用绑定密钥OwnerBindKey对数据加密密钥加密所得密文。2.密钥传输阶段:
密钥传输基于一个密钥迁移协议实现,如图2所示:
首先密钥管理模块KM向数据拥有者Owner发起密钥申请,执行以下步骤:
210 )数据使用者User端的密钥管理模块KM请求可信平台模块TPMu生成一个非对称密钥非对称密钥的父密钥为可信平台模块TPMu的存储根密钥{StorageRoo t Key, SM),并获得非对称密钥AsjJfey的公钥AsyKey_pub,(非对称密钥AsjJfey的私钥由可信平台模块TPMu的存储根密钥加密后存储于TPMu外部,使用非对称密钥时,先将加密后的私钥加载到可信平台模块TPMu,由可信平台模块TPMu的存储根密钥解密,为简便描述,下文不再做说明);
220)密钥管理模块KM将公钥用户身份信息UserInfo及数据请求信息DataReq发送给数据拥有者Owner端的密钥管理守护模块KMD。然后通过密钥迁移协议完成密钥的传输,执行以下步骤:
310)密钥管理守护模块KMD验证用户身份信息UserInfo和数据请求信息DataReq,若验证未通过,则终止协议的运行;若验证通过,则通过密钥管理守护模块KMD维护和存储的数据句柄ID0ata与文件句柄之间关系查找对应的数据加密密钥DEK,并产生数据加密密钥DEK的指定的使用次数N,将数据加密密钥DEK的指定使用次数#与数据加密密钥DEK进行串联得到字符串#1 \DEK。320)密钥管理守护模块KMD将密钥信息KeyInfo传递给可信平台模块ΤΡΜο,可信平台模块TPMo生成一个可迁移的绑定密钥沿;
330)密钥管理守护模块KMD将字符串\DEK、公墩AsyKey_pub传递给可信平台模块TPMo,可信平台模块TPMo验证绑定密钥BindKey的迁移授权信息,验证通过则用绑定密钥BindKey的公钥BindKey_pub对字符串N| IDEK加密,用公钥AsyKey_pub对绑定密钥BindKey [包Mi BindKey的公钥和私钥)加密,并将所得密文信息EBindKey_pub(N||DEK)和EAsyKey—pub(mndKey)返回给密钥管理守护模块KMD ;
340 )密钥管理守护模块KMD将加密后的密文信息,即EBindKey pub 0V| IDEK)和EAsyKey—pub {Bindley),发送给密钥管理模块KM,完成数据加密密钥DEK的传输。3.密钥在数据使用者端的使用阶段:
数据加密密钥在数据使用者端的使用时,需要进行密钥存储流程、密钥加载流程以在本地实现对数据加密密钥DEK的安全存储和受限使用。密钥存储流程包括以下几个步骤,如图3所示:
410)密钥管理模块KM调用虚拟计数器管理模块VCM的计数器增加命令increment命令使虚拟单调计数器的值^加I,并获取增加后的E值;
『记录的就是数据加密密钥当前已使用次数。使用一次,『就增加I次4 2 O )密钥管理模块KM将数据加密密钥的指定使用次数从数据加密密钥已经使用次数K和数据加密密钥使用哈希函数AasA ()进行签名,得到签名信息digest-hash (JV/1DEKI / VC);
430)密钥管理模块KM将字符串Λ/| 和密文信息^加载到可信平台模块TPMu内部,可信平台模块TPMu用私钥对密文信息解密出绑定密钥BindKey ,再由公钥BindKey_pub加密数据加密密钥DEK的指定使用次数N和数据加密密钥并将加密后的密文信息^-OVl \DEK)返回给密钥管理模块KM ;440)密钥管理模块KM将对数据加密密钥DEK的指定使用次数从数据加密密钥DEK已经使用次数『和数据加密密钥签名后所得签名信息digest以及密文信息PUM \DEK) ,EAsyKey pub (BindKey)保存到本地文件系统中。密钥加载流程用于密钥管理模块KM执行密钥加载,实现方式包括首先判断是否为第一次加载密钥,若是则执行以下子步骤510)-540),若不是则执行以下子步骤510)-550),,如图 4 所示:
510)密钥管理模块KM从本地文件系统(可采用密钥文件列表)中读取密钥信息,获取签名信息加密后的绑定密钥和数据加密密钥即密文信息pub (^l \DEK)和 Ea—收ndKey);
520)密钥管理模块KM将密文信息Asi2te,_ {Bindley)加载到可信平台模块TPMu内部,可信平台模块TPMu用非对称密钥的私钥解密得到绑定密钥;
530)密钥管理模块KM将密文信息馬OVl \DEK)加载到可信平台模块TPMu内部,可信平台模块TPMu使用绑定密钥BindKey解密得到数据加密密钥DEK的指定使用次数#和数据加密密钥并将数据加密密钥的指定使用次数#和数据加密密钥返回给密钥管理模块KM ;
540)密钥管理模块KM向虚拟计数器管理模块VCM请求数据加密密钥DEK的虚拟计数器¥_(:0111^虹的当前值『,若数据加密密钥已经使用次数『值大于数据加密密钥的指定使用次数#则将数据加密密钥销毁,返回加载失败;否则,执行550);
550)密钥管理模块KM使用哈希函数AasA ()对数据加密密钥的指定使用次数从数据加密密钥已经使用次数E值和数据加密密钥验证签名信息,即计算digest,二hash (JV/ jDEKj/FT),若digest=digest,则验证通过返回密钥加载成功;否则返回密钥加载失败。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
权利要求
1.一种云存储模式下基于可信平台模块的密钥使用次数管理方法,其特征在于:在数据拥有者Owner端设置可信平台模块ΤΡΜο、密钥管理守护进程模块KMD和加密模块DE,数据使用者User端设置可信平台模块TPMu、虚拟计数器管理模块VCM和密钥管理模块KM ;数据拥有者Owner对数据进行加密处理,并将加密后的密文数据上传到云服务提供商CSP的服务器中; 数据使用者User端对密钥使用次数进行管理,实现方式包括以下步骤, 步骤1,密钥管理模块KM接收到应用程序的数据访问请求信息后,首先在本地文件系统中查找该密文数据对应的数据加密密钥iffiT是否存在,若不存在,则转步骤2 ;存在则转步骤3 ; 步骤2,密钥管理模块KM向数据拥有者Owner发起密钥申请,并通过密钥迁移协议完成数据加密密钥DEK的传输,获得数据加密密钥DEK ;然后,密钥管理模块KM与虚拟计数器管理模块VCM交互为该数据加密密钥生成一个记录密钥已经使用次数的虚拟计数器V_counter,初始化该V_Counter的值VC为O ;并执行密钥存储,将数据加密密钥安全存储在本地文件系统中,并且在本地文件系统中维护密文数据的数据句柄T^3i3、密钥句柄IDdek以及虚拟计数器V_counter的句柄IDv—counter之间的对应关系; 数据拥有者Owner将数据使用者User的身份和访问权限信息发送给云服务提供商CSP ; 数据使用者User向云服务提供商CSP发起数据访问请求,并将数据拥有者Owner颁发的访问授权证书出示给云服务提供商CSP,云服务提供商CSP根据Owner提供的身份和访问权限信息验证数据使用者User的身份和访问权限,然后将密文数据发送给数据使用者User ; 然后转步骤3 ; 步骤3,密钥管理模块KM加载数据加密密钥加载过程中判断数据加密密钥已经使用的次数^是否超过了数据拥有者Owner为该数据加密密钥指定的使用次数 若数据加密密钥已经使用的次数E超过了数据加密密钥指定的使用次数见则将该数据加密密钥从本地文件系统中删除,并返回密钥加载失败信息;若密钥加载成功则转步骤4 ; 步骤4,密钥管理模块KM使用解密应用程序请求访问的密文数据,并将明文数据返回给应用程序; 步骤5,密钥管理模块KM执行密钥存储,重新将数据加密密钥存储到本地文件系统中。
2.根据权利要求1所述云存储模式下基于可信平台模块的密钥使用次数管理方法,其特征在于:所述数据拥有者Owner对数据进行加密处理,并将加密后的密文数据上传到云服务提供商CSP的服务器中,实现方式包括以下子步骤, 110)数据加密模块DE加密数据Data,数据Data的标识符为数据句柄IDData,数据加密模块DE将数据句柄ID0ata发给密钥管理守护进程模块KMD,向密钥管理守护进程模块KMD发起生成密钥请求; 120)密钥管理守护进程模块KMD随机生成一个数据加密密钥并将数据加密密钥 传递给数据加密模块DE ;数据加密密钥的文件句柄为ID;密钥管理守护进程模块KMD在本地维护和存储数据句柄ID0ata与文件句柄IDdek的对应关系; 130)数据加密模块DE用AES加密算法对数据Data用数据加密密钥加密,并将所得密文数据上传到云服务提供商CSP的服务器中; 140)密钥管理守护进 程模块KMD向可信平台模块TPMo发起绑定密钥生成请求,将数据加密密钥DEK发给可信平台模块TPMo,可信平台模块TPMo为数据加密密钥DEK生成一个绑定密钥OwnerBindKey,并用绑定密钥OwnerBindKey对数据加密密钥加密,将所得密文返回给密钥管理守护进程模块KMD ; 150)密钥管理守护进程模块KMD在本地文件系统中安全存储数据加密密钥实现方式为保存可信平台模块TPMo用绑定密钥对数据加密密钥加密所得密文。
3.根据权利要求2所述云存储模式下基于可信平台模块的密钥使用次数管理方法,其特征在于:所述密钥管理模块KM向数据拥有者Owner发起密钥申请,实现方式包括以下子步骤, 210)数据使用者User端的密钥管理模块KM请求可信平台模块TPMu生成一个非对称密钥非对称密钥的父密钥为可信平台模块TPMu的存储根密钥,并获得非对称密钥的公钥; 220)密钥管理模块KM将公钥用户身份信息UserInfo及数据请求信息DataReq发送给数据拥有者Owner端的密钥管理守护模块KMD。
4.根据权利要求3所述云存储模式下基于可信平台模块的密钥使用次数管理方法,其特征在于:所述通过密钥迁移协议完成数据加密密钥的传输,实现方式包括以下子步骤, 310)密钥管理守护模块KMD验证用户身份信息UserInfo和数据请求信息DataReq,若验证未通过,则终止密钥迁移协议的运行;若验证通过,则通过密钥管理守护模块KMD维护和存储的数据句柄ID0ata与文件句柄之间关系查找对应的数据加密密钥DEK,并产生数据加密密钥的指定使用次数见将数据加密密钥的指定使用次数#与数据加密密钥DEK进行串联得到字符串#| \DEK ; 320)密钥管理守护模块KMD将密钥信息KeyInfo传递给可信平台模块ΤΡΜο,可信平台模块TPMo生成一个可迁移的绑定密钥;330)密钥管理守护模块KMD将字符串\DEK、公铅AsyKey_pub传递给可信平台模块TPMo,可信平台模块TPMo验证绑定密钥Si/ 的迁移授权信息,验证通过则用绑定密钥BindKey的公钥BindKey_pub对字符串#| \DEK加密,用公钥AsyKey_pub对绑定密钥加密,并将所得密文信息OVl \DEK)取EAsyKeyJubimndKey)返回给密钥管理守护模块KMD ; 340 )密钥管理守护模块KMD将加密后的密文信息EmndKey pub 0V| \DEK)和EAsyKey—pub {Bindley),发送给密钥管理模块KM,完成数据加密密钥DEK的传输。
5.根据权利要求4所述云存储模式下基于可信平台模块的密钥使用次数管理方法,其特征在于:所述密钥管理模块KM执行密钥存储流程在本地文件系统中安全存储数据加密密钥实现方式包括以下子步骤, 410)密钥管理模块KM调用虚拟计数器管理模块VCM的计数器增加命令increment命令使虚拟单调计数器的值E加I,并获取增加后的E值; ·4 2 O )密钥管理模块KM将数据加密密钥的指定使用次数从数据加密密钥已经使用次数K和数据加密密钥使用哈希函数AasA ()进行签名,得到签名信息digest-hash (JV/1DEKI / VC);· 430)密钥管理模块KM将Λ/| 和密文信息_⑵加载到可信平台模块TPMu内部,可信平台模块TPMu用私钥AsyKey_pri对密文信息EAs)^Jub (BindKey)解密出绑定密钥BindKey,再由公钥BindKey_pub加密数据加密密钥DEK的指定使用次数#和数据加密密钥并将加密后的密文信息OVl \DEK)返回给密钥管理模块KM; ·440)密钥管理模块KM将对数据加密密钥DEK的指定使用次数从数据加密密钥DEK已经使用次数『和签名后所得签名信息以及密文信息\DEK)、EAsyKey—pub {Bindley)保存到本地文件系统中。
6.根 据权利要求5所述云存储模式下基于可信平台模块的密钥使用次数管理方法,其特征在于:所述密钥管理模块KM执行密钥加载流程,实现方式包括首先判断是否为第一次加载密钥,若是则执行以下子步骤510)-540),若不是则执行以下子步骤510)-550), ·510)密钥管理模块KM从本地文件系统中读取密钥信息,获取签名信息加密后绑定密钥BindKey和数据加密密钥DEK所得密文信息EBindKer』ub 0V| \DEK)和EAsyKey—pub (BindKey); ·520)密钥管理模块KM将密文信息Asi2te,_ (BindKey)加载到可信平台模块TPMu内部,可信平台模块TPMu用非对称密钥的私钥解密得到绑定密钥; ·530)密钥管理模块KM将密文信息馬OVl \DEK)加载到可信平台模块TPMu内部,可信平台模块TPMu使用绑定密钥BindKey解密得到数据加密密钥DEK的指定使用次数#和数据加密密钥并将数据加密密钥的指定使用次数#和数据加密密钥返回给密钥管理模块KM ; 540)密钥管理模块KM向虚拟计数器管理模块VCM请求数据加密密钥DEK的虚拟计数器V_counter的当前值『,若数据加密密钥已经使用的次数『值大于数据加密密钥的指定使用次数#则将数据加密密钥销毁,返回加载失败;否则,执行550); 550)密钥管理模块KM使用哈希函数AasA ()对使用次数数据加密密钥DEK的指定使用次数从数据加密密钥已经使用的次数E值和数据加密密钥验证签名信息,即计算digest ’二hash {N/ jDEKj/FT),若则验证通过返回密钥加载成功;否则返回密钥加载失败。
全文摘要
一种云存储模式下基于可信平台模块的密钥使用次数管理方法,数据拥有者Owner端设置可信平台模块TPMo、密钥管理守护进程模块KMD和加密模块DE,数据使用者User端设置可信平台模块TPMu、虚拟计数器管理模块VCM和密钥管理模块KM;数据拥有者Owner对数据进行加密处理后上传到云服务提供商CSP的服务器;数据使用者User端对密钥使用次数进行管理,包括密钥管理模块KM接收到访问请求,首先查找密钥是否存在,若不存在则向数据拥有者Owner发起密钥申请,并通过密钥迁移协议完成密钥的传输;密钥管理模块KM加载数据加密密钥DEK,在密钥已使用次数超过数据拥有者Owner指定的使用次数N时销毁密钥。
文档编号H04L9/32GK103138939SQ20131010430
公开日2013年6月5日 申请日期2013年3月28日 优先权日2013年3月28日
发明者王丽娜, 任正伟, 邓入弋, 彭瑞卿, 张 浩, 余荣威 申请人:武汉大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1