本发明涉及加密存储技术及隐私保护,具体是一种动态获取密钥及加密文件的方法。
背景技术:
随着科技在进步,人们获取信息和存储信息的方式发生了很大变化。这些变化不断满足了人们交流、获取信息、记录信息的便捷需求。但随之而来的数据安全性和隐私性却成为了一大难题。信息安全技术经过多年的发展,已经从密码技术发展到了隐藏技术和加密技术,但在信息隐藏技术的应用过程中,人们发现单纯的用各种信息隐藏算法或者加密算法对数据加密时,攻击者很有可能较容易的提取出秘密信息,一旦服务器遭到破坏,用户的重要文件将无法得到保护。
技术实现要素:
针对此问题,本发明提出了一种新的解决方案,即一种具有主动式动态密钥分发机制的安全云存储方法。
本发明按以下技术方案实现:
一种具有主动式动态密钥分发机制的安全云存储方法,该方法为:密钥是由密钥认证中心按照固定时间周期随机生成的;它包括客户端,密钥认证中心,存储服务器;通过架设密钥认证中心生成动态密钥来加密文件,公共的密钥认证中心可以在公网上访问,生成密钥的算法为动态的且密钥更新的周期可自行设置,通过客户端向密钥认证中心发送命令获取密钥来加密或者解密文件,加密的文件通过客户端可同步到存储服务器,公共的密钥认证中心维护用户表和密钥表,存储服务器维护用户表和文件表。
当客户端用户需要上传文件至存储服务器时,首先发送upload命令至密钥认证中心,密钥认证中心首先验证用户是否合法,当用户通过验证后,密钥认证中心根据系统当前时间到密钥表中匹配最佳密钥并返回到客户端,客户端收到密钥后加密文件并上传至存储服务器,存储服务器收到upload命令后,同样先验证用户,通过验证后将文件存入数据库中,若验证用户不合法则将返回错误信息到客户端。
当客户端需要下载文件时,首先发送download命令至存储服务器,存储服务器收到命令后,先验证用户,通过验证后,将根据请求的文件路径取出文件并返回到客户端,客户端收到加密的文件后,会向密钥认证中心发送unlock命令请求密钥解密文件。其中,公共的密钥认证中心维护用户表和密钥表,存储服务器维护用户表和文件表。本发明实现了存储与加密的分离。
本发明有益效果:
本发明通过架设密钥认证中心和存储服务器实现了存储与加密的分离,动态生成的密钥是由密钥认证中心按照固定时间周期主动生成的。即使存储与加密有一方被不法分子获得,其得到的也只是一堆无效的信息;只有密钥认证中心和存储服务器联动通过客户端用户才可获得有效数据。
附图说明
下面结合附图对本发明作进一步说明。
图1为发明中的整体架构示意图;
图2为本方法的上传加密文件工作流程图;
图3为本方法的下载加密文件工作流程图;
图4为本方法的动态加密表的分布。
图5为客户端与服务器通信包格式示意图。
具体实施方式
以下结合附图,通过具体实施例对本发明作进一步的说明。
如图1所示,一种具有主动式动态密钥分发机制的安全云存储方法,该方法为:密钥是由密钥认证中心按照固定时间周期随机生成的;它包括客户端,密钥认证中心,存储服务器;通过架设密钥认证中心生成动态密钥来加密文件,公共的密钥认证中心可以在公网上访问,生成密钥的算法为动态的且密钥更新的周期可自行设置,通过客户端向密钥认证中心发送命令获取密钥来加密或者解密文件,加密的文件通过客户端可同步到存储服务器,公共的密钥认证中心维护用户表和密钥表,存储服务器维护用户表和文件表。
动态获取密钥机制工作如下:
步骤一、密钥认证中心在初始化时会设置密钥固定变化周期T;
步骤二、密钥认证中心每间隔T时长查找密钥表中字段dateTime最大的时间hmax,若密钥表中不存在记录,则取系统当前时间为hmax;
步骤三、密钥认证中心计算出hmax+T的和记为hnext;
步骤四、密钥认证中心则生成一个随机的密钥privateKey,并将private和hnext存入密钥表中以备用户使用。
步骤五、密钥认证中心查找密钥表中字段dateTime最大的时间hmax;
步骤六、重复步骤二。
如图2所示,上传加密文件工作流程如下:
步骤一、密钥认证中心收到客户端upload命令;
步骤二、密钥认证中心查找用户表验证客户端用户是否合法;
步骤三、若合法,则进行步骤四,否则返回错误信息给客户端;
步骤四、密钥认证中心得到系统当前时间hnow;
步骤五、密钥认证中心查找密钥表,根据请求密钥的时间hnow匹配最佳密钥privateKey,并将privateKey返回到客户端;
步骤六、客户端得到密钥privateKey后加密需要上传的文件,加密后的文件将被同步到存储服务器;
步骤七、存储服务器收到文件后查找用户表验证客户端用户是否合法;
步骤八、若合法,则进行步骤九,否则返回错误信息给客户端;
步骤九、存储服务器将文件以及加密密钥的时间记录到文件表中。
如图3所示,下载加密的文件工作流程如下:
步骤一、存储服务器收到客户端download命令;
步骤二、存储服务器查找用户表验证客户端用户是否合法;
步骤三、若合法,则进行步骤四,否则返回错误信息给客户端;
步骤四、存储服务器将加密的时间dateTime及加密文件返回给客户端;
步骤五、客户端发送unlock命令到密钥认证中心获取文件所对应的密钥解密;
步骤六、密钥认证中心查找用户表验证客户端用户是否合法;
步骤七、若合法,则进行步骤八,否则返回错误信息给客户端;
步骤八、密钥认证中心查找密钥表,得到dateTime所对应的密钥privateKey,并将其返回给客户端;
步骤九、客户端得到密钥privateKey后解密文件供用户使用。
如图4所示,为方法中设计的三张表存在的位置:
用户表:用户表存在密钥认证中心和存储服务器中,用来验证用户的合法性,以及在密钥认证中心中和密钥表联合使用共同管理密钥,在存储服务器中和文件表联合使用共同管理文件;用户表中包含Id、userName、password字段;
密钥表:密钥表存在密钥认证中心中,用来管理每个用户的加密文件密钥;密钥表包含Id、dateTime、privateKey;
文件表:文件表存在存储服务器中,用来管理每个用户的文件,文件表包含Id、dateTime、fileData。
客户端和服务端通信的包格式如图5所示,涉及文件加密解密的命令有如下3种形式:
upload命令:用于客户端向密钥认证中心请求密钥来加密文件上传到存储服务器;
download命令:用于客户端向存储服务器请求加密文件下载到客户端;
unlock命令:用于客户端向密钥认证中心请求密钥解密文件。
本发明通过架设密钥认证中心和存储服务器实现了存储与加密的分离,动态生成的密钥是由密钥认证中心按照固定时间周期主动生成的。即使存储与加密有一方被不法分子获得,其得到的也只是一堆无效的信息;只有密钥认证中心和存储服务器联动通过客户端用户才可获得有效数据。
以上所述,仅是本发明的设计方案,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何的简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。