发明名称 基于组密钥服务器的共享加密文件系统中的密钥管理方法
摘要 基于组密钥服务器的共享加密文件系统中的密钥管理方法属于存储安全领域,其特征在于:组密钥服务器处理系统中的各种密钥管理请求,并实施严格的用户身份认证和访问权限检查,客户端通过向组密钥管理器发送请求进行密钥操作;采用扩展访问控制列表的组织密钥信息,包括文件密钥,用户ID和访问权限,组密钥服务器使用自己的秘密密钥保护其机密性和完整性;客户端实现了密钥缓存功能,减少了与组密钥服务器的通信次数;系统采用了延迟加密技术实现密钥撤消,将重新加密文件的时机推迟到文件内容更新时,最大限度地降低了密钥撤消操作对系统性能的影响。
申请公布号 CN101159556A 申请公布日期 2008.04.09
申请号 CN200710177068.7 申请日期 2007.11.09
申请人 清华大学 发明人 舒继武;薛巍;刘志材;肖达
分类号 H04L9/32(2006.01);H04L29/06(2006.01);H04L12/56(2006.01) 主分类号 H04L9/32(2006.01)
代理机构 代理人
主权项 1.基于组密钥服务器的共享加密文件系统中的密钥管理方法,其特征在于,该方法是在共享加密文件系统中按以下步骤实现的:步骤(1).初始化:构建一个通过以太网连接、使用TCP/IP协议通信的,由前端主机、组密钥服务器、元数据服务器、数据服务器共同组成的共享加密文件系统,其中:前端主机,设有共享加密文件系统客户端、密钥管理客户端、加解密模块和通信接口,其中:共享加密文件系统客户端,为用户提供文件访问接口,处理应用层发来的各种文件访问请求,把其中涉及到的元数据操作和数据操作通过底层的通信接口分别发往元数据服务器和数据服务器执行;密钥管理客户端,向组密钥服务器发送来自应用层和文件系统层的密钥操作请求和用户身份认证请求,并且维护了在密钥操作时和组密钥服务器进行双向认证用的用户身份信息;加解密模块,位于文件系统客户端和底层块设备之间,使用高级加密标准算法AES加解密数据,转换明文/密文:在执行文件写操作时,用密钥加密文件,形成密文后发往底层块设备,再经过通信接口把数据保存到数据服务器;在执行文件读操作时,对从数据服务器获得的密文数据进行解密形成明文,返回给文件系统客户端;组密钥服务器,设有管理员接口模块、主机接口模块、身份认证模块和密钥管理模块,以执行前端主机上密钥管理客户端发来的各种密钥管理操作和用户身份认证请求,执行用户身份认证和文件访问权限检查,同时维护着所有用户和组信息,其中:管理员接口模块,是管理员执行系统管理命令的界面,执行以下操作:创建、撤消用户和组,改变用户权限以及配置网络接口;主机接口模块,负责与前端主机上的密钥管理客户端之间的通信,执行以下操作:从网络接收该密钥管理客户端发出的各种密钥管理请求,从中提取出用户身份和密钥信息,分别交给所述身份认证模块和密钥管理模块处理;把组密钥服务器执行密钥操作的结果返回给该密钥管理客户端;身份认证模块,采用现有的Kerberos认证机制,向用户授予访问许可票据作为用户请求组密钥服务器服务的凭证,同时还维护与用户通信的会话密钥,以保护用户和组密钥服务器之间消息传输的安全;密钥管理模块,采用文件扩展访问控制列表实现密钥管理,所述列表在组密钥服务器创建密钥信息时产生,以文件密钥开头,后跟多个访问列表项,每个列表项对应于文件的一个用户,记录了用户ID及用掩码值设定的访问权限,其中,所述的文件密钥有两种:加密密钥和确认-签名密钥,加密密钥是128位对称密钥,由系统随机数生成函数产生,用于在计数器模式的高级加密标准算法AES中加解密文件数据,提供文件内容的机密性保护;确认-签名密钥是一对公-私钥,由公钥加密算法RSA产生,用于对文件内容的散列值进行确认和签名,提供文件内容的完整性保护;文件的所有读者和写者都被授予确认密钥,而仅有文件写者被授予签名密钥,避免用户绕过数据服务器上的访问控制机制强行写入文件而不被检测到;所述列表作为文件的扩展属性存放在元数据服务器上。步骤(2).所述共享加密文件系统按以下步骤进行密钥管理:步骤(2.1).系统管理员通过管理员接口模块启动组密钥服务器,加载并初始化密钥管理客户端,创建用户和组并由用户设置登录密码;而组密钥服务器启动后要向系统注册一个全局标识,创建一个秘密密钥和一个认证密钥,分别用于密钥管理和身份认证;在系统管理员创建用户和组以后,组密钥服务器使用安全哈希算法SHA-1对每个用户的登录密码做散列值计算,将所得结果作为用户的秘密密钥保存在本地,以备在身份认证过程中使用;系统管理员通过管理员接口模块为该密钥管理客户端和组密钥服务器之间建立一个通信连接,把组密钥服务器的全局标识保存在密钥管理客户端的本地文件中;步骤(2.2).用户按以下步骤登录到共享加密文件系统,组密钥服务器向用户授予访问许可票据和会话密钥:步骤(2.2.1).用户通过所述密钥管理客户端向组密钥服务器发送登录请求;步骤(2.2.2).组密钥服务器调用Kerberos函数为用户生成一个访问许可票据和会话密钥,把两者封装在使用用户秘密密钥加密的应答消息中返回给该密钥管理客户端;步骤(2.2.3).所述密钥管理客户端提示用户输入密码,并使用安全哈希算法SHA-1对该密码做散列值计算得到用户的秘密密钥,解密所收到的应答消息,得到访问许可票据和会话密钥,由用户保存在本地文件中;步骤(2.3).应用层或文件系统层发出密钥管理请求时,共享加密文件系统按以下步骤实现密钥操作:步骤(2.3.1).前端主机的密钥管理客户端从元数据服务器获得文件扩展访问控制列表;步骤(2.3.2).密钥管理客户端使用访问许可票据和用户身份信息向组密钥服务器发起使用会话密钥加密的双向认证请求;步骤(2.3.3).组密钥服务器通过检查访问许可票据来认证用户身份信息,经认可后,向密钥管理客户端返回使用会话密钥加密的认证信息;步骤(2.3.4).密钥管理客户端使用会话密钥解密收到的认证信息,认证组密钥服务器的身份,认可后,向组密钥服务器发送密钥操作请求,该请求中包含了用户ID、具体的密钥操作命令和文件扩展访问控制列表;步骤(2.3.5).组密钥服务器按以下步骤使用自己的秘密密钥和散列的消息认证码算法HMAC计算文件扩展访问控制列表的消息认证码以验证其完整性,使用所述列表中对应用户的访问列表项检查访问权限,执行相应的密钥操作:步骤(2.3.5.1).对于密钥创建请求,组密钥服务器分别调用系统的随机数生成函数和RSA算法生成加密密钥和确认-签名密钥,并使用自己的秘密密钥加密,再把用户及其所在组的ID和访问权限添加到文件扩展访问控制列表中,最后使用秘密密钥和散列的消息认证码算法HMAC对整个扩展访问控制列表进行消息认证码计算,追加在表的末尾;步骤(2.3.5.2).对于密钥分发和密钥撤消请求,组密钥服务器在文件扩展访问列表中添加或删除相应用户的访问列表项,并重新计算消息认证码;步骤(2.3.5.3).对于获取解密后的文件密钥请求,组密钥服务器使用其秘密密钥对文件密钥解密,用户在进行文件的第一次读写操作时把返回的文件密钥缓存以备用;步骤(2.3.5.4).组密钥服务器向密钥管理客户端返回密钥操作的执行结果,对于密钥创建、分发和撤消操作,返回的是新生成的文件扩展访问控制列表;对于文件密钥获取请求,返回的是解密后的文件密钥;步骤(2.3.6).密钥管理客户端把返回的文件扩展访问控制列表保存到元数据服务器上,把解密后的文件密钥缓存在本地供加解密模块使用;步骤(2.4).在对某文件实施密钥撤消后,该文件的其他用户在更新文件内容时,需要按以下步骤重新加密文件:步骤(2.4.1).密钥管理客户端从元数据服务器获得文件扩展访问控制列表,向组密钥服务器发送密钥创建请求;步骤(2.4.2).组密钥服务器使用秘密密钥和散列的消息认证码算法HMAC计算文件扩展访问控制列表的消息认证码以验证其完整性,再使用所述列表中对应用户的访问列表项检查访问权限,然后,创建新的包括加密密钥和确认-签名密钥在内的文件密钥,并使用其秘密密钥加密,重新计算文件扩展访问控制列表的消息认证码,把修改后的列表返回给密钥管理客户端;步骤(2.4.3).前端主机上的加解密模块使用新的文件密钥重新加密文件,并由密钥管理客户端把文件扩展访问控制列表保存在元数据服务器上;步骤(2.4.4).组密钥服务器通知文件的其他用户密钥已被修改,使其缓存在本地的原文件密钥无效;步骤(2.4.5).文件其他用户的密钥管理客户端丢弃缓存在本地的文件密钥,向组密钥服务器返回响应。
地址 100084北京市海淀区100084-82信箱