本发明涉及一种存储加密技术,特别是涉及一种适用于云存储系统的密钥更新方法。
背景技术:
随着云计算技术的日益发展,服务端的存储安全面临着巨大的考验。为了解决存储安全的问题,数据存储加密技术得到了广泛引用,密钥是存储加密的核心所在。传统方法中的密钥更新后或者需要终端业务,或者更新密钥后性能严重下降并且会使磁盘使用寿命下降。
现有的发明专利中,“云存储的密钥更新方法及云数据审计系统的实现方法”专利(专利号为201510192375.7,专利申请日为2015年4月22日)介绍了云存储的密钥更新方法:当云用户需要更新密钥时,请求CA服务器生成新密钥,并基于从云服务器下载的文件标签和数据块标签,以及当新旧密钥生成新文件标签和数据块标签并上传至云服务器中,用以替换云服务器中对应的旧文件标签和数据块标签。该发明虽能显著降低密钥改变而引起的云服务器与云用户间的通信代价,但数据隐私这方面还有待加强。“面向云存储加密数据共享的多级权限管理方法”专利(专利号为201310044503.4,专利申请日为2013年1月4日),介绍了利用属性基加密、访问控制、权限管理等方法,为云存储环境下共享密文的访问及多级权限管理提供一种可靠的方法,该发明具有易于实现、用户信息保护性强、权限控制力度细,但是其资源占用大。“基于国产商用密码算法的云存储加密系统及其实现方法”专利(专利号为201410751081.9,专利申请日为2014年12月9日),介绍了设计云存储领域的加密系统,通过在数据传输和存储过程中加入国产商用密码算法进行数据加密保护,但在实时更新密钥这一方面还有欠缺。
本发明为密钥管理,存储加解密的一部分,针对存储密钥更新,提出了一种无需中断业务,无性能下降的IO路径优化算法。
技术实现要素:
本发明所要解决的技术问题是提供一种适用于云存储系统的密钥更新方法,针对上述现有的技术中的缺陷,本发明主要体现在:实时更新存储系统的密钥,且密钥更新后无需中断业务,0时间窗;密钥更新后,读写性能不会受到影响;资源占用少。
本发明是通过下述技术方案来解决上述技术问题的:一种适用于云存储系统的密钥更新方法,其特征在于,其步骤包括:
密钥初始化;
密钥更新;
IO写流程;
IO读流程;
优选地,所述密钥初始化步骤进一步包括:
管理员通过管理端为用户指定存储区域;
密钥服务器对存储区域按照扇区大小生成位图;
用户指定密钥;
密钥服务器生成密钥,并与位图,及存储区域一一对应;
优选地,所述密钥更新步骤进一步包括:
用户更新密钥;
密钥服务器生成新的位图、新的密钥,并将新密钥、新位图、存储区域一一对应;
优选地,所述IO写流程步骤进一步包括:
客户端发起写操作;
使用当前密钥将IO流加密;
将加密后的IO流下发至磁盘;
写成功后,将该密钥位图的相应区域置为1;
遍历其他位图,将其他位图对应的区域位置为0;
调用上层回调函数;
优选地,所述IO读流程步骤进一步包括:
客户端发起读操作;
从磁盘中读取加密IO流;
遍历所有位图,找出所读扇区对应的密钥;
使用密钥分段解密数据;
将解密数据返回给上层应用。
本发明的积极进步效果在于:本发明使密钥定期更换,有利于数据的保护,为客户提供了一种更安全的数据保护方式;密钥更新后,保持业务的连贯性;额外开销小,提高了性能。
附图说明
图1为本发明的密钥管理及加密系统图。
图2为本发明的密钥位图流程图。
图3为本发明的密钥更新流程图。
图4为本发明的IO写过程流程图。
图5为本发明的IO读过程流程图。
具体实施方式
下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。
如图1所示,本发明核心思想是密钥更新后,只针对新的写操作使用新密钥,其他没有写操作的区域的密钥不变,由于IO读写是以扇区为基本单位,所以我们以位图的方式表示存储区域,一位代表一个扇区,一个密钥分配一个位图;
本发明包括以下步骤:
密钥初始化;
密钥更新;
IO写流程;
IO读流程。
图2是位图及密钥存储的示意图,位图以链表的方式存储于密钥服务器;
管理员通过管理端为用户指定存储区域,,密钥服务器对存储区域按照扇区大小生成位图,用户指定密钥,密钥服务器生成密钥,并与位图,及存储区域一一对应。
图3是密钥更新流程图;
步骤301:对新的写区域发起密钥更新;
步骤302:用户指定密钥,密钥服务器生成新密钥,将新密钥置为当前使用密钥;
步骤303:根据存储区域的大小生成位图;
步骤304:将旧密钥置为非当前使用密钥。
图4是IO写过程流程图;
步骤401:客户端发起写操作;
步骤402:判断数据区域是否合法,若不合法,则向上层应用返回写失败,若合法,则继续步骤403;
步骤403:查找当前生效密钥;
步骤404:使用步骤403中查找到的密钥将IO流加密;
步骤405:将加密后的IO流下发至磁盘,进行写操作;
步骤406:判断写操作是否成功,若不成功,则向上层应用返回写失败,若成功,则继续步骤407;
步骤407:将该密钥位图的相应区域置为1;
步骤408:遍历其他位图,将其他位图对应的区域位置为0;
步骤409:检查其余密钥对应位图是否为全0,若不是,则向上层返回写入失败,若是,删除当前密钥及位图后,向上层返回写入成功;
图5是IO读过程流程图;
步骤501:客户端发起读操作;
步骤502:判断区域是否合法,若不合法,则向上层应用返回读失败,若合法,则继续步骤503;
步骤503:从磁盘中读取加密IO流;
步骤504:判断是否读取成功,若不成功,则向上层应用返回读失败,若成功,则继续步骤505;
步骤505:遍历所有位图,找出所读扇区对应的密钥;
步骤506:使用密钥分段解密数据并填充数据段;
步骤507:将解密数据返回给上层应用。
综上所述,本发明主要体现在:实时更新存储系统的密钥,且密钥更新后无需中断业务,0时间窗;密钥更新后,读写性能不会受到影响;资源占用少。本发明使密钥定期更换,有利于数据的保护,为客户提供了一种更安全的数据保护方式;密钥更新后,保持业务的连贯性;额外开销小,提高了性能。
以上所述的具体实施例,对本发明的解决的技术问题、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。