一种安全数据存储管理的方法、系统及安全存储管理模块

阅读: 评论:0

著录项
  • CN201910645170.8
  • 20190717
  • CN110443049A
  • 20191112
  • 南方电网科学研究院有限责任公司;中国南方电网有限责任公司
  • 洪超;明哲;许爱东;陈华军;丁伟;戴涛
  • G06F21/60
  • G06F21/60 G06F21/78 G06F21/44

  • 广东省广州市萝岗区科学城科翔路11号J1栋3、4、5楼及J3栋3楼
  • 广东(44)
  • 北京集佳知识产权代理有限公司
  • 王晓坤
摘要
本申请公开了一种安全数据存储管理的方法,包括:发送存储空间申请请求;利用私钥对存储空间申请请求进行解密,得到第一访问凭证及申请信息;随机生成第二访问凭证,并确定存储空间的起始地址,再分配存储空间;对第二访问凭证进行加密得到加密信息,并将加密信息发送至进程或设备;进程或设备将待存储数据存放至存储空间中。本申请通过结合非对称密码对进程或设备发送的存储空间申请请求进行加解密和校验,有效地抵御数据存储、访问过程中遭受的重放、篡改等攻击,保证数据的机密性和完整性;提高了数据存储及访问过程中的机密性、完整性和可用性。本申请同时还提供了一种安全数据存储管理的系统及安全存储管理模块,具有上述有益效果。
权利要求

1.一种安全数据存储管理的方法,其特征在于,包括:

进程或设备发送存储空间申请请求至安全存储管理模块;其中,所述存储空间申请请求为所述进程或所述设备利用公钥加密后的请求;

所述安全存储管理模块利用私钥对所述存储空间申请请求进行解密,得到第一访问凭证及申请信息;其中,所述第一访问凭证为所述进程或所述设备随机生成的访问凭证;

所述安全存储管理模块随机生成第二访问凭证,并根据所述第一访问凭证及所述第二访问凭证确定存储空间的起始地址,再根据所述申请信息中申请存储空间长度信息分配存储空间;

所述安全存储管理模块使用所述第一访问凭证作为对称密码算法密钥对所述第二访问凭证进行加密得到加密信息,并将所述加密信息发送至所述进程或所述设备;

所述进程或所述设备利用所述第一访问凭证对所述加密信息进行解密得到所述第二访问凭证,并根据所述第一访问凭证及所述第二访问凭证将待存储数据存放至所述存储空间中。

2.根据权利要求1所述的方法,其特征在于,在所述进程或所述设备发送存储空间申请请求至安全存储管理模块之前,还包括:

所述安全存储管理模块定期生成公私钥对;其中,所述公私钥对包括所述公钥及所述私钥;

接收所述进程或所述设备发送的身份信息;

根据所述身份信息对所述进程或所述设备进行身份验证;

若验证通过,则将所述公钥发送至所述进程或所述设备。

3.根据权利要求1所述的方法,其特征在于,所述进程或所述设备发送存储空间申请请求至安全存储管理模块,包括:

所述进程或所述设备组织生成申请信息;其中,所述申请信息包括ID、长度、数据有效期、访问控制列表、描述信息中的至少一项;

随机生成所述第一访问凭证;

获取第一时间戳,并根据所述第一访问凭证、所述申请信息及所述第一时间戳计算第一校验和;

利用所述公钥对所述第一校验和、所述第一访问凭证及所述申请信息进行加密,得到所述存储空间申请请求,并发送所述存储空间申请请求至所述安全存储管理模块。

4.根据权利要求3所述的方法,其特征在于,在所述安全存储管理模块利用私钥对所述存储空间申请请求进行解密,得到第一访问凭证及申请信息之后,还包括:

所述安全存储管理模块获取本地时间作为第二时间戳,并根据所述第一访问凭证、所述申请信息及所述第二时间戳计算第二校验和;

判断所述第一校验和与所述第二校验和是否相等;

若否,则拒绝所述存储空间申请请求。

5.根据权利要求1所述的方法,其特征在于,在所述安全存储管理模块随机生成第二访问凭证之后,根据所述申请信息中申请存储空间长度信息分配存储空间之前,还包括:

所述安全存储管理模块通过HMAC算法对所述第一访问凭证和所述第二访问凭证进行散列计算得到所述存储空间的起始地址;

判断所述存储空间是否被占用;

若是,则重新生成所述第二访问凭证,并返回执行通过HMAC算法对所述第一访问凭证和所述第二访问凭证进行散列计算得到所述存储空间的起始地址的步骤。

6.根据权利要求1-5任一项所述的方法,其特征在于,将待存储数据存放至所述存储空间中,包括:

所述安全存储管理模块接收所述进程或所述设备发送的数据存储请求及加密后的所述待存储数据;其中,所述数据存储请求为所述进程或所述设备利用所述公钥加密后的请求;

利用所述私钥对所述数据存储请求进行解密,得到所述第一访问凭证、所述第二访问凭证、数据更新保护密钥、写入信息、第三校验和;

根据所述第一访问凭证及所述第二访问凭证计算所述存储空间的起始地址;

判断所述存储空间是否存在;

若是,则读取所述存储空间的申请信息,并根据所述申请信息判断所述存储空间是否符合访问条件;

若所述存储空间满足所述访问条件,则利用所述数据更新保护密钥解密加密后的所述待存储数据,并将所述待存储数据存入所述存储空间。

7.根据权利要求6所述的方法,其特征在于,还包括:

所述安全存储管理模块接收所述进程或所述设备发送的数据读取请求;其中,所述数据读取请求为所述进程或所述设备利用所述公钥加密后的请求;

利用所述私钥对所述数据读取请求进行解密,得到所述第一访问凭证、所述第二访问凭证、读取信息及数据读取保护密钥;

根据所述第一访问凭证及所述第二访问凭证计算所述存储空间的起始地址;

判断所述存储空间是否存在;

若是,则读取所述存储空间的申请信息,并根据所述申请信息判断所述存储空间是否符合访问条件;

若所述存储空间满足所述访问条件,则根据所述读取信息确定待读取数据,并采用对称加密算法利用所述数据读取保护密钥对所述待读取数据进行加密;

将所述加密后的待读取数据发送至所述进程或所述设备,以使所述进程或所述设备利用所述数据读取保护密钥对所述加密后的待读取数据进行解密,进而读取所述待读取数据。

8.根据权利要求6所述的方法,其特征在于,还包括:

所述安全存储管理模块接收所述进程或所述设备发送的存储空间释放请求;其中,所述存储空间释放请求为所述进程或所述设备利用所述公钥加密后的请求;

利用所述私钥对所述存储空间释放请求进行解密,得到所述第一访问凭证、所述第二访问凭证及删除信息;

根据所述第一访问凭证及所述第二访问凭证计算所述存储空间的起始地址;

判断所述存储空间是否存在;

若是,则读取所述存储空间的申请信息,并根据所述申请信息及所述删除信息判断所述存储空间是否符合删除条件;

若所述存储空间满足所述删除条件,则回收所述存储空间。

9.一种安全数据存储管理的系统,其特征在于,包括安全存储管理模块及进程或设备,其中:

所述进程或所述设备,用于随机生成第一访问凭证;发送利用公钥加密后的存储空间申请请求至安全存储管理模块;利用所述第一访问凭证对加密信息进行解密得到第二访问凭证,并根据所述第一访问凭证及所述第二访问凭证将待存储数据存放至存储空间中;

所述安全存储管理模块,用于利用私钥对所述存储空间申请请求进行解密,得到所述第一访问凭证及申请信息;随机生成所述第二访问凭证,并根据所述第一访问凭证及所述第二访问凭证确定所述存储空间的起始地址,再根据所述申请信息中申请存储空间长度信息分配所述存储空间;使用所述第一访问凭证作为对称密码算法密钥对所述第二访问凭证进行加密得到所述加密信息,并将所述加密信息发送至所述进程或所述设备。

10.一种安全存储管理模块,其特征在于,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现利用私钥对存储空间申请请求进行解密,得到第一访问凭证及申请信息;根据所述申请信息确定存储空间的大小,并随机生成第二访问凭证;使用所述第一访问凭证作为对称密码算法密钥对所述第二访问凭证进行加密得到加密信息,并将所述加密信息发送至进程或设备;其中,所述第一访问凭证为所述进程或所述设备随机生成的访问凭证。

说明书
技术领域

本申请涉及数据存储领域,特别涉及一种安全数据存储管理的方法、系统及安全存储管理模块。

在数据存储和访问过程中,如果缺乏安全、可靠的管理机制,极易遭受重放、篡改、窃听等攻击,导致数据泄露、紊乱、丢失,甚至造成系统奔溃。

通常数据访问主体在发起访问请求时,传统的访问控制方法只是根据访问主体是否具有权限来判断,无法知道发出请求的访问主体是否处于安全的运行环境下。即使访问的主体具有合法的权限,如果处于恶意环境中的访问主体对数据的访问,仍然会造成数据的泄露和非法访问,比如恶意程序能够在访问主体通过访问控制验证并获得数据后,攻击并截获数据。或假冒合法的访问主体身份通过访问控制的验证获得数据的访问权限。

因此,如何保证数据存储过程中的机密性、完整性和可用性是本领域技术人员目前需要解决的技术问题。

本申请的目的是提供一种安全数据存储管理的方法、系统及安全存储管理模块,用于保证数据存储过程中的机密性、完整性和可用性。

为解决上述技术问题,本申请提供一种安全数据存储管理的方法,该方法包括:

进程或设备发送存储空间申请请求至安全存储管理模块;其中,所述存储空间申请请求为所述进程或所述设备利用公钥加密后的请求;

所述安全存储管理模块利用私钥对所述存储空间申请请求进行解密,得到第一访问凭证及申请信息;其中,所述第一访问凭证为所述进程或所述设备随机生成的访问凭证;

所述安全存储管理模块随机生成第二访问凭证,并根据所述第一访问凭证及所述第二访问凭证确定存储空间的起始地址,再根据所述申请信息中申请存储空间长度信息分配存储空间;

所述安全存储管理模块使用所述第一访问凭证作为对称密码算法密钥对所述第二访问凭证进行加密得到加密信息,并将所述加密信息发送至所述进程或所述设备;

所述进程或所述设备利用所述第一访问凭证对所述加密信息进行解密得到所述第二访问凭证,并根据所述第一访问凭证及所述第二访问凭证将待存储数据存放至所述存储空间中。

可选的,在所述进程或所述设备发送存储空间申请请求至安全存储管理模块之前,还包括:

所述安全存储管理模块定期生成公私钥对;其中,所述公私钥对包括所述公钥及所述私钥;

接收所述进程或所述设备发送的身份信息;

根据所述身份信息对所述进程或所述设备进行身份验证;

若验证通过,则将所述公钥发送至所述进程或所述设备。

可选的,所述进程或所述设备发送存储空间申请请求至安全存储管理模块,包括:

所述进程或所述设备组织生成申请信息;其中,所述申请信息包括ID、长度、数据有效期、访问控制列表、描述信息中的至少一项;

随机生成所述第一访问凭证;

获取第一时间戳,并根据所述第一访问凭证、所述申请信息及所述第一时间戳计算第一校验和;

利用所述公钥对所述第一校验和、所述第一访问凭证及所述申请信息进行加密,得到所述存储空间申请请求,并发送所述存储空间申请请求至所述安全存储管理模块。

可选的,在所述安全存储管理模块利用私钥对所述存储空间申请请求进行解密,得到第一访问凭证及申请信息之后,还包括:

所述安全存储管理模块获取本地时间作为第二时间戳,并根据所述第一访问凭证、所述申请信息及所述第二时间戳计算第二校验和;

判断所述第一校验和与所述第二校验和是否相等;

若否,则拒绝所述存储空间申请请求。

可选的,在所述安全存储管理模块随机生成第二访问凭证之后,根据所述申请信息中申请存储空间长度信息分配存储空间之前,还包括:

所述安全存储管理模块通过HMAC算法对所述第一访问凭证和所述第二访问凭证进行散列计算得到所述存储空间的起始地址;

判断所述存储空间是否被占用;

若是,则重新生成所述第二访问凭证,并返回执行通过HMAC算法对所述第一访问凭证和所述第二访问凭证进行散列计算得到所述存储空间的起始地址的步骤。

可选的,将待存储数据存放至所述存储空间中,包括:

所述安全存储管理模块接收所述进程或所述设备发送的数据存储请求及加密后的所述待存储数据;其中,所述数据存储请求为所述进程或所述设备利用所述公钥加密后的请求;

利用所述私钥对所述数据存储请求进行解密,得到所述第一访问凭证、所述第二访问凭证、数据更新保护密钥、写入信息、第三校验和;

根据所述第一访问凭证及所述第二访问凭证计算所述存储空间的起始地址;

判断所述存储空间是否存在;

若是,则读取所述存储空间的申请信息,并根据所述申请信息判断所述存储空间是否符合访问条件;

若所述存储空间满足所述访问条件,则利用所述数据更新保护密钥解密加密后的所述待存储数据,并将所述待存储数据存入所述存储空间。

可选的,还包括:

所述安全存储管理模块接收所述进程或所述设备发送的数据读取请求;其中,所述数据读取请求为所述进程或所述设备利用所述公钥加密后的请求;

利用所述私钥对所述数据读取请求进行解密,得到所述第一访问凭证、所述第二访问凭证、读取信息及数据读取保护密钥;

根据所述第一访问凭证及所述第二访问凭证计算所述存储空间的起始地址;

判断所述存储空间是否存在;

若是,则读取所述存储空间的申请信息,并根据所述申请信息判断所述存储空间是否符合访问条件;

若所述存储空间满足所述访问条件,则根据所述读取信息确定待读取数据,并采用对称加密算法利用所述数据读取保护密钥对所述待读取数据进行加密;

将所述加密后的待读取数据发送至所述进程或所述设备,以使所述进程或所述设备利用所述数据读取保护密钥对所述加密后的待读取数据进行解密,进而读取所述待读取数据。

可选的,还包括:

所述安全存储管理模块接收所述进程或所述设备发送的存储空间释放请求;其中,所述存储空间释放请求为所述进程或所述设备利用所述公钥加密后的请求;

利用所述私钥对所述存储空间释放请求进行解密,得到所述第一访问凭证、所述第二访问凭证及删除信息;

根据所述第一访问凭证及所述第二访问凭证计算所述存储空间的起始地址;

判断所述存储空间是否存在;

若是,则读取所述存储空间的申请信息,并根据所述申请信息及所述删除信息判断所述存储空间是否符合删除条件;

若所述存储空间满足所述删除条件,则回收所述存储空间。

本申请还提供一种安全数据存储管理的系统,该系统包括安全存储管理模块及进程或设备,其中:

所述进程或所述设备,用于随机生成第一访问凭证;发送利用公钥加密后的存储空间申请请求至安全存储管理模块;利用所述第一访问凭证对加密信息进行解密得到第二访问凭证,并根据所述第一访问凭证及所述第二访问凭证将待存储数据存放至存储空间中;

所述安全存储管理模块,用于利用私钥对所述存储空间申请请求进行解密,得到所述第一访问凭证及申请信息;随机生成所述第二访问凭证,并根据所述第一访问凭证及所述第二访问凭证确定所述存储空间的起始地址,再根据所述申请信息中申请存储空间长度信息分配所述存储空间;使用所述第一访问凭证作为对称密码算法密钥对所述第二访问凭证进行加密得到所述加密信息,并将所述加密信息发送至所述进程或所述设备。

本申请还提供一种安全存储管理模块,该安全存储管理模块包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现利用私钥对存储空间申请请求进行解密,得到第一访问凭证及申请信息;根据所述申请信息确定存储空间的大小,并随机生成第二访问凭证;使用所述第一访问凭证作为对称密码算法密钥对所述第二访问凭证进行加密得到加密信息,并将所述加密信息发送至进程或设备;其中,所述第一访问凭证为所述进程或所述设备随机生成的访问凭证。

本申请所提供安全数据存储管理的方法,包括:进程或设备发送存储空间申请请求至安全存储管理模块;其中,存储空间申请请求为进程或设备利用公钥加密后的请求;安全存储管理模块利用私钥对存储空间申请请求进行解密,得到第一访问凭证及申请信息;其中,第一访问凭证为进程或设备随机生成的访问凭证;安全存储管理模块随机生成第二访问凭证,并根据第一访问凭证及第二访问凭证确定存储空间的起始地址,再根据申请信息中申请存储空间长度信息分配存储空间;安全存储管理模块使用第一访问凭证作为对称密码算法密钥对第二访问凭证进行加密得到加密信息,并将加密信息发送至进程或设备;进程或设备利用第一访问凭证对加密信息进行解密得到第二访问凭证,并根据第一访问凭证及第二访问凭证将待存储数据存放至存储空间中。

本申请所提供的技术方案,通过结合非对称密码对进程或设备发送的存储空间申请请求进行加解密和校验,有效地抵御数据存储、访问过程中遭受的重放、篡改、窃听、穷举等攻击,保证数据的机密性和完整性;同时,将交互双方随机生成的访问凭证作为存储块起始地址的计算参数,实现随机存储和隐秘存储,保证了存储位置的机密性,极大的提高了数据存储及访问过程中的机密性、完整性和可用性。本申请同时还提供了一种安全数据存储管理的系统及安全存储管理模块,具有上述有益效果,在此不再赘述。

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例所提供的一种安全数据存储管理的方法的流程图;

图2为本申请实施例所提供的一种存储空间申请请求的生成过程的流程图;

图3为本申请实施例所提供的另一种安全数据存储管理的方法的流程图;

图4为图1所提供的一种安全数据存储管理的方法中S104的一种实际表现方式的流程图;

图5为本申请实施例所提供的一种数据存储请求的生成过程的流程图;

图6为本申请实施例所提供的再一种安全数据存储管理的方法的流程图;

图7为本申请实施例所提供的又一种安全数据存储管理的方法的流程图;

图8为本申请实施例所提供的一种安全数据存储管理的系统的结构图;

图9为本申请实施例所提供的一种安全存储管理模块的结构图。

本申请的核心是提供一种安全数据存储管理的方法、系统及安全存储管理模块,用于保证数据存储过程中的机密性、完整性和可用性。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种安全数据存储管理的方法的流程图。

其具体包括如下步骤:

S101:进程或设备发送存储空间申请请求至安全存储管理模块;

这里提到的存储空间申请请求为进程或设备利用公钥加密后的请求,当进程或设备在完成身份认证后、访问操作前,可从安全存储管理模块中获取公钥,以增强整个数据存储过程中密钥的安全性。

可选的,该存储空间申请请求的生成过程具体也可以为如图2所示的步骤,下面结合图2进行说明。

请参考图2,图2为本申请实施例所提供的一种存储空间申请请求的生成过程的流程图。

其具体包括以下步骤:

S201:进程或设备组织生成申请信息;

这里提到的申请信息为进程或设备依据申请的存储空间大小和使用时间长度等信息组织的申请信息,该申请信息具体可以包括但不限于ID、长度、数据有效期、访问控制列表、描述信息中的至少一项。

S202:随机生成第一访问凭证;

这里提到的第一访问凭证为之后访问存储空间的凭证之一,其具体可以为随机数、随机码或其他信息,本申请对此不作具体限定。

S203:获取第一时间戳,并根据第一访问凭证、申请信息及第一时间戳计算第一校验和;

这里提到的第一校验和为根据进程或设备的第一时间戳结合申请信息及第一访问凭证计算得到,其作用为与安全存储管理模块计算得到的第二校验和进行对比,如果不相等则拒绝存储空间申请;

为了防止重放和数据篡改,本申请引入了时间戳TimeStamp,并且采用哈希算法计算第一校验和:

CheckSum=Hash(CC|Create_Info|TimeStamp1)

其中,CheckSum为第一校验和,CC为第一访问凭证,Create_Info为申请信息,TimeStamp1为第一时间戳;

引入时间戳TimeStamp可以防止重放和数据篡改,时间戳TimeStamp不会携带在该存储空间申请请求中,交互双方参考各自的本地时间。由于交互双方的本地时间不一定一致,另外传输、加解密等操作也带来一定的延迟,因此,需要根据实际安全存储管理模块设置时间戳的精度。

S204:利用公钥对第一校验和、第一访问凭证及申请信息进行加密,得到存储空间申请请求,并发送存储空间申请请求至安全存储管理模块。

由于只有安全存储管理模块有私钥,能对加密信息进行解密,因此可以保证传输过程中的保密性,防止窃听,该加密过程可以为:

根据公式

Create_Request=Asymmetric_Encrypt(CC|Create_Info|CheckSum,Kpublic)进行加密;

其中,Create_Request为该存储空间申请请求,Asymmetric_Encrypt为非对称加密算法,Kpublic为公钥。

在得到第一校验和之后,便可利用从安全存储管理模块中获取到的公钥对第一校验和、第一访问凭证及申请信息进行加密,得到该存储空间申请请求,进而发送到安全存储管理模块中,完成对存储空间的申请。

S102:安全存储管理模块利用私钥对存储空间申请请求进行解密,得到第一访问凭证及申请信息;

安全存储管理模块在接收到进程或设备发送的存储空间申请请求之后,利用私钥对存储空间申请请求进行解密,若能解密则得到第一访问凭证及申请信息,可选的,该解密过程可以为:

根据公式

CC|Create_Info|CheckSum=Asymmetric_Decrypt(Create_Request,Kprivate)进行解密;

其中,Asymmetric_Decrypt为非对称解密算法,Kprivate为私钥。

可选的,若不能正确解密则证明该存储空间申请请求加密所利用的公钥与安全存储管理模块中的私钥并不为同一对密钥,此时还可以返回存储空间申请请求不正确的提示信息至该进程或设备;

这里提到的第一访问凭证即为上述步骤S202中提到的进程或设备随机生成的访问凭证;

可选的,在安全存储管理模块利用私钥对存储空间申请请求进行解密,得到第一访问凭证及申请信息之后,还可以包括如下步骤:

安全存储管理模块获取本地时间作为第二时间戳,并根据第一访问凭证、申请信息及第二时间戳计算第二校验和;

判断第一校验和与第二校验和是否相等;

若否,则拒绝存储空间申请请求。

本申请实施例通过安全存储管理模块获取本地时间作为第二时间戳,并根据第一访问凭证、申请信息及第二时间戳计算第二校验和,然后判断第一校验和与第二校验和是否相等,若不相等,则证明可能存在重放和数据篡改的风险,此时拒绝该存储空间申请请求;若相等,则可继续执行步骤S103。

S103:安全存储管理模块随机生成第二访问凭证,并根据第一访问凭证及第二访问凭证确定存储空间的起始地址,再根据申请信息中申请存储空间长度信息分配存储空间;

这里提到的第二访问凭证用于与第一访问凭证计算得到存储空间的起始地址;

可选的,在安全存储管理模块随机生成第二访问凭证之后,根据申请信息中申请存储空间长度信息分配存储空间之前,还可以包括如下步骤:

安全存储管理模块通过HMAC算法对第一访问凭证和第二访问凭证进行散列计算得到存储空间的起始地址;

判断存储空间是否被占用;

若是,则重新生成第二访问凭证,并返回执行通过HMAC算法对第一访问凭证和第二访问凭证进行散列计算得到存储空间的起始地址的步骤;

可选的,这里提到的通过HMAC算法对第一访问凭证和第二访问凭证进行散列计算得到存储空间的起始地址,其具体可以为:

根据公式计算存储空间的起始地址;

其中,CS为第二访问凭证,M为存储空间的容量,HMAC为密钥相关的哈希运算消息认证码,opad和ipad均为填充参数。

本申请实施例通过HMAC算法对第一访问凭证和第二访问凭证进行散列计算得到存储空间的起始地址,然后判断该存储空间是否被占用;若被占用,则证明该存储空间不可用,此时重新生成第二访问凭证,并再次进行验证;若未被占用,则证明该存储空间可用,此时便可继续执行步骤S104。

S104:安全存储管理模块使用第一访问凭证作为对称密码算法密钥对第二访问凭证进行加密得到加密信息,并将加密信息发送至进程或设备;

可选的,这里提到的,安全存储管理模块使用第一访问凭证作为对称密码算法密钥对第二访问凭证进行加密得到加密信息,具体可以根据公式

计算得到;

其中,EN为加密信息,Symmetric_Encrypt为对称加密算法。

S105:进程或设备利用第一访问凭证对加密信息进行解密得到第二访问凭证,并根据第一访问凭证及第二访问凭证将待存储数据存放至存储空间中。

可选的,这里提到的,进程或设备利用第一访问凭证对加密信息进行解密得到第二访问凭证,具体可以根据公式

CS|CkeckSum=Symmetric_Decrypt(EN,CC)计算得到;

其中,EN为加密信息,Symmetric_Decrypt为对称解密算法。

在返回响应过程计算校验和时没有引入时间戳,原因是因为第一访问凭证是在每次请求存储空间时随机生成的,因此不存在重放的风险。

由于第一访问凭证从进程或设备发送给安全存储管理模块过程中采用非对称密码算法的公钥进行加密,只有安全存储管理模块拥有私钥可以进行解密。第二访问凭证从安全存储管理模块返回给进程或设备时采用第一访问凭证作为对称密码算法的密钥进行加密,仅进程或设备知道第一访问凭证可以进行解密。通过密码算法保证了传输过程中的机密性,并且在内存空间结束后安全存储管理模块会丢弃第一访问凭证和第二访问凭证。

由于第一访问凭证和第二访问凭证分别由进程或设备及安全存储管理模块随机生成,并且交互过程中使用加密传输,无法通过穷举、窃听等攻击手段进行破解,保证了仅有空间申请者或其授权者可以访问该存储空间。

基于上述技术方案,本申请所提供的一种安全数据存储管理的方法,通过结合非对称密码对进程或设备发送的存储空间申请请求进行加解密,有效地抵御数据存储、访问过程中遭受的重放、篡改、窃听、穷举等攻击,保证数据的机密性和完整性;同时,将交互双方随机生成的访问凭证作为存储块起始地址的计算参数,实现随机存储和隐秘存储,保证了存储位置的机密性,极大的提高了数据存储及访问过程中的机密性、完整性和可用性。

针对于上一实施例的步骤S101,在进程或设备发送存储空间申请请求至安全存储管理模块之前,还可以包括如图3所示的步骤,下面结合图3进行说明。

请参考图3,图3为本申请实施例所提供的另一种安全数据存储管理的方法的流程图。

其具体包括以下步骤:

S301:安全存储管理模块定期生成公私钥对;

这里提到的公私钥对包括公钥及私钥,经过预设时间后自动更新。

S302:接收进程或设备发送的身份信息;

S303:根据身份信息对进程或设备进行身份验证;

S304:若验证通过,则将公钥发送至进程或设备。

可选的,当验证不通过时,安全存储管理模块还可以返回身份认证未通过的提示信息至该进行或设备。

基于上述实施例,针对于上一实施例的步骤S104,其中所描述的将待存储数据存放至存储空间中,其具体也可以为如图4所示的步骤,下面结合图4 进行说明。

请参考图4,图4为图1所提供的一种安全数据存储管理的方法中S104的一种实际表现方式的流程图。

其具体包括以下步骤:

S401:安全存储管理模块接收进程或设备发送的数据存储请求及加密后的待存储数据;

其中,该数据存储请求为进程或设备利用公钥加密后的请求;

可选的,该数据存储请求的生成过程具体可以为如图5所示的步骤,下面结合图5进行说明。

请参考图5,图5为本申请实施例所提供的一种数据存储请求的生成过程的流程图。

S501:进程或设备组织生成写入信息;

这里提到的写入信息为进程或设备依据写入数据组织的信息,该写入信息具体可以包括但不限于ID、写入数据的长度Len、偏移地址offset中的至少一项。

S502:随机生成数据更新保护密钥,并加密待存储数据;

由于非对称密码算法加密速度较慢,不适合加密长数据,为了保证数据的机密性同时提高效率,将采用对称密码算法加密写入数据,并且采用“一次一密”的方式,每次数据更新随机生成数据更新保护密钥;

可选的,可以根据公式Enc_Write_Data=Symmetric_Encrypt(Write_Data,KW)对待存储数据进行加密;

其中,Write_Data为待存储数据,KW为更新保护密钥,Enc_Write_Data为加密后的待存储数据。

S503:获取第三时间戳,并根据第一访问凭证、第二访问凭证、更新保护密钥、写入信息、第三时间戳、加密后的待存储数据计算第三校验和;

可选的,其具体可以为:

根据公式

CheckSum=Hash(CC|CS|KW|Write_Info|TimeStamp3|Enc_Write_Data)计算第三校验和;

其中,Write_Info为写入信息,TimeStamp3为第三时间戳。

S504:利用公钥对第三校验和、第一访问凭证、第二访问凭证、更新保护密钥及写入信息进行加密,得到数据存储请求。

可选的,其具体可以为:

根据公式

Write_Request=Asymmetric_Encrypt(CC|CS|KW|Write_Info|CheckSum,Kpublic)

进行加密,得到数据存储请求;

其中,Write_Request为数据存储请求。

S402:利用私钥对数据存储请求进行解密,得到第一访问凭证、第二访问凭证、数据更新保护密钥、写入信息、第三校验和;

可选的,其具体可以为:

根据公式

KC|KS|KW|Write_Info|CheckSum=Asymmetric_Decrypt(Write_request,Kprivate)

进行解密;

可选的,在安全存储管理模块利用私钥对数据存储请求进行解密,得到第一访问凭证、第二访问凭证、数据更新保护密钥、写入信息、第三校验和之后,还可以包括如下步骤:

安全存储管理模块获取本地时间作为第四时间戳,并根据第一访问凭证、第二访问凭证、更新保护密钥、写入信息、第四时间戳、加密后的待存储数据计算第四校验和;

判断第四校验和与第三校验和是否相等;

若否,则拒绝该数据存储请求。

S403:根据第一访问凭证及第二访问凭证计算存储空间的起始地址;

S404:判断存储空间是否存在;

若是,则进入步骤S405;

可选的,当该存储空间不存在时,还可以返回该存储空间不存在的提示信息至该进程或设备。

S405:读取存储空间的申请信息,并根据申请信息判断存储空间是否符合访问条件;

若是,则进入步骤S406;

可选的,当该存储空间不符合访问条件时,还可以返回该存储空间不符合访问条件的提示信息至该进程或设备。

可选的,根据申请信息判断存储空间是否符合访问条件,其具体可以为:判断该id是否允许访问、有效时间是否超时、访问是否越界(根据offset和 len)等。

S406:利用数据更新保护密钥解密加密后的待存储数据,并将待存储数据存入存储空间。

可选的,可以根据公式Write_Data=Symmetric_Decrypt(Enc_Write_Data,KW)解密加密后的待存储数据。

由于更新密钥由访问者在每次访问时随机生成,实现“一次一密”,采用对称密码算法对写入数据进行加密,并且与第一访问凭证、第二访问凭证一同采用非对称密码算法的公钥进行加密后发送,只有系统拥有私钥可以进行解密得到更新密钥,再对加密的数据进行解密。

优选的,在上述实施例的基础上,数据的写入流程与数据的读取流程类似,其具体也可以为如图6所示的步骤,下面结合图6进行说明。

请参考图6,图6为本申请实施例所提供的再一种数据存储管理的方法的流程图。

其具体包括以下步骤:

S601:安全存储管理模块接收进程或设备发送的数据读取请求;

这里提到的数据读取请求即为进程或设备利用公钥加密后的请求;

S602:利用私钥对数据读取请求进行解密,得到第一访问凭证、第二访问凭证、读取信息及数据读取保护密钥;

可选的,步骤S602具体可以为:

利用私钥对数据读取请求进行解密,得到第一访问凭证、第二访问凭证、读取信息、数据读取保护密钥及第五校验和;

其中,该第五校验和为进程或设备获取第五时间戳,并根据第一访问凭证、第二访问凭证、数据读取保护密钥、读取信息、第五时间戳计算得到的;

进一步的,在利用私钥对数据读取请求进行解密,得到第一访问凭证、第二访问凭证、读取信息、数据读取保护密钥及第五校验和之后,还可以包括如下步骤:

安全存储管理模块获取本地时间作为第六时间戳,并根据第一访问凭证、第二访问凭证、数据读取保护密钥、读取信息及第六时间戳计算第六校验和;

判断第六校验和与第五校验和是否相等;

若否,则拒绝该数据读取请求。

S603:根据第一访问凭证及第二访问凭证计算存储空间的起始地址;

S604:判断存储空间是否存在;

若是,则进入步骤S605。

S605:读取存储空间的申请信息,并根据申请信息判断存储空间是否符合访问条件;

若存储空间满足访问条件,则步骤S606。

S606:根据读取信息确定待读取数据,并采用对称加密算法利用数据读取保护密钥对待读取数据进行加密;

S607:将加密后的待读取数据发送至进程或设备,以使进程或设备利用数据读取保护密钥对加密后的待读取数据进行解密,进而读取待读取数据。

基于上述实施例,请参考图7,图7为本申请实施例所提供的又一种安全数据存储管理的方法的流程图。

其具体包括如下步骤:

S701:安全存储管理模块接收进程或设备发送的存储空间释放请求;

其中,存储空间释放请求为进程或设备利用公钥加密后的请求;

S702:利用私钥对存储空间释放请求进行解密,得到第一访问凭证、第二访问凭证及删除信息;

可选的,步骤S702具体可以为:

利用私钥对存储空间释放请求进行解密,得到第一访问凭证、第二访问凭证、删除信息及第七校验和;

其中,该第七校验和为进程或设备获取第七时间戳,并根据第一访问凭证、第二访问凭证、删除信息及第七时间戳计算得到的;

进一步的,在利用私钥对存储空间释放请求进行解密,得到第一访问凭证、第二访问凭证、删除信息及第七校验和之后,还可以包括如下步骤:

安全存储管理模块获取本地时间作为第八时间戳,并根据第一访问凭证、第二访问凭证、删除信息及第八时间戳计算第八校验和;

判断第八校验和与第七校验和是否相等;

若否,则拒绝该存储空间释放请求。

S703:根据第一访问凭证及第二访问凭证计算存储空间的起始地址;

S704:判断存储空间是否存在;

若是,则进入步骤S705;

可选的,当该存储空间不存在时,还可以返回该存储空间不存在的提示信息至该进程或设备。

S705:读取存储空间的申请信息,并根据申请信息及删除信息判断存储空间是否符合删除条件;

若存储空间满足删除条件,则进入步骤S706;

可选的,当该存储空间不满足删除条件时,还可以返回该存储空间不满足删除条件的提示信息至该进程或设备。

S706:回收存储空间。

可选的,为了防止单个进程长期占用存储空间,还可以在存储空间的申请信息中存储该存储空间的有效时间,以便管理模块定期扫描存储空间,清除过期数据。

请参考图8,图8为本申请实施例所提供的一种安全数据存储管理的系统的结构图。

该系统可以包括安全存储管理模块200及进程或设备100,其中:

进程或设备100,用于随机生成第一访问凭证;发送利用公钥加密后的存储空间申请请求至安全存储管理模块;利用第一访问凭证对加密信息进行解密得到第二访问凭证,并根据第一访问凭证及第二访问凭证将待存储数据存放至存储空间中;

安全存储管理模块200,用于利用私钥对存储空间申请请求进行解密,得到第一访问凭证及申请信息;随机生成第二访问凭证,并根据第一访问凭证及第二访问凭证确定存储空间的起始地址,再根据申请信息中申请存储空间长度信息分配存储空间;使用第一访问凭证作为对称密码算法密钥对第二访问凭证进行加密得到加密信息,并将加密信息发送至进程或设备100。

进一步的,该安全存储管理模块200还可以用于:定期生成公私钥对;其中,公私钥对包括公钥及私钥;接收进程或设备100发送的身份信息;根据身份信息对进程或设备100进行身份验证;若验证通过,则将公钥发送至进程或设备100。

进一步的,进程或设备100发送存储空间申请请求至安全存储管理模块 200,包括:

进程或设备100组织生成申请信息;其中,申请信息包括ID、长度、数据有效期、访问控制列表、描述信息中的至少一项;

随机生成第一访问凭证;

获取第一时间戳,并根据第一访问凭证、申请信息及第一时间戳计算第一校验和;

利用公钥对第一校验和、第一访问凭证及申请信息进行加密,得到存储空间申请请求,并发送存储空间申请请求至安全存储管理模块200。

进一步的,该安全存储管理模块200还可以用于获取本地时间作为第二时间戳,并根据第一访问凭证、申请信息及第二时间戳计算第二校验和;判断第一校验和与第二校验和是否相等;若否,则拒绝存储空间申请请求。

进一步的,该安全存储管理模块200还可以用于通过HMAC算法对第一访问凭证和第二访问凭证进行散列计算得到存储空间的起始地址;判断存储空间是否被占用;若是,则重新生成第二访问凭证,并返回执行通过HMAC 算法对第一访问凭证和第二访问凭证进行散列计算得到存储空间的起始地址的步骤。

进一步的,该安全存储管理模块200还可以用于接收进程或设备100发送的数据存储请求及加密后的待存储数据;其中,数据存储请求为进程或设备100利用公钥加密后的请求;利用私钥对数据存储请求进行解密,得到第一访问凭证、第二访问凭证、数据更新保护密钥、写入信息、第三校验和;根据第一访问凭证及第二访问凭证计算存储空间的起始地址;判断存储空间是否存在;若是,则读取存储空间的申请信息,并根据申请信息判断存储空间是否符合访问条件;若存储空间满足访问条件,则利用数据更新保护密钥解密加密后的待存储数据,并将待存储数据存入存储空间;

可选的,在安全存储管理模块200利用私钥对数据存储请求进行解密,得到第一访问凭证、第二访问凭证、数据更新保护密钥、写入信息、第三校验和之后,还可以获取本地时间作为第四时间戳,并根据第一访问凭证、第二访问凭证、更新保护密钥、写入信息、第四时间戳、加密后的待存储数据计算第四校验和;判断第四校验和与第三校验和是否相等;若否,则拒绝该数据存储请求。

进一步的,该安全存储管理模块200还可以用于接收进程或设备100发送的数据读取请求;其中,数据读取请求为进程或设备100利用公钥加密后的请求;利用私钥对数据读取请求进行解密,得到第一访问凭证、第二访问凭证、读取信息及数据读取保护密钥;根据第一访问凭证及第二访问凭证计算存储空间的起始地址;判断存储空间是否存在;若是,则读取存储空间的申请信息,并根据申请信息判断存储空间是否符合访问条件;若存储空间满足访问条件,则根据读取信息确定待读取数据,并采用对称加密算法利用数据读取保护密钥对待读取数据进行加密;将加密后的待读取数据发送至进程或设备100,以使进程或设备100利用数据读取保护密钥对加密后的待读取数据进行解密,进而读取待读取数据;

进一步的,在安全存储管理模块200利用私钥对数据读取请求进行解密,得到第一访问凭证、第二访问凭证、读取信息、数据读取保护密钥及第五校验和之后,还可以获取本地时间作为第六时间戳,并根据第一访问凭证、第二访问凭证、数据读取保护密钥、读取信息及第六时间戳计算第六校验和;判断第六校验和与第五校验和是否相等;若否,则拒绝该数据读取请求;其中,该第五校验和为进程或设备获取第五时间戳,并根据第一访问凭证、第二访问凭证、数据读取保护密钥、读取信息、第五时间戳计算得到的。

进一步的,该安全存储管理模块200还可以用于接收进程或设备100发送的存储空间释放请求;其中,存储空间释放请求为进程或设备100利用公钥加密后的请求;利用私钥对存储空间释放请求进行解密,得到第一访问凭证、第二访问凭证及删除信息;根据第一访问凭证及第二访问凭证计算存储空间的起始地址;判断存储空间是否存在;若是,则读取存储空间的申请信息,并根据申请信息及删除信息判断存储空间是否符合删除条件;若存储空间满足删除条件,则回收存储空间;

进一步的,在安全存储管理模块200利用私钥对存储空间释放请求进行解密,得到第一访问凭证、第二访问凭证、删除信息及第七校验和之后,还可以获取本地时间作为第八时间戳,并根据第一访问凭证、第二访问凭证、删除信息及第八时间戳计算第八校验和;判断第八校验和与第七校验和是否相等;若否,则拒绝该存储空间释放请求;其中,该第七校验和为进程或设备获取第七时间戳,并根据第一访问凭证、第二访问凭证、删除信息及第七时间戳计算得到的。

由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

请参考图9,图9为本申请实施例所提供的一种安全存储管理模块的结构图。

该安全存储管理模块900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据 944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932 和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在安全存储管理模块900上执行存储介质930中的一系列指令操作。

安全存储管理模块900还可以包括一个或一个以上电源929,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM, LinuxTM,FreeBSDTM等等。

上述图1至图7所描述的安全数据存储管理的方法中的步骤由安全存储管理模块基于该图9所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置、设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种安全数据存储管理的方法、系统及安全存储管理模块进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

本文发布于:2023-04-13 08:17:38,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/85906.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图