CN103595730B - 一种密文云存储方法和*** - Google Patents
一种密文云存储方法和*** Download PDFInfo
- Publication number
- CN103595730B CN103595730B CN201310626060.XA CN201310626060A CN103595730B CN 103595730 B CN103595730 B CN 103595730B CN 201310626060 A CN201310626060 A CN 201310626060A CN 103595730 B CN103595730 B CN 103595730B
- Authority
- CN
- China
- Prior art keywords
- data
- ciphertext
- user
- key
- encryption
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种密文云存储方法和***,在至少一个客户端和云端服务器组成的***中,存储方法为:1)用户在客户端存放数据中选择采用密文和/或明文进行数据同步,并对密文选择加密算法;2)使用基于用户身份提供的认证参数生成主密钥,在客户端采用主密钥+加解密密钥的两级密钥对密文同步的数据进行加密并对该主密钥进行备份;3)在客户端和云端同步密文及密文索引;或在云端和客户端同步明文同步数据后在云端建立明文索引;4)将明文和/或密文存储在本地私有云存储服务器或者根据用户请求的挂载点,存储在云存储提供商存储服务器。本发明在终端丢失不会丢失数据,且若防护不当仅损失文件的密文形式,同时存储***可对接多个云服务提供商。
Description
技术领域
本发明涉及信息安全领域,具体地说,涉及一种云存储环境下实现用户数据加密存储和明密文查询的方法和***。
背景技术
随着智能手机的出现,网络接入设备日益多元化。这些接入网络的智能终端往往也具备一定的数据获取、存储和处理能力。从用户的视角来看,同时拥有多个智能计算设备(如PC、笔记本、智能手机、平板电脑等)已经成为常态,如何在多个异构终端之间维护一个统一的用户文件视图成为必要的需求。
与此同时,云计算的日渐普及为用户实现异构平台上的数据同步提供了一种解决方案。云计算是一种新型的计算模型,它可以将网络、存储、应用和服务等资源管理在一个可配置的共享资源池之内,并将这些资源以服务的形式提供给用户,用户可以便捷地从资源池中获取资源而不必自行维护和管理基础设施。例如:百度云盘为用户提供1T的免费在线存储空间,用户可以将自己的数据文件上传至云端,并在其它的终端上获取这些文件的副本。亚马逊的云服务则同时提供存储空间和计算能力,用户仅需要支付很低的费用即可获取大量的计算和存储资源。
这些云计算方案在一定程度上解决了用户备份文件的需求,但在安全性方面存在着显著的缺陷。由于云模式的特点,数据所有者不再维护存储数据的载体,用户不管选择哪家云服务提供商都必须对其完全信任。但在现实中,用户的数据,尤其是使用智能终端采集的数据(例如:个人照片、通信记录等)往往与隐私相关,用户并不希望将其完全的托付给存储服务商。缺乏有效的数据安全防护手段已成为阻碍云服务推广的最重要原因之一。现有的技术方案所面临的主要挑战包括:
1)终端丢失的风险。数据随终端的丢失而丢失,即便采用了云同步方案,以明文形式存在于终端的数据也会产生泄密风险。
2)云服务提供商滥用权限的风险。云服务提供商基于商业目的对用户数据进行窥探和分析。例如:Google和Baidu等公司普遍采用的分析引擎,可能涉及用户的使用习惯等隐私信息。
3)云服务提供商防护不当的风险。云服务提供商没有提供足够的安全防护,管理上出现漏洞或遭受黑客攻击,导致的用户数据泄漏。例如:GoogleDOC发生的泄密事件,用户看到了不属于自己的数据。
4)云服务提供商倒闭的风险。一旦云服务提供商倒闭,用户是否能取回存在放在云端的数据将成为一个重要问题。雅虎于2013年关闭了邮件业务,如果此类事件出现在云服务提供商身上,类似问题也会凸显。
已公开的发明专利申请,公开号:CN102428686用于安全保护云中的数据的***和方法,提供了一种安全可集成的数据存储到云计算资源中并与云计算资源传送数据的任意合适***中的安全数据解析器。该安全数据解析器解析数据,然后将该数据分割为独立存储或传送的多个部分。为了增加安全性,可利用原始数据、数据的部分或者这二者的加密。该方法主要提供安全的存储和传输安全。未提供密钥管理的详细策略,单一密钥没有二级密钥能保证数据安全。不能对密文进行检索,没有提供客户端的文件操作流程。不能有效解决与第三方云存储服务器的对接。
已公开的发明专利申请,申请号:201010595149.0一种面向密文云存储的文档检索方法与***,该方法以云计算为背景,使用客户端生成的对称密钥分别加密索引文件的索引词、原文件生成密文索引文件和密文,使用用户主密钥加密对称密钥生成密钥密文,存储在云端。其中,服务器端保存一个索引表,用于存储用户用其索引密钥加密所上传文档的属性元信息所得到的密文;在检索时,客户端先从服务器端得到用户索引密钥的密文,然后利用用户的主密钥进行解密,然后用得到的索引密钥对属性元信息加密并将属性元信息密文发送到服务器端,服务器端利用该属性元信息密文对索引表进行检索,从而得到满足条件的文档记录并返回给客户端。该方法不提供明文的查询,功能不全;不提供对第三方云提供商的对接功能,成本高;密钥管理功能薄弱,不能更新用户的密钥,且不提供客户端的密钥存储、获取、更新、备份等一系列解决方案;不提供客户端的同步功能及同步策略,用户文件只能一次加密云存储,不提供客户端的基于透明加解密功能的文件操作流程;且该方案的安全性存在漏洞,由于对索引词和原文使用同一加密密钥,而索引词都是经过分词之后的简单的关键字,根据频度的密码分析可以对其破译,获取对称密钥,从而可以获得原文的信息。
发明内容
针对上述问题,本发明的目的在于提出一种密文云存储方法和***,为用户提供了较为完备的数据安全防护手段。这一方法可以有效地提升用户的数据安全防护和隐私保护能力。可以打消用户选用云方案的顾虑,对于促进云计算的发展、增加信息***的使用效率、促进节能减排都具有十分重要的意义。
为了实现上述目的,本发明的技术方案为:一种密文云存储方法,在客户端和云端建立同步连接,其步骤为:
1)用户在客户端存放的数据中选择采用密文和/或明文进行数据同步,并对所述密文选择加密算法;
2)使用基于用户身份提供的认证参数生成主密钥,并根据所述主密钥获取密文预置加解密密钥或生成对应的密文加解密密钥,在所述客户端采用主密钥+加解密密钥的两级密钥对密文同步的数据进行加密并建立密文索引并对该主密钥进行备份;
3)在所述客户端和云端同步所述密文及密文索引并删除在客户端上的密文索引和密文同步的数据;或在所述云端和客户端同步所述明文同步数据后在所述云端建立明文索引;并实现加解密过程对用户的透明:
4)将所述明文和/或密文存储在本地私有云存储服务器或者根据用户请求的挂载点,存储在云存储提供商的存储服务器。
更进一步,同步所述明文的方法包括数据的上传、下载或删除,通过下述方法实现对用户明文同步数据的同步和更新:
1)启动时加载数据监控服务,并根据本地数据库读取到的数据列表生成或维护数据监控列表;
2)根据获取的数据监控列表,依照数据名字段和数据在服务器上的路径字段产生数据和列表的一一映射,将监控列表里的数据与本地数据关联;若是自动同步,则数据监控器监控本地数据的状态,若数据状态包括属性同步的最新时间,数据修改时间,数据哈希值发生改变,则触发数据同步的事件;若是手动出发同步操作,则直接触发数据同步的事件;
3)所述数据监控器获取同步操作,检查客户端本地数据是否存在,若所述本地数据存在,检测本地属性的元数据信息是否与云存储服务器相同,所述本地属性的元数据信息包括数据修改时间和固定长度的数据散列值,以及数据同步时间;
4)若数据不存在,则驱动进行下载数据属性元数据和明文同步数据;
5)若所述云存储服务器数据修改,则经驱动进行下载,将云服务器数据拉取至本地,并更新本地数据属性元数据;
6)若所述客户端本地数据修改则包括:初次上传、服务端未有元数据的情况,经驱动进行上传,将客户端本地数据、数据属性元数据上传至云存储服务器;
7)若所述云存储服务器数据和客户端数据同时被修改,则根据用户选择经驱动进行包括:取消操作、重写数据、附加保留的冲突解决。
更进一步,同步所述密文的方法包括数据的上传、下载或删除,通过下述方法实现对用户密文同步数据的同步和更新:
1)启动时加载数据监控服务,并根据本地数据库读取到的数据列表生成或维护数据监控列表;
2)根据获取的数据监控列表,依照数据名字段和数据在服务器上的路径字段产生数据和列表的一一映射,将监控列表里的数据与本地数据关联;若是自动同步,则数据监控器监控本地数据的状态,若数据状态包括属性同步的最新时间,数据修改时间,数据哈希值发生改变,则触发数据同步的事件;若是手动出发同步操作,则直接触发数据同步的事件;
3)所述数据监控器获取同步操作,检查客户端本地数据是否存在,若所述本地数据存在,检测本地属性的元数据信息是否与云存储服务器相同,所述本地属性的元数据信息包括数据修改时间和固定长度的数据散列值,以及数据同步时间;
4)若数据不存在,则驱动进行下载数据属性元数据和明文同步数据;
5)若所述云存储服务器数据修改,则经驱动进行下载,将云服务器数据拉取至本地,并更新本地数据属性元数据;
6)若所述客户端本地数据修改则包括:初次上传、服务端未有元数据的情况,经驱动进行上传,将客户端本地数据、数据属性元数据上传至云存储服务器;
7)对于上传,需要依次生成密文索引,加密数据生成密文,然后经驱动将密文数据、密文索引、及密文元数据属性上传到云存储服务器;
8)对于下载,由于密文数据不能实现增量更新,故在冲突处理时判断是否为密文,若为密文,则根据用户判断之进行取消操作或重写文件。
更进一步,所述同步明密文数据类型包括:文件、sqlite数据库、SharedPreferences。
更进一步,所述两级密钥加密通过下述方法实现:
1)运行时从内存读取主密钥同时从内存缓存或者数据库中读取存储的加解密密钥,
2)在用户第一次使用客户端时,根据用户提供的相应认证参数,生成所述主密钥,同时对该主密钥进行备份;
3)用户每次在进行密文云存储时,根据所述认证参数从存储数据库中读取所述存储的主密钥的固定长度的单项散列值,与用户所提供的所述认证参数利用相同算法生成密钥的固定长度的单项散列值进行比对;
4)当查找所述加解密密钥时,依据数据加密属性元数据信息和用户加密方案查找存储的加解密密钥,并使用主密钥解密所述存储的加解密密钥;
5)若未查找到所述存储的加解密密钥,则生成加解密密钥,并进行密钥备份;将主密钥的固定长度的单项散列值,以及经主密钥加密后的加解密密钥备份到数据库和云端服务器;同时将加密后的加解密密钥和数据映射关系表也备份到云端。
更进一步,所述主密钥的认证参数包括:用户口令或者用户指纹、声音、虹膜的生物特征。
更进一步,通过下述方法实现加解密过程对用户的透明:
1)用户首次使用时,选择所需加密上传的文件,此时文件做上传预处理;
2)获取密钥和算法,对所选文件进行加密、上传并保存文件属性信息到数据库,所述所选文件的原明文文件在上传成功后被删除;
3)用户对密文请求读取或修改操作时,调用相应抽象密码设备组件进行解密操作,生成明文临时文件,并保存明文临时文件属性信息元数据到临时文件表,并将明文临时文件交给上层应用程序;
4)用户使用应用程序对文件的操作均针对于明文临时文件,在进行下一个文件操作或同步刷新时进行临时文件属性与所存储原文件属性元数据进行对比;
5)若文件没有进行修改,则删除临时文件,文件不进行同步;若文件经过修改,则调用密码设备单元对所述临时明文文件进行加密操作,并同步,在上传成功后删除所述临时明文文件。
本发明还提出一种密文云存储***,包括:一个或多个客户端和云端服务器,其特征在于,
用户在客户端存放的数据中选择采用密文和/或明文进行数据同步;
使用基于用户身份提供的认证参数生成主密钥,并根据所述主密钥获取密文预置加解密密钥或生成对应的密文加解密密钥,在所述客户端采用主密钥+加解密密钥的两级密钥对密文同步的数据进行加密并建立密文索引;
在所述云端和客户端同步所述密文及密文索引并删除在客户端上的密文索引和密文同步的数据;同时在所述云端和客户端同步所述明文同步数据后建立明文索引;
将所述明文和/或密文存储在本地私有云存储服务器或者根据用户请求的挂载点,存储在云存储提供商的存储服务器;
所述客户端还包括用来进行加解密操作的加解密模块(1)、用于完成与个人身份绑定的主密钥和与数据绑定的加解密密钥两级密钥管理的密钥管理模块(2)、用于密文索引生成的索引模块(3)、用以实现明密文的检索,对于密文检索生成相应查询语句的分词和单向散列,并与云端交互的查询模块(4)、同步模块(5)和管理模块(6);
所述同步模块(5)与加解密模块(1)和索引模块(3)连接用于调用和接受生成的密文和索引,完成密文及索引同步的功能;
所述管理模块(6)与加解密模块(1)、密钥管理模块(2)连接为用户提供操作接口,以设定密文安全策略,包括获取所述认证参数和加解密算法;
在所述云端同步所述明文同时在云端建立明文索引或同步所述密文及密文索引后删除在客户端上的密文索引和需要加密数据;将所述明文和/或密文存储在本地的存储服务器或者根据用户请求的挂载点存储在云存储提供商的存储服务接口;
所述云服务器端还包括与客户端同步模块(5)连接的同步模块(7)用于实现密文同步,密文索引同步;用以创建明文索引的索引模块(8)、查询模块(9)、用以实现与其他云平台的对接,扩展存储能力的对接模块(10)、密钥管理模块(11)、用户管理模块(12);
所述查询模块(9)与客户端的查询模块(4)连接,用以支持索引的明密文查询和支持顺序扫描的密文查询,最后返回查询结果;
所述密钥管理模块(11)与客户端的密钥管理模块(2)连接,用于存储备份用户的主密钥单项散列值、使用主密钥加密的加解密密钥,用户数据属性的元信息值,采用数据库实现;提供接口接受用户请求,进行密钥恢复;
所述用户管理模块(12)实现对用户帐号的管理和访问控制,包括注册用户、维护超级管理员用户和普通用户。
更进一步,在所述存储***中根据用户设定,采用优先级控制策略,对于优先级高的数据,在得到用户请求后立即得到响应,进行建立索引、加密数据、同步更新的操作;对于优先级低的数据,则在客户端接入电源或静止状态时,自动进行索引建立、加密数据、同步更新的操作。
更进一步,所述扩展存储能力的对接模块(10),包括:挂载控制功能模块和数据操作模块,其中挂载控制功能模块的主要分为增加挂载点子模块、删除挂载点子模块、获得挂载点信息子模块,数据操作模块主要分为通用操作接口子模块及外部存储接口实现子模块;
所述增加挂载点子模块:用户增加外部云存储挂载点,并将挂载点信息写入相应的配置文件中;
所述删除挂载点子模块:删除已挂载的外部云存储挂载点,并更新相应的配置文件;
所述获得挂载点信息子模块:获得用户当前的所有挂载点信息;
所述通用操作接口子模块:提供与所有外部存储云平台对接并进行数据交互的通用的访问接口。
更进一步,所述扩展存储能力的对接模块(10)还包括AmazonS3、Dropbox、HDFS外部存储类型对所述通用操作接口进行具体实现。
通过本发明公开的方法和***,完善的解决了背景技术中提到的,现有技术方案的缺陷和风险,在索引方面,对于明文在云端建立索引,对于密文在客户端建立索引并根据文件的安全性和索引效率选择在不同的环境中建立索引。在二级密钥管理方面,其中主密钥与个人身份绑定。异构云平台方面,解决了多个云服务提供商之间自主确定API,导致不能统一协作,管理混乱的问题。使得对于上层管理员提供统一的管理接口,和简单操作。并且能够保证安全性的同时降低存储成本,本发明的有益效果如下:
1.终端丢失不会丢失数据。明文文件与密文文件在选定后都被同步到云端服务器,用户可以在另一台客户端上通过主密钥认证(即身份认证)后选择这些文件进行下载。用户若将文件加密,那么不管在终端还是云端,敏感文件都是以密文形式存在,即使终端丢失也不会泄漏信息,攻击者获取明文的难度与攻击密码算法的难度相同。
2.云服务提供商看不到明文文件。解密解密密钥的主密钥,通过认证与用户绑定,云服务提供商无法解密用户数据,因此也无法滥用。
3.防护不当仅损失文件的密文形式。即便云服务提供商被黑客攻陷,黑客只能得到文件的密文形式,攻击者获取明文的难度与攻击密码算法的难度相同。
4.可对接多个云服务提供商。提供对接模块,用户可以将数据分布在不同的云服务提供商提供的存储上,其中一家云服务提供商倒闭也不会影响其他副本的存活。
附图说明
图1是本发明密文云存储***的结构示意图;
图2是本发明密文云存储***的密钥管理模块结构图;
图3是本发明密文云存储方法的密钥管理模块关系示意图;
图4是本发明密文云存储方法的密钥管理模块的获取密钥过程图;
图5是本发明密文云存储***的加解密模块结构图;
图6是本发明密文云存储方法的加解密模块的加密流程图;
图7是本发明密文云存储方法的加解密模块的揭秘流程图;
图8是本发明密文云存储方法的同步模块的客户端同步预处理过程图;
图9是本发明密文云存储方法的同步模块的客户端同步操作过程图;
图10是本发明密文云存储方法的同步模块的云端服务器同步操作过程图;
图11是本发明密文云存储***的对接模块结构图;
图12是本发明密文云存储方法的对接模块的异构云平台中间件实现过程图;
图13是本发明密文云存储方法的索引模块的密文索引子模块工作示意图;
图14是本发明密文云存储方法的索引模块的明文索引子模块工作示意图;
图15是本发明密文云存储方法的查询模块的客户端查询子模块工作示意图;
图16是本发明密文云存储方法的查询模块的云端查询处理子模块工作示意图;
图17是本发明密文云存储方法的密文云存储方法基本步骤图;
图18是本发明密文云存储方法的密文云存储的检索方法图;
图19是本发明密文云存储方法的客户端文件操作作处理的基本步骤图;
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细的说明,但不以任何方式限制本发明的范围。
在本发明的一实施例中,对密文的云存储方法为:
a)(用户)对客户端上的选定文件进行加密;对于一个或多个客户端中的一个或多个文件,用户即数据所有者可使用相同或不同的密码设备单元,在客户端上以相同或不同的密钥对其进行透明的加解密;所述客户端可能是各种智能计算设备,包括移动智能终端(例如:智能手机、PAD、PDA或其他移动智能设备)和传统互联网接入设备(例如:笔记本电脑、PC或服务器等);
b)设置所述选定文件按照明文或者密文的形式同步到云端或保存至本地客户端;为数据所有者提供同步策略选项,使其可以设置选定的文件以明文或密文的形式同步至云端,或仅保存在客户端而不同步;同步功能组件根据数据所有者选定的同步策略,将需要同步的文件的明文或密文形式及描述其属性的元数据上传到云端;并在需要的时候同步至相同或不同的客户端;
c)主密钥与个人身份绑定,只能由该用户提供操作,如利用指纹特征、虹膜特征等生成固定的主密钥,该主密钥不会由其他人提供的特征生成,从而实现与个人身份绑定。明文不与主密钥绑定,即明文不进行加密操作,不需要使用主密钥解密加解密密钥。明文在客户端明文存储,上传到云端建立明文索引并存储。主密钥由用户提供,用来解密获取加解密密钥。加解密密钥是跟文件绑定主密钥时用的,即每个文件都有一个加密密密钥,这些加解密密钥之间可以不同。本发明提出的与个人身份绑定的主密钥和与文件绑定的加解密密钥两级密钥管理方法,提供:身份认证,密钥产生,密钥更新,密钥存储,密钥备份,密钥恢复和密钥销毁功能。
d)用户发出同步请求,将加密和/或明文文件同步到云端;数据所有者请求将文件同步至云端,客户端依据所有者设定的策略,检查是否为加密上传,若是加密上传,则按照如下步骤操作:在客户端上创建密文索引,加密数据,加密索引,上传加密后的文件和索引,待云端返回上传成功的消息后删除终端上的明文文件和索引;若不是加密上传,则上传文件的明文,并在云端建立明文文件索引。
e)云存储服务器包括一个异构云平台对接组件,对接组件用于连接一个或多个云存储设备,实现挂载控制功能和数据控制功能;其中云存储设备可以是本地的存储服务器,也可以是云存储提供商的存储服务接口(例如:S3等)。所述挂载控制功能,包括增加、删除挂载点、获取挂载点信息等;所述数据控制功能,包括上传、下载、删除外部存储中的文件。通过异构的云平台对接组件可提供可兼容扩展的数据存储,用户数据可以存放在这些云存储服务商,但是数据安全性不会丢失,从而降低云存储的成本和维护的风险。
f)根据用户设定,采用优先级控制策略,对于优先级高的文件,在得到用户请求后立即得到响应,进行建立索引、加密文件、同步更新的操作;对于优先级低的文件,则在客户端接入电源或静止状态时,自动进行索引建立、加密文件、同步更新的操作。
在本本发明另一实施例中,一个密文云存储***,包括:
一个或多个客户端和云端服务器;
所述客户端包括加解密模块1、密钥管理模块2、索引模块3、查询模块4、同步模块5和管理模块6;
所述加解密模块1和索引模块3分别用来进行加解密操作和密文索引生成;
所述密钥管理模块2完成与个人身份绑定的主密钥和与文件绑定的加解密密钥两级密钥管理;
所述查询模块4用以实现明密文的检索,对于密文检索生成相应查询语句的分词和单向散列,并与云端交互。
所述同步模块5与加解密模块1和索引模块3连接用于调用和接受生成的密文和索引,完成密文及索引同步的功能;
所述管理模块6与加解密模块1、密钥管理模块2连接为用户提供操作接口,以设定密文安全策略,包括获取所述认证参数和加解密算法;
所述云服务器端包括同步模块7、索引模块8、查询模块9、对接模块10、密钥管理模块11、用户管理模块12;
所述同步模块7与客户端同步模块5连接,实现密文同步,密文索引同步功能;
所述索引模块8用以创建明文索引;
所述查询模块9与客户端的查询模块4连接,用以支持索引的明密文查询和支持顺序扫描的密文查询,最后返回查询结果。
所述对接模块10用以实现与其他云平台的对接,扩展存储能力。
所述密钥管理模块11与客户端的密钥管理模块2连接,用于存储备份用户的主密钥单项散列值、使用主密钥加密的加解密密钥,用户文件属性的元信息值,采用数据库实现。提供接口接受用户请求,进行密钥恢复。
所述用户管理模块12实现对用户帐号的管理和访问控制,包括注册用户、维护超级管理员用户和普通用户等。
本实施例采用如图1所示的密文云存储***结构,包括客户端、云端存储服务器、客户端通过网络与云端服务器建立连接。
在客户端包括(透明)加解密模块1、密钥管理模块2、索引模块3、查询模块4、同步模块5和管理模块6;
(透明)加解密模块1和索引模块3分别用来进行加解密操作和密文索引生成;
密钥管理模块2用来完成与个人身份绑定的主密钥和与文件绑定的加解密密钥两级密钥管理;
查询模块4用以实现明密文的检索,对于密文检索生成相应查询语句的分词和单向散列,并与云端交互。
同步模块5与加解密模块1和索引模块3连接用于调用和接受生成的密文和索引,完成密文及索引同步的功能;
管理模块6与加解密模块1、密钥管理模块2连接为用户提供操作接口,以设定密文安全策略,包括获取所述认证参数和加解密算法;
在本具体实施实例中客户端为安装有上述模块的应用的Android手机。
云服务器端包括同步模块7、索引模块8、查询模块9、对接模块10、密钥管理模块11、用户管理模块12;
云端同步模块7与客户端同步模块5连接,实现密文同步,密文索引同步功能;
云端索引模块8用以创建明文索引;
云端查询模块9与客户端的查询模块4连接,用以支持索引的明密文查询和支持顺序扫描的密文查询,最后返回查询结果。
对接模块10用以实现与其他云平台的对接,扩展存储能力。
云端密钥管理模块11与客户端的密钥管理模块2连接,用于存储备份用户的主密钥单项散列值、使用主密钥加密的加解密密钥,用户文件属性的元信息值,采用数据库实现。提供接口接收用户请求,进行密钥恢复。
用户管理模块12实现对用户帐号的管理和访问控制,包括注册用户、维护超级管理员用户和普通用户等。
在本具体实施实例中云端服务器为安装有上述模块的搭建为Hadoop的Linux云服务平台。
在本发明密文云存储方法和***中,密钥管理模块、加解密模块、同步模块、对接模块、查询模块是其重要实现核心。
本发明步骤c)所述的密钥管理机制中的密钥产生过程,包括主密钥产生、加解密密钥产生和密钥获取。通过下述方法实现:
1)所述密钥产生模块需要作为服务随机启动,运行时主密钥从内存读取,存储的加解密密钥从内存缓存或者数据库中读取;
2)在用户第一次使用时,该模块依据用户提供的相应认证参数,生成所述主密钥,产生后调用密钥备份模块进行备份。所述认证参数包括但不仅限于用户名口令或者用户指纹、声音等生物特征;
3)当加解密模块请求加解密密钥时,依据文件加密属性元数据信息和用户加密方案查找存储的加解密密钥,并使用主密钥解密所述存储的加解密密钥,提供给加解密模块;若未查找到所述存储的加解密密钥,则生成足够随机的长度安全可靠的加解密密钥,提供给加解密模块,并使用所述密钥备份模块进行备份
本发明步骤c)所述的密钥管理机制如下,
认证过程:从存储数据库中读取所述存储的主密钥的固定长度的单项散列值,与用户所提供的所述认证参数利用相同算法生成密钥的固定长度的单项散列值值进行比对。若相同,则通过认证;否则,弹出警告,并退出***。
密钥更新过程:当用户发出更新请求,并通过所述身份认证后,利用新的认证参数,重新调用所述密钥产生模块生成新的主密钥,并通过所述密钥备份模块进行备份。
密钥备份过程:将主密钥的固定长度的单项散列值,及经主密钥加密后的加解密密钥备份到数据库和云端服务器;同时将加密后的加解密密钥和文件映射关系表也备份到云端。
密钥恢复过程:根据用户名和口令,将该用户主密钥的固定长度的单项散列值、加密后的加解密密钥以及加密密钥和文件映射关系表从云端到客户端的恢复。
密钥销毁过程:根据用户请求,将主密钥和加解密密钥同时在数据库和云端的擦除销毁。
如图2所示,在本发明密文云存储方法的密钥管理中实现了与个人身份绑定的主密钥和与文件绑定的加解密密钥两级密钥管理方法。主要分为六大部分,每一部分是一个或几个单独的子模块组成,完成一个相对独立的功能。如图3所示,在本具体实施实例中密钥管理模块不同部分之间协同工作的关系:
密钥产生模块:包括主密钥产生,加密密钥产生,密钥获取。主要完成主密钥、加密密钥的产生和主密钥对加密密钥的加解密。
①用户在第一次使用该应用时注册用户名和密码,由该模块依据相应的认证参数(口令+用户名,指纹等生物特征)生成主密钥KEYMaster。(产生之后即调用密钥备份模块保存)
②当加解密模块请求加密密钥KEYEncryption时,依据文件加密属性和用户加密方案查找相应加密密钥KEYEncryption并用主密钥KEYMaster解密提供给加解密模块,如未找到则生成相应加密密钥KEYEncryption,提供给加解密模块并用主密钥KEYMaster加密fencrypt(KEYEncryption,KEYMaster)(即调用密钥备份模块进行备份)。另外作为这个模块的主线程,要随机启动,运行期间主密钥从内存读取,加密密钥可以从内存缓存中读取,或者读取数据库。
密钥更新模块:主要完成是根据用户管理界面的命令来完成密钥的更新操作。当用户发出更新命令时,需要输入旧的认证参数,如口令或生物特征,以及新的认证参数,调用认证模块,当旧的认证参数认证通过时,就用旧的主密钥解密所有加解密密钥,并使用新的认证参数生成新的主密钥,并对加解密密钥加密存储。(调用密钥备份模块进行客户端和云端的双备份)。
密钥认证模块:主要完成对用户身份的认证。根据用户的认证参数生成的主密钥HASH值存储到客户端上的DB中,并在需要验证时计算用户输入的认证参数生成主密钥HASH值和DB中的HASH值比对。
密钥备份模块:主要完成将主密钥HASH值,加密密钥备份到DB和云端;并且把和加密密钥有关的其他数据库文件(比如加密密钥和文件的对应关系表,用户表等)也备份到云端。
①当主密钥产生时即刻备份到DB并把修改的DB表备份到云端;
②同样,当加密密钥产生后,将加密密钥的密文做同样的备份,同时把和加密密钥关联的加密密钥和被加密文件的对应表也备份到云端。
密钥恢复模块:主要完成根据用户名和用户密码将该用户主密钥HASH值、加密密钥以及和加密密钥相关的DB从云端到客户端的恢复。当用户移动到一个新的手机客户端时或者手机端密钥丢失时,可以从云端恢复这些数据,供用户进行认证和加解密数据。
密钥销毁模块:主要完成主密钥和加密密钥密文在DB和云端的销毁。当用户特殊需要时可以将用户的密钥全部销毁。
如图4所示,密钥管理模块的获取密钥过程的具体实施实例如下:
步骤1.判断加解密密钥存储数据库是否存在。
步骤2.若存在,则提示用户输入主密钥KEYMaster,使用KEYMaster解密数据库中存储的加解密密钥,并返回。
步骤3.若不存在,则调用密钥产生模块,生成加解密密钥,存储在内存缓冲中。
步骤4.使用用户输入的主密钥KEYMaster加密加解密密钥,存储在数据库中。并调用密钥备份模块,将数据库上传到云端数据库中。
如图5所示,在本发明密文云存储法的加解密模块用来执行对文件具体的加解密操作。主要分为六个部分,每一部分是一个或几个单独的子模块组成,完成一个相对独立的功能。
用户应用程序扩展模块,用以监控用户应用程序对数据的操作,包括通讯录、日历、联系人、相册、文档等应用程序,控制文件的打开方式;
抽象加解密模块,用以连接其他组件,提供通用的加解密接口,该接口可以通过开源算法库实现如openssl等,也可以自己实现加解密算法;
数据封装模块,用以屏蔽不同数据类型对加解密算法的影响,实现对通讯录、短信、文件的统一封装,提高通用性;
加解密配置模块,用以和用户交互在管理界面选择加解密算法如3DES、AES、Blowfish等,保存在配置文件中。
如图6所示,在本具体实施实例中加解密模块的具体加密流程如下:
步骤1.通过用户应用程序扩展模块得到需要加密的明文及相关信息。
步骤2.通过抽象加解密模块将明文传入数据封装模块。
步骤3.对传入的不同格式的明文信息,进行分块和封装,得到统一格式。
步骤4.通过抽象加解密模块向加解密配置模块请求查询用户保存的加解密算法。
步骤5.加解密配置模块访问缓存的配置文件,如Android下的sharedpreference等,将查询到的加解密算法返回给抽象加解密模块。
步骤6.通过抽象加解密模块向密钥管理模块请求获取加解密密钥。
步骤7.密钥管理模块访问内存缓存中存放的加解密密钥,使用主密钥解密返回给抽象加解密模块。
步骤8.调用抽象加解密的具体实现接口,将明文、算法类型、加解密密钥作为参数传入。
步骤9.具体加解密的实现可以是开源算法库,如openssl等,或者用户自定义的函数,对分块的明文加密并返回。
步骤10.抽象加解密模块向上层返回加密后的密文。
如图7所示,在本具体实施实例中加解密模块的具体解密流程如下:
步骤1.通过用户应用程序扩展模块得到需要解密的密文,并对密文进行分块。
步骤2.通过抽象加解密模块向加解密配置模块请求查询用户保存的加解密算法。
步骤3.加解密配置模块访问缓存的配置文件,如Android下的sharedpreference等,将查询到的加解密算法返回给抽象加解密模块。
步骤4.通过抽象加解密模块向密钥管理模块请求获取加解密密钥。
步骤5.密钥管理模块访问内存缓存中存放的加解密密钥,使用主密钥解密返回给抽象加解密模块。
步骤6.调用抽象加解密的具体实现接口,将密文、算法类型、加解密密钥作为参数传入。
步骤7.具体加解密的实现可以是开源算法库,如openssl等,或者用户自定义的函数,对分块的密文解密并返回。
步骤8.通过抽象加解密模块将解密的封装的明文传入数据封装模块。
步骤9.数据封装模块对解密的封装的明文,转为原明文数据返回给抽象加解密模块
步骤10.抽象加解密模块向上层返回解密后的明文。
在本发明密文云存储方法实施实例中的同步模块,完成终端数据向云端服务器进行双向同步,包括数据的上传和下载,以及数据的更新和删除。其中数据类型包括:文件、sqlite数据库、SharedPreferences等。
本发明步骤b)所述的明文同步机制,包括文件的上传、下载或删除,通过下述方法实现对用户数据的同步和更新:
1)在客户端启动的同时,启动文件监控服务;
2)从数据库中获取文件监控列表,映射并调用文件监控器;
3)所述文件监控器获取同步操作,检查客户端本地文件是否存在,若文件不存在,则驱动下载器模块下载文件属性元数据和明文文件;
4)若所述本地文件存在,检测本地属性的元数据信息是否与服务器相同,包括文件修改时间和固定长度的文件散列值,以及文件同步时间。所述文件单项散列值包括HASH值,SHA-1值等;
5)若所述云存储服务器文件修改,则驱动下载器模块,将云服务器文件拉取至本地;
6)若所述客户端本地文件修改,即本地文件比服务器文件新,该情况包括初次上传,服务端未有元数据的情况,则驱动上传器模块,将客户端本地文件上传至服务器存储;
7)若所述云存储服务器文件和客户端文件同时被修改,则驱动冲突处理模块,包括取消操作、重写文件、附加保留等解决策略。
步骤b)所述的密文同步机制,与所述的明文同步机制相比对下层的调用相同,增加下述方法解决密文同步:
1)对于上传,在获取所述同步操作后,先进行所述文件的同步密文预处理过程,该预处理模块获取用户操作文件,依次调用索引模块,生成密文索引;加解密模块,生成密文文件;
2)将所述密文文件和密文索引按照明文上传的步骤,交给下层组件进行上传过程;
3)对于下载亦与所述明文同步更新相似,由于密文文档不能实现增量更新,故在冲突处理模块判断是否为密文,若为密文,则根据用户判断只进行取消操作或重写文件。
如图8所示,在本发明同步模块的客户端同步预处理过程的具体实施实例步骤如下:
步骤1.在客户端启动时加载文件监控服务file_observation,该服务生命周期为***生命周期。
步骤2.从数据库file_list.db中读取文件列表file_list。该列表包括文件的一系列本发明中定义的元数据属性如下:
字段名 | 类型 | 字段描述 |
_id | Integer | 文件的id |
filename | Text | 文件名 |
path | Text | 文件在服务器上的路径 |
parent | Integer | 文件父文件的id |
created | Integer | 文件创建时间 |
modified | Integer | 修改时间 |
content_type | Text | 文件类型 |
content_length | Integer | 文件长度 |
media_path | Text | 文件本地存储路径 |
file_owner | Text | account name |
last_sync_date | Text | 属性同步的最新时间 |
keep_in_sync | Integer | 是否需要同步。 |
last_sync_date_for_data | Text | 数据同步的最新时间 |
modified_at_last_sync_for_data | Text | 数据更改的最新时间 |
hash_value | Text | 文件哈希值 |
encrypted | Integer | 文件是否加密 |
步骤3.初始化文件监控服务中的文件监控列表file_list。由文件监控器负责调度维护。文件列表是数据库中存放的所要同步的文件的元数据属性的列表,文件监控列表是由监控服务在内存中根据从数据库读取到的文件列表生成维护的文件列表。
步骤4.文件监控器获取文件监控列表,依照filename字段和path字段,产生文件和列表的一一映射,将监控列表里的文件与本地文件关联。
步骤5.对于自动同步来说,文件监控器监控本地文件的状态,若文件状态包括属性同步的最新时间,文件修改时间,文件哈希值等发生改变,则触发文件同步的事件。对于手动出发同步操作来说,则直接触发文件同步的事件。
步骤6.事件处理机制获取文件目录路径,以及该路径下的文件列表。执行具体的同步操作过程。
如图9所示,在本发明提出的同步模块的客户端同步操作过程的具体实施实例步骤如下:在本具体实施实例中假定,手动选择同步文件test.txt。
步骤1.检查本地文件test.txt是否存在,若不存在,则向云端服务器发送下载命令。
步骤2.若本地文件test.txt存在,则将云端服务器存放文件元数据的数据库server_filelist.db下载到本地。
步骤3.判断本地文件test.txt是否改变,依据本地文件元数据中文件的修改时间modified是否大于文件内容的同步时间last_sync_date_for_data。
步骤4.进一步判断服务器的test.txt是否改变,依据服务器元数据中文件的修改时间modified是否大于本地元数据中文件内容修改同步时间last_sync_date_for_data。
步骤5.若本地文件test.txt元数据的modified<last_sync_date_for_data且服务器test.txt元数据的modified<last_sync_date_for_data,则表示本地和服务器文件test.txt都没有改变,不需要同步更新。
步骤6.若本地文件test.txt元数据的modified<last_sync_date_for_data且服务器test.txt元数据的modified>last_sync_date_for_data,则表示服务器test.txt文件发生改动,向云端服务器发送下载命令get请求,通过webdav协议的get过程具体实现。
步骤7.若本地文件test.txt元数据的modified>last_sync_date_for_data且服务器test.txt元数据的modified>last_sync_date_for_data,则表示本地和服务器文件都发生改动,进行冲突处理。提示用户选择:1.取消同步,2.采用服务器文件覆盖本地文件,3.两者都重命名保留。
步骤8.若本地文件test.txt元数据的modified>last_sync_date_for_data且服务器test.txt元数据的modified<last_sync_date_for_data,则表示本地文件发生改动,需上传到云端服务器,向云端服务器发送上传命令put请求,通过webdav协议的put过程具体实现。
如图10所示,在本发明同步模块的云端服务器同步操作过程的具体实施实例步骤如下:假设用户选择的最终操作是将本地文件上传到云端服务器操作,下载操作与该流程类似。
①接收客户端同步请求;
②判断是否是put请求,如果是打开文件,创建同步对象,并将同步文件读入;否则进行其它文件操作,如删除文件请求,更新文件请求;
③验证文件的MD5值,验证通过则为文件分配存储位置,默认为当前用户的主目录下;
④调用文件存入方法,将文件分片写入存储***。
如图11所示,在本发明密文云存储方法的具体实施实例中对接模块用来实现异构云平台对接组件的所有功能,实现与其它云存储平台如与AmazonS3、Dropbox、HDFS动态无缝地对接功能,从而可以实现云数据的可扩展性存储。异构云平台对接软件总体结构主要分为两个部分,其一是挂载控制功能模块,其二是数据操作模块,其中挂载控制功能模块的主要分为增加挂载点子模块、删除挂载点子模块、获得挂载点信息子模块,数据操作模块主要分为通用操作接口子模块及外部存储接口实现子模块。
增加挂载点子模块:用户增加外部云存储挂载点,并将挂载点信息写入相应的配置文件中。当进行外部云存储挂载时用户需要向中间件提供相应的参数,如:挂载点、所挂载的外部存储类型、用户名等信息。增加挂载点成功后,用户就可以像操作自己的云平台一样操作相应的外部存储云。
删除挂载点子模块:删除已挂载的外部云存储挂载点,并更新相应的配置文件。用户需要提供挂载点、用户名等参数信息。删除了该挂载点后,用户就不能通过私有云与外部云存储进行数据交互。
获得挂载点信息子模块:获得用户当前的所有挂载点信息。当软件程序初始化或刷新的时候需要知道当前用户的挂载点信息,得到了这些挂载点信息后才能将放在外部存储的文件显示给用户。
通用操作接口子模块:提供与所有外部存储云平台对接并进行数据交互的通用的访问接口。
外部存储接口实现子模块:该模块包括AmazonS3、Dropbox、HDFS外部存储类型对通用操作接口的具体实现。当用户使用通用接口时,就会间接地调用相应外部存储类型的接口实现,从而达到对外部存储进行操作的功能。
本发明步骤e)所述的异构云平台对接中间件,通过下述方法实现:
1)用户将需要的所述外部第三方云提供服务商的挂载信息写入配置文件中,所述挂载信息包括用户名、存储类型等;
2)当用户发起挂载请求时,所述对接中间件获取配置文件信息,构造相应的抽象操作接口;
3)该所述抽象操作接口模块对上层提供通用的数据访问接口,对下层针对各个云服务商交互,实现不同存储类型对应的抽象操作。所述云服务商存储类型包括但不限于:AmazonS3、Dropbox、HDFS等,所述抽象操作包括fopen等文件操作接口、mkdir等目录操作接口,并可以根据需求动态的扩展。
如图12所示,在本发明密文云存储方法的具体实施实例中异构云平台中间件实现过程如下:
步骤1.用户产生增加挂载点、删除挂载点或获取挂载点信息的请求。
步骤2.根据用户的相应请求生成相应的基本参数,并根据用户的类型是否为personal用户创建相应的挂载点。
步骤3.从配置文件mount.json中读取挂载点信息到数组$mountPoints中,根据相应的请求跳转到相应的子模块实现。
步骤4.判断挂载点信息数组$mountPoints中是否已经存在当前组或用户的挂载条目。
步骤5.将新的挂载点信息写入$mountPoints数组中。
步骤6.判断挂载条目中是否存在当前申请的用户或组数据,若存在,将新挂载点添加到该用户或组后面,否则就新建该用户。
步骤7.将更新过的所有挂载点信息$mountPoints数组写入配置文件mount.json中。
步骤8.判断所请求的外部存储类是否存在或支持操作。
步骤9.进行创建挂载点失败的处理。
步骤10.创建一个该存储类的实例,与外部存储实现对接。
步骤11.将所要删除的挂载点信息从$mountPoints数组删除。
步骤12.更新配置文件mount.json。
步骤13.判断用户是以GROUP形式挂载还是以USER形式挂载。
步骤14.将获得的信息进行规范化处理,统一显示格式,如将外部存储转化为\\OC\\Files||Storage\\类名。
步骤15.将获得挂载点信息返回。
在本发明密文云存储方法实施实例中的索引模块,依据用户对文件检索的需求建立同步文件的检索索引。在本实施实例中索引基于关键字,分为明文索引子模块和密文索引子模块。
如图13所示,在本发明密文云存储方法实施实例中的密文索引子模块,由于同步的数据以密文的方式存储,不能在云端索引器中构建索引,密文索引子模块的索引部分是在客户端创建的,可以建立索引的文本文件的类型包括txt、pdf、word等非结构化数据。对索引中的关键字加密和对索引中的实体加密采用两种不同的加密算法,关键字采用SHA-1哈希算法进行单向散列加密。然后将加密的索引同步到云端,由同步模块将其存储到指定的目录下。该模块是客户端的核心模块,它将调用加解密模块和密钥管理模块的外部接口进行索引的加密,也将调用同步模块实现密文索引文件的上传。密文索引创建的过程具体实施实例如下:
步骤1.对明文文件进行预处理,包括去除冗余字段、停用词、标点符号等。
步骤2.采用AKanalyzer分词***进行分词处理,得到关键字。
步骤3.对每个关键字进行评分,采用IF*IDF算法。
步骤4.索引写入磁盘前,在索引缓存区调用加解密模块SHA-1算法加密索引中的关键字部分。
步骤5.在内存中生成密文索引树,创建索引。该索引索引元数据结构如下:
字段名 | 类型 | 描述 |
Index_ID | int | 索引编号,自动增长 |
Index_name | Char | 索引的名字 |
Index_path | Text | 索引存放的路径 |
Index_UserID | Bigint | 与索引相关联的用户ID |
Index_length | Bigint | 索引的大小 |
Index_time | Datatime | 索引创建时间 |
Index_time | Datatime | 索引修改时间 |
步骤6.将加密后的索引写入磁盘存储器。
步骤7.调用同步模块,将密文索引同步到云端服务器。
如图14所示,在本发明密文云存储方法实施实例中的明文索引子模块,由于同步的数据以明文的方式存储,所以明文索引在服务器端创建,该模块通过公共接口获得同步模块传输的数据,对数据进行预处理,索引创建由lucene实现,无需对其进行扩展,然后输出索引存储到指定目录。由于云端的基础是hadoop,hadoop的MapReduce框架能够实现高并发并行计算,所以在进行云端索引模块设计时采用MapRedcue框架。在本发明中提出的明文索引创建的过程具体实施实例如下:
步骤1.文件同步任务完成后通知云端服务器明文索引模块创建明文索引。
步骤2.传入明文文本,Hadoop的JobTracker以每个文件世纪存储的物理位置所为Key,对文件数据进行分割。
步骤3.将分割后的文本数据分配给各个TaskTracker,每个TaskTracker启动2个Map索引处理任务,并监控Map执行状态,生成单独的倒排索引。
步骤4.Reduce将单独的倒排索引合并成为一个整体。
步骤5.将明文索引保存在云端服务器相应的目录下。该明文索引元数据的结构信息如下:
字段名 | 类型 | 描述 |
Index_ID | int | 索引编号,自动增长 |
Index_name | Char | 索引的名称 |
Index_path | Text | 索引存放路径 |
Index_UserID | int | 与该索引相关联的用户ID |
Index_length | int | 索引的大小 |
Index_time | Datatime | 索引创建的时间 |
Index_modify | Datatime | 索引修改的时间 |
在本发明密文云存储方法实施实例中的查询模块,依据索引模块建立的明文或密文文件索引,进行明密文关键字的查询,分为客户端查询子模块和云端查询子模块、云端查询处理模块。
如图15所示,客户端查询子模块的过程具体实施实例如下:
步骤1.在客户端查询界面中输入所要查找的关键字,然后选择密文查询、明文查询、或者综合查询。
步骤2.根据用户选择,若选择为密文查询或综合查询,则对查询关键字进行加密处理即调用加解密模块的SHA-1算法对关键字求哈希。
步骤3.根据关键字的哈希值,生成密文的查询语句。
步骤4.根据明文关键字,生成明文的查询语句。
步骤5.客户端通过http协议向云端服务器发送固定格式的查询请求。格式形如:http://192.168.111.83:8080/index.jsp?plain=test&encrypt=aJaaaaaaLasaaaaaaaa,plain代表明文关键字,encrypt代表密文关键字。
步骤6.云端服务器调用云端查询处理模块,进行查询处理,得到文件列表。
步骤7.云端服务器将查询到的文件列表返回给客户端,客户端在查询结果界面进行显示。
云端查询子模块的过程类似客户端查询子模块,即将客户端查询子模块的流程移植到网页端,使得用户可以通过网页访问云端数据的同时可以进行明密文查询操作。
如图16所示,云端查询处理模块主要功能是在云端服务器支持对生成索引进行明密文查询,被上层模块调用,提供统一的接口。使用MapReduce结构,在所有Slave节点都部署查询模块。查询过程中,由Master节点对倒排索引库进行分段,每个Slave节点只检索一段索引,获得部分匹配结果集,经Master汇总排序后由Web服务器向用户呈现最终查询结果。云端查询处理过程的具体实施实例如下:
步骤1.云端服务器接收客户端发送来的查询请求。
步骤2.对查询请求中的字符串解析生成查询请求Query,根据plain或encrypt字段划分明文查询或者密文查询,分别调用相应的处理模块。
步骤3.根据明文查询请求生成查询树,并向各个服务器查(Slave节点)发出,每个查询服务器检索倒排索引,且只完成部分查询结果,所有查询结果经汇总后得出明文查询结果。
步骤4.根据密文查询请求生成查询树,并向各个服务器查(Slave节点)发出,每个查询服务器检索倒排索引,且只完成部分查询结果,所有查询结果经汇总后得出密文查询结果。
步骤5.合并明密文结果。
步骤6.将查询所得的文件列表返回上层应用。该文件列表存放云端元数据信息,通过查找存储在云端数据的元数据信息能够准确定位到所要查找的文件,并将文件相对地址列表反馈给客户端。此表的主键为path,其结构如下所示:
字段名 | 类型 | 字段描述 |
fileid | Int | 文件ID,自动增长 |
storage | Int | 存储***类型 |
path | String | 存储位置 |
path hash | Text | 存储路径的哈希值 |
parent | Int | 所在的文件夹 |
name | Char | 文件名 |
mimetype | Int | 文件类型 |
mimepart | Int | |
size | Int | 文件大小 |
mtime | Text | 最后修改时间 |
encrypted | Bool | 是否加密 |
etag | Text | 版本标记 |
在本发明中,主要实现对用户数据的密文云存储方法,即客户端加密的密文数据上传到云服务器端。
如图17所示,本发明的密文云存储方法具体实施实例的基本步骤为:
步骤1.首先在客户端启动时,用户输入主密钥,通过密钥认证,进入***;若是首次启动则进入管理配置界面,用户根据加解密算法列表,选择用于加解密的算法,如AES_192_ofb,将用户选择保存在配置文件中,然后进入***。
步骤2.用户选择选择需要上传的文件test.txt,并指定是密文上传存储。
步骤3.文件监控器将用户选择的文件test.txt加入文件监控列表,此后客户端该文件在经过用户修改,删除等操作后,文件变化将自动同步到云端服务器,或者云端服务器上的该test.txt文件被修改,删除,也将被同步到客户端。
步骤4.调用索引模块对用户选择的文件test.txt的内容创建密文索引,生成的密文索引存储在客户端的应用程序沙箱中。
步骤5.获得用户选择的文件test.txt的相关属性元数据,并将数据库表项存储在本地数据库中。
步骤6.对用户选择的文件test.txt调用加解密模块和密钥管理模块,在密钥产生子模块,使用用户输入主密钥解密加解密密钥或者产生随机的加解密密钥,然后采用加密算法AES_192_ofb,对称分组加密test.txt,得到密文test.txt存储到相应的目录下。
步骤7.调用同步模块,通过其具体实现的同步策略和同步协议,将产生的密文test.txt、test.txt的明文文件属性元数据表项以及密文索引,同步到云端服务器,在同步成功后,删除本地的密文索引。
步骤8.云端服务器接收test.txt的文件属性元数据对服务器端文件元数据进行更新,得到新的文件列表。
步骤9.云端服务器对接收的密文文件test.txt分片存储。
步骤10.云端服务器的索引模块接收上传的密文索引,将密文索引存储在相应的目录下。
在本发明中,还实现对用户数据的密文云存储的检索方法,即客户端对加密上传到云端服务器的密文数据进行检索。
本发明a)所述的透明加解密由抽象密码设备组件所提供的统一接口实现,所述抽象密码设备组件读取用户设备配置,获取加解密算法,并由密钥管理模块获得加解密密钥,驱动密码设备单元实施加解密操作。所述密码设备单元由抽象密码设备组件管理,可以是使用硬件加密设备或软件加密设备实现,可动态扩展密码算法。通过下述方法实现加解密过程对数据所有者的透明:
1)用户首次使用时,选择所需加密上传的文件,此时文件被同步组件做上传预处理。
2)由抽象密码设备组件获取密钥和算法,对所选文件进行加密、上传并保存文件属性信息到数据库。所述所选文件的原明文文件在上传成功后被删除。
3)用户对密文请求读取或修改操作时,调用抽象密码设备组件进行解密操作,生成明文临时文件,并保存明文临时文件属性信息元数据到临时文件表。并将明文临时文件交给上层应用程序。
4)用户使用应用程序对文件的操作均针对于明文临时文件。在进行下一个文件操作或同步刷新时进行临时文件属性与所存储原文件属性元数据进行对比。
5)若文件没有进行修改,则删除临时文件,文件不进行同步。若文件经过修改,则调用密码设备单元对所述临时明文文件进行加密操作,并同步。在上传成功后删除所述临时明文文件。
如图18所示,本发明的密文云存储的检索方法具体实施实例的基本步骤为:
步骤1.用户提供主密钥,通过身份认证,进入***。
步骤2.用户进入查询界面输入查询语句InformationSecurity,选择明密文查询。
步骤3.调用客户端查询子模块,进行词法分析生成明文关键字,对每个关键字采用SHA-1算法生成明文关键字相应的Hash,构造相应的查询请求。
步骤4.云端查询处理模块接收查询请求,进行查询请求解析,并调用分布式的明密文索引查询,合并生成文件查询结果的列表,并将该包含关键字的密文文件test.txt列表返回至客户端。
步骤5.客户端接收云端服务器返回的文件列表,并在查询结果界面显示包含密文文件test.txt的文件列表。
步骤6.用户选择需要下载到客户端本地的密文文件test.txt,客户端同步处理过程进行向云端服务器发送请求,并将密文文件test.txt的属性元数据同步到客户端,进行冲突检测和处理,若需要下载该密文文件则向服务端发送get请求。
步骤7.云端服务器的同步模块接收客户端发来的同步请求,将存储的密文文件test.txt通过网络下载到客户端。
步骤8.当用户通过客户端打开所下载的密文文件test.txt时,请求用户验证主密钥,通过后,调用密钥管理模块获取加解密密钥,以及获取加解密算法AES_192_ofb,调用加解密模块的抽象加解密子模块对密文文件test.txt进行解密,得到存储在应用程序沙箱里临时的明文文件test.txt。
步骤9.客户端文件操作处理过程,客户端对明文的临时文件test.txt进行操作处理,包括打开修改等。
在本发明中,还实现对用户数据的密文云存储的明密文文件操作方法,即客户端对存储的明密文进行打开,修改,重命名的操作过程,如图19所示,本发明的密文云存储的文件打开修改操作的具体实施实例的基本步骤如下:
步骤1.用户选择需要打开的文件,该文件可以为密文文件也可以为明文文件。
步骤2.从文件元数据属性数据库中查找该文件路径,判断数据库中是否存在该文件的信息。
步骤3.若件元数据属性数据库存在该文件信息,则打开从文件元数据数据库中临时文件信息表temp_list,查找是否存在该文件的元属性信息,从而判断该文件是否已经是临时文件。
步骤4.若文件为临时文件,则从应用程序沙箱私有空间中的临时文件夹获取临时文件直接交给上层应用程序如金山WPS等,进行打开、编辑、关闭等操作,生成新的临时明文文件。
步骤5.若文件不是临时文件,表示打开的是另一个文件。通过对比临时文件的修改时间modified与文件元数据属性数据库中存储的文件修改时间modified对比,判断临时文件是否是被修改的最新文件。
步骤6.请求用户验证主密钥,通过后,调用密钥管理模块获取加解密密钥,以及获取加解密算法AES_192_ofb,调用加解密模块的抽象加解密子模块对临时文件夹下的临时文件进行加密,根据文件元数据数据库中临时文件信息表temp_list中存储的文件路径,存放到客户端相应的目录下。
步骤7.获取临时文件夹下的临时文件的元数据属性信息更新到文件元数据属性数据库中。
步骤8.将临时文件夹下的临时文件擦除。
步骤9.由于打开的是新的文件,打开该文件元数据属性的数据库,根据字段encryption判断文件是否为密文。
步骤10.获取传进来的明文文件,直接交给上层应用程序如金山WPS等,进行打开、编辑、关闭等操作,生成新的明文文件,并更新文件元数据。
步骤11.若新打开的文件是密文,则请求用户验证主密钥,通过后,调用密钥管理模块获取加解密密钥,以及获取加解密算法AES_192_ofb,调用加解密模块的抽象加解密子模块对该文件进行解密,解密后的临时文件存放在应用程序沙箱私有空间的临时文件夹下。
步骤12.获取临时明文文件的元数据属性,更新到数据库中。
通过本发明公开的方法和***,完善的解决了背景技术中提到的现有技术方案的缺陷和风险,使得终端丢失不会丢失数据,云服务提供商不能恶意的窥探用户的数据,云服务提供商被攻陷仅损失文件密文,并可以对接多个云服务提供商。
Claims (10)
1.一种密文云存储方法,在客户端和云端建立同步连接,其步骤为:
1)用户在客户端存放的数据中选择采用密文和/或明文进行数据同步,并对所述密文选择加密算法;
2)使用基于用户身份提供的认证参数生成主密钥,并根据所述主密钥获取密文预置加解密密钥或生成对应的密文加解密密钥,在所述客户端采用主密钥+加解密密钥的两级密钥对密文同步的数据进行加密并建立密文索引并对该主密钥进行备份;
3)在所述客户端和云端同步所述密文及密文索引并删除在客户端上的密文索引和密文同步的数据;或在所述云端和客户端同步所述明文同步数据后在所述云端建立明文索引;并实现加解密过程对用户的透明:
4)将所述明文和/或密文存储在本地私有云存储服务器或者根据用户请求的挂载点,存储在云存储提供商的存储服务器;
同步所述明文的方法包括数据的上传、下载或删除,通过下述方法实现对用户明文同步数据的同步和更新:
1)启动时加载数据监控服务,并根据本地数据库读取到的数据列表生成或维护数据监控列表;
2)根据获取的数据监控列表,依照数据名字段和数据在服务器上的路径字段产生数据和列表的一一映射,将监控列表里的数据与本地数据关联;若是自动同步,则数据监控器监控本地数据的状态,若数据状态包括属性同步的最新时间,数据修改时间,数据哈希值发生改变,则触发数据同步的事件;若是手动出发同步操作,则直接触发数据同步的事件;
3)所述数据监控器获取同步操作,检查客户端本地数据是否存在,若所述本地数据存在,检测本地属性的元数据信息是否与云存储服务器相同,所述本地属性的元数据信息包括数据修改时间和固定长度的数据散列值,以及数据同步时间;
4)若数据不存在,则驱动进行下载数据属性元数据和明文同步数据;
5)若所述云存储服务器数据修改,则经驱动进行下载,将云服务器数据拉取至本地,并更新本地数据属性元数据;
6)若所述客户端本地数据修改则包括:初次上传、服务端未有元数据的情况,经驱动进行上传,将客户端本地数据、数据属性元数据上传至云存储服务器;
7)若所述云存储服务器数据和客户端数据同时被修改,则根据用户选择经驱动进行包括:取消操作、重写数据、附加保留的冲突解决。
2.如权利要求1所述的密文云存储方法,其特征在于,同步所述密文的方法包括数据的上传、下载或删除,通过下述方法实现对用户密文同步数据的同步和更新:
1)启动时加载数据监控服务,并根据本地数据库读取到的数据列表生成或维护数据监控列表;
2)根据获取的数据监控列表,依照数据名字段和数据在服务器上的路径字段产生数据和列表的一一映射,将监控列表里的数据与本地数据关联;若是自动同步,则数据监控器监控本地数据的状态,若数据状态包括属性同步的最新时间,数据修改时间,数据哈希值发生改变,则触发数据同步的事件;若是手动出发同步操作,则直接触发数据同步的事件;
3)所述数据监控器获取同步操作,检查客户端本地数据是否存在,若所述本地数据存在,检测本地属性的元数据信息是否与云存储服务器相同,所述本地属性的元数据信息包括数据修改时间和固定长度的数据散列值,以及数据同步时间;
4)若数据不存在,则驱动进行下载数据属性元数据和明文同步数据;
5)若所述云存储服务器数据修改,则经驱动进行下载,将云服务器数据拉取至本地,并更新本地数据属性元数据;
6)若所述客户端本地数据修改则包括:初次上传、服务端未有元数据的情况,经驱动进行上传,将客户端本地数据、数据属性元数据上传至云存储服务器;
7)若所述云存储服务器数据和客户端数据同时被修改,则驱动冲突处理模块进行解决策略,包括取消操作、重写文件、附加保留;
8)对于上传,需要依次生成密文索引,加密数据生成密文,然后经驱动将密文数据、密文索引、及密文元数据属性上传到云存储服务器;
9)对于下载,由于密文数据不能实现增量更新,故在冲突处理时判断是否为密文,若为密文,则根据用户判断之进行取消操作或重写文件。
3.如权利要求1或2所述的密文云存储方法,其特征在于,所述同步明密文数据类型包括:文件、sqlite数据库、SharedPreferences。
4.如权利要求1所述的密文云存储方法,其特征在于,所述两级密钥加密通过下述方法实现:
1)运行时从内存读取主密钥同时从内存缓存或者数据库中读取存储的加解密密钥,
2)在用户第一次使用客户端时,根据用户提供的相应认证参数,生成所述主密钥,同时对该主密钥进行备份;
3)用户每次在进行密文云存储时,根据所述认证参数从存储数据库中读取所述存储的主密钥的固定长度的单项散列值,与用户所提供的所述认证参数利用相同算法生成密钥的固定长度的单项散列值进行比对;
4)当查找所述加解密密钥时,依据数据加密属性元数据信息和用户加密方案查找存储的加解密密钥,并使用主密钥解密所述存储的加解密密钥;
5)若未查找到所述存储的加解密密钥,则生成加解密密钥,并进行密钥备份;将主密钥的固定长度的单项散列值,以及经主密钥加密后的加解密密钥备份到数据库和云端服务器;同时将加密后的加解密密钥和数据映射关系表也备份到云端。
5.如权利要求4所述的密文云存储方法,其特征在于,所述主密钥的认证参数包括:用户口令或者用户指纹、声音、虹膜的生物特征。
6.如权利要求1所述的密文云存储方法,其特征在于,通过下述方法实现加解密过程对用户的透明:
1)用户首次使用时,选择所需加密上传的文件,此时文件做上传预处理;
2)获取密钥和算法,对所选文件进行加密、上传并保存文件属性信息到数据库,所述所选文件的原明文文件在上传成功后被删除;
3)用户对密文请求读取或修改操作时,调用相应抽象密码设备组件进行解密操作,生成明文临时文件,并保存明文临时文件属性信息元数据到临时文件表,并将明文临时文件交给上层应用程序;
4)用户使用应用程序对文件的操作均针对于明文临时文件,在进行下一个文件操作或同步刷新时进行临时文件属性与所存储原文件属性元数据进行对比;
5)若文件没有进行修改,则删除临时文件,文件不进行同步;若文件经过修改,则调用密码设备单元对所述临时明文文件进行加密操作,并同步,在上传成功后删除所述临时明文文件。
7.一种密文云存储***,包括:一个或多个客户端和云端服务器,其特征在于,
用户在客户端存放的数据中选择采用密文和/或明文进行数据同步;
使用基于用户身份提供的认证参数生成主密钥,并根据所述主密钥获取密文预置加解密密钥或生成对应的密文加解密密钥,在所述客户端采用主密钥+加解密密钥的两级密钥对密文同步的数据进行加密并建立密文索引;
在所述云端和客户端同步所述密文及密文索引并删除在客户端上的密文索引和密文同步的数据;同时在所述云端和客户端同步所述明文同步数据后,在云端建立明文索引;
将所述明文和/或密文存储在本地私有云存储服务器或者根据用户请求的挂载点,存储在云存储提供商的存储服务器;
所述客户端还包括用来进行加解密操作的加解密模块(1)、用于完成与个人身份绑定的主密钥和与数据绑定的加解密密钥两级密钥管理的密钥管理模块(2)、用于密文索引生成的索引模块(3)、用以实现明密文的检索,对于密文检索生成相应查询语句的分词和单向散列,并与云端交互的查询模块(4)、同步模块(5)和管理模块(6);
所述同步模块(5)与加解密模块(1)和索引模块(3)连接用于调用和接受生成的密文和索引,完成密文及索引同步的功能;
所述管理模块(6)与加解密模块(1)、密钥管理模块(2)连接为用户提供操作接口,以设定密文安全策略,包括获取所述认证参数和加解密算法;
在所述云端同步所述明文同时在云端建立明文索引或同步所述密文及密文索引后删除在客户端上的密文索引和需要加密数据;将所述明文和/或密文存储在本地的存储服务器或者根据用户请求的挂载点存储在云存储提供商的存储服务接口;
所述云端服务器还包括与客户端同步模块(5)连接的同步模块(7)用于实现密文同步,密文索引同步;用以创建明文索引的索引模块(8)、查询模块(9)、用以实现与其他云平台的对接,扩展存储能力的对接模块(10)、密钥管理模块(11)、用户管理模块(12);
所述查询模块(9)与客户端的查询模块(4)连接,用以支持索引的明密文查询和支持顺序扫描的密文查询,最后返回查询结果;
所述密钥管理模块(11)与客户端的密钥管理模块(2)连接,用于存储备份用户的主密钥单项散列值、使用主密钥加密的加解密密钥,用户数据属性的元信息值,采用数据库实现;提供接口接受用户请求,进行密钥恢复;
所述用户管理模块(12)实现对用户帐号的管理和访问控制,包括注册用户、维护超级管理员用户和普通用户。
8.如权利要求7所述的密文云存储***,其特征在于,在所述存储***中根据用户设定,采用优先级控制策略,对于优先级高的数据,在得到用户请求后立即得到响应,进行建立索引、加密数据、同步更新的操作;对于优先级低的数据,则在客户端接入电源或静止状态时,自动进行索引建立、加密数据、同步更新的操作。
9.如权利要求7所述的密文云存储***,其特征在于,所述扩展存储能力的对接模块(10),包括:挂载控制功能模块和数据操作***,其中挂载控制功能模块的主要分为增加挂载点子模块、删除挂载点子模块、获得挂载点信息子模块,数据操作模块主要分为通用操作接口子模块及外部存储接口实现子模块;
所述增加挂载点子模块:用户增加外部云存储挂载点,并将挂载点信息写入相应的配置文件中;
所述删除挂载点子模块:删除已挂载的外部云存储挂载点,并更新相应的配置文件;
所述获得挂载点信息子模块:获得用户当前的所有挂载点信息;
所述通用操作接口子模块:提供与所有外部存储云平台对接并进行数据交互的通用的访问接口。
10.如权利要求9所述的密文云存储***,其特征在于,所述扩展存储能力的对接模块(10)还包括AmazonS3、Dropbox、HDFS外部存储类型对所述通用操作接口进行具体实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310626060.XA CN103595730B (zh) | 2013-11-28 | 2013-11-28 | 一种密文云存储方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310626060.XA CN103595730B (zh) | 2013-11-28 | 2013-11-28 | 一种密文云存储方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103595730A CN103595730A (zh) | 2014-02-19 |
CN103595730B true CN103595730B (zh) | 2016-06-08 |
Family
ID=50085712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310626060.XA Expired - Fee Related CN103595730B (zh) | 2013-11-28 | 2013-11-28 | 一种密文云存储方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103595730B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110516460A (zh) * | 2019-08-29 | 2019-11-29 | 重庆市筑智建信息技术有限公司 | 一种用于bim数据的加密安全方法及其*** |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870574B (zh) * | 2014-03-18 | 2017-03-08 | 江苏物联网研究发展中心 | 基于h.264密文云视频存储的标签制作及索引方法 |
RU2589861C2 (ru) | 2014-06-20 | 2016-07-10 | Закрытое акционерное общество "Лаборатория Касперского" | Система и способ шифрования данных пользователя |
CN104572827B (zh) * | 2014-12-08 | 2017-12-15 | 北京工业大学 | 一种基于跨明文与密文的混合搜索*** |
CN104679816B (zh) * | 2014-12-17 | 2018-02-06 | 上海彩亿信息技术有限公司 | 一种嵌入式***下的sqlite数据库应用方法 |
CN104580395B (zh) * | 2014-12-22 | 2018-02-23 | 西安电子科技大学 | 一种基于现存云存储平台的多云协同存储中间件*** |
CN104615692B (zh) * | 2015-01-23 | 2017-09-19 | 重庆邮电大学 | 一种支持动态更新及多关键字安全排序的可搜索加密方法 |
CN104580255B (zh) * | 2015-02-02 | 2017-12-12 | 广州邻礼信息科技有限公司 | 基于可识别码流的识别设备对终端设备的认证方法及*** |
CN106034107B (zh) * | 2015-03-11 | 2019-12-10 | 西安酷派软件科技有限公司 | 一种数据处理方法、装置和智能电子设备 |
CN104732828A (zh) * | 2015-04-07 | 2015-06-24 | 江苏金智教育信息技术有限公司 | 一种电子课堂上课的方法和*** |
CN106302316A (zh) * | 2015-05-15 | 2017-01-04 | 中兴通讯股份有限公司 | 密码管理方法及装置、*** |
CN104836862B (zh) * | 2015-06-04 | 2018-07-27 | 杭州怪咖网络科技有限公司 | 一种智能终端数据存储方法 |
CN105187379B (zh) * | 2015-07-17 | 2018-10-23 | 上海交通大学 | 基于多方互不信任的密码拆分管理方法 |
CN106452770B (zh) * | 2015-08-12 | 2020-10-13 | 深圳市腾讯计算机***有限公司 | 一种数据加密方法、解密方法、装置和*** |
CN105303121B (zh) * | 2015-09-30 | 2018-05-25 | 西安电子科技大学 | 一种高维空间数据的安全查询方法、装置及*** |
CN105357415B (zh) * | 2015-11-09 | 2017-12-08 | 北京奇虎科技有限公司 | 图片加密、解密的方法及装置 |
CN105391722A (zh) * | 2015-11-25 | 2016-03-09 | 湖北工业大学 | 一种虹膜隐藏通讯录的抗泄漏云端存储方法 |
CN105610803A (zh) * | 2015-12-23 | 2016-05-25 | 浙江工业大学 | 一种保护云计算大数据隐私的方法 |
CN105516180B (zh) * | 2015-12-30 | 2019-07-02 | 北京金科联信数据科技有限公司 | 基于公钥算法的云密钥认证*** |
CN105959106B (zh) * | 2016-06-13 | 2019-04-02 | 四川特伦特科技股份有限公司 | 一种低复杂度数字加密方法 |
CN106096336B (zh) * | 2016-06-13 | 2019-01-29 | 北京京东尚科信息技术有限公司 | 软件防破解方法和*** |
CN106302449B (zh) * | 2016-08-15 | 2019-10-11 | 中国科学院信息工程研究所 | 一种密文存储与密文检索开放云服务方法和*** |
CN107783728B (zh) * | 2016-08-31 | 2021-07-23 | 百度在线网络技术(北京)有限公司 | 数据存储方法、装置和设备 |
CN106529327B9 (zh) * | 2016-10-08 | 2023-02-03 | 西安电子科技大学 | 混合云环境下面向加密数据库的数据存取***及方法 |
CN106446655A (zh) * | 2016-10-28 | 2017-02-22 | 郑建钦 | 一种提高移动式存储的安全性的方法 |
CN106570415A (zh) * | 2016-10-28 | 2017-04-19 | 郑建钦 | 一种远端数据存储*** |
CN106485128A (zh) * | 2016-10-28 | 2017-03-08 | 鄢碧珠 | 一种基于移动式存储设备指纹的*** |
CN106570416A (zh) * | 2016-10-28 | 2017-04-19 | 鄢碧珠 | 一种基于指纹的云存储方法 |
CN106506148A (zh) * | 2016-10-28 | 2017-03-15 | 郑建钦 | 一种基于手机指纹的数据存储方法 |
CN106844015B (zh) * | 2016-12-19 | 2020-03-24 | 北京五八信息技术有限公司 | 应用程序的数据处理方法及装置 |
CN107194271A (zh) * | 2017-04-18 | 2017-09-22 | 华南农业大学 | 一种弱中心的共享式私有云存储*** |
WO2019006640A1 (zh) * | 2017-07-04 | 2019-01-10 | 深圳齐心集团股份有限公司 | 一种大数据管理*** |
CN107222310A (zh) * | 2017-08-01 | 2017-09-29 | 成都大学 | 一种基于属性加密的密文策略云加密的并行化处理方法 |
CN107566463B (zh) * | 2017-08-21 | 2020-08-11 | 北京航空航天大学 | 一种提高存储可用性的多云存储管理*** |
CN107609870B (zh) * | 2017-09-02 | 2023-05-30 | 福建新大陆支付技术有限公司 | 用于pos的多应用密钥管理方法、***及pos终端 |
CN107451301B (zh) * | 2017-09-12 | 2021-01-08 | 彩讯科技股份有限公司 | 实时投递账单邮件的处理方法、装置、设备和存储介质 |
CN107893583A (zh) * | 2017-10-16 | 2018-04-10 | 杭州软库科技有限公司 | 一种智能门锁***及控制方法 |
CN107995160A (zh) * | 2017-10-26 | 2018-05-04 | 常熟市第人民医院 | 一种基于云端管控的json数据包加密解密方法 |
CN109842589A (zh) * | 2017-11-27 | 2019-06-04 | 中兴通讯股份有限公司 | 一种云存储加密方法、装置、设备及存储介质 |
CN108111587B (zh) * | 2017-12-15 | 2020-11-06 | 中山大学 | 一种基于时间释放的云存储搜索方法 |
CN108173948B (zh) * | 2017-12-29 | 2020-12-04 | 中国船舶重工集团公司第七一九研究所 | 一种分布式试验数据实时交换方法 |
CN108595291B (zh) * | 2018-04-01 | 2021-08-31 | 山东协和学院 | 一种医疗数据备份*** |
CN108566431A (zh) * | 2018-04-20 | 2018-09-21 | 郑州云海信息技术有限公司 | 一种分布式存储***及构建方法 |
CN108667917B (zh) * | 2018-04-24 | 2021-12-07 | 厦门集微科技有限公司 | 一种实现数据存储的方法、装置、计算机存储介质及终端 |
TWI669628B (zh) * | 2018-07-17 | 2019-08-21 | 關楗股份有限公司 | 用於進行金鑰備份或還原操作的訊標裝置 |
CN109948322B (zh) * | 2018-10-25 | 2023-03-21 | 贵州财经大学 | 本地化加密防护的个人云存储数据保险箱装置及方法 |
CN109660604B (zh) * | 2018-11-29 | 2023-04-07 | 上海碳蓝网络科技有限公司 | 数据存取方法及设备 |
CN109598145A (zh) * | 2018-12-07 | 2019-04-09 | 无锡予果科技有限公司 | 一种防泄密的数据传输和云端存储方法及*** |
CN109583221A (zh) * | 2018-12-07 | 2019-04-05 | 中国科学院深圳先进技术研究院 | 基于多云服务器架构的网盘*** |
CN109726583A (zh) * | 2018-12-12 | 2019-05-07 | 西安得安信息技术有限公司 | 云数据库加密服务器*** |
CN109657497B (zh) * | 2018-12-21 | 2023-06-13 | 北京思源理想控股集团有限公司 | 安全文件***及其方法 |
CN109858263B (zh) * | 2019-01-21 | 2021-05-14 | 北京城市网邻信息技术有限公司 | 数据存储检索方法、装置、电子设备及存储介质 |
CN109981634A (zh) * | 2019-03-20 | 2019-07-05 | 中共中央办公厅电子科技学院(北京电子科技学院) | 一种基于密码技术的云存储*** |
CN109981267B (zh) * | 2019-03-22 | 2021-06-08 | 西安电子科技大学 | 大规模用户多密钥场景云加密数据库***及存储查询方法 |
CN111131138A (zh) * | 2019-03-26 | 2020-05-08 | 武汉华工智云科技有限公司 | 一种支持隐私保护的智能移动终端与云服务器交互*** |
CN110012086B (zh) * | 2019-03-27 | 2023-10-20 | 努比亚技术有限公司 | 提高应用下载及安装速度的方法、终端及存储介质 |
CN110110550B (zh) * | 2019-04-19 | 2023-05-09 | 深圳华中科技大学研究院 | 一种支持云存储的可搜索加密方法及*** |
CN110324402B (zh) * | 2019-05-08 | 2022-03-11 | 湖南文盾信息技术有限公司 | 一种基于可信用户前端的可信云存储服务平台及工作方法 |
KR102451053B1 (ko) * | 2019-05-22 | 2022-10-05 | 묘타, 인크. | 보안, 복원, 및 제어가 강화된 분산된 데이터 스토리지를 위한 방법 및 시스템(method and system for distributed data storage with enhanced security, resilience, and control) |
CN110378128A (zh) * | 2019-06-17 | 2019-10-25 | 深圳壹账通智能科技有限公司 | 数据加密方法、装置及终端设备 |
CN111625843A (zh) * | 2019-07-23 | 2020-09-04 | 方盈金泰科技(北京)有限公司 | 一种适用于大数据平台的数据透明加解密*** |
CN110598440B (zh) * | 2019-08-08 | 2023-05-09 | 中腾信金融信息服务(上海)有限公司 | 一种分布式自动加解密*** |
CN112543171A (zh) * | 2019-09-23 | 2021-03-23 | 上海傲觉网络科技有限公司 | 一种聊天数据采集加密管理*** |
CN110609959B (zh) * | 2019-09-24 | 2023-10-24 | 珠海格力电器股份有限公司 | 基于项目生命周期的检索方法、存储介质及电子设备 |
CN111190870A (zh) * | 2019-12-27 | 2020-05-22 | 山东乾云启创信息科技股份有限公司 | 一种基于鲲鹏处理器的虚拟存储方法及设备、介质 |
CN111143870B (zh) * | 2019-12-30 | 2022-05-13 | 兴唐通信科技有限公司 | 一种分布式加密存储装置、***及加解密方法 |
CN111245832A (zh) * | 2020-01-13 | 2020-06-05 | 深圳云塔信息技术有限公司 | 用于与云存储平台对接的加密***及方法 |
CN111400381B (zh) * | 2020-02-28 | 2024-05-10 | 北京致医健康信息技术有限公司 | 一种数据存储方法、装置、计算机设备及存储介质 |
CN111711671B (zh) * | 2020-06-01 | 2023-07-25 | 深圳华中科技大学研究院 | 一种基于盲存储的高效密文文件更新的云存储方法 |
CN112000523A (zh) * | 2020-08-25 | 2020-11-27 | 浪潮云信息技术股份公司 | 一种云备份的***及方法 |
CN112134943B (zh) * | 2020-09-21 | 2023-08-22 | 李波 | 一种物联网云存储***及方法 |
CN112148739B (zh) * | 2020-09-25 | 2023-12-29 | 世融能量科技有限公司 | 独立于加密数据库的密文索引方法及*** |
CN113301095B (zh) * | 2020-12-08 | 2024-05-10 | 阿里巴巴集团控股有限公司 | 提供云端对象的数据的方法以及装置 |
CN112765671B (zh) * | 2021-02-08 | 2021-09-21 | 上海万向区块链股份公司 | 本地化数据隐私加密方法及*** |
CN113014383B (zh) * | 2021-03-10 | 2022-08-02 | 四川九洲空管科技有限责任公司 | 一种敌我识别***加解密算法测试验证装置及*** |
CN113225179A (zh) * | 2021-04-07 | 2021-08-06 | 卡斯柯信号有限公司 | 一种列车控制器的加密方法 |
CN113641694B (zh) * | 2021-07-16 | 2023-12-22 | 南京国电南自维美德自动化有限公司 | 数据库的海量历史数据备份方法和恢复方法 |
CN113779597B (zh) * | 2021-08-19 | 2023-08-18 | 深圳技术大学 | 加密文档的存储和相似检索方法、装置、设备及介质 |
CN113703821A (zh) * | 2021-08-26 | 2021-11-26 | 北京百度网讯科技有限公司 | 云手机更新方法、装置、设备以及存储介质 |
CN113972985A (zh) * | 2021-09-02 | 2022-01-25 | 北京电子科技学院 | 一种基于云密码机密钥管理的私有云加密存储方法 |
CN113780798B (zh) * | 2021-09-07 | 2024-05-28 | 杭州天宽科技有限公司 | 基于云计算的关键指标展示*** |
CN113836553B (zh) * | 2021-09-22 | 2023-10-20 | 北京计算机技术及应用研究所 | 一种密码算法动态重构的分布式存储数据保护方法 |
CN114218322B (zh) * | 2021-12-13 | 2022-08-26 | 深圳市电子商务安全证书管理有限公司 | 基于密文传输的数据展示方法、装置、设备及介质 |
CN114422500B (zh) * | 2021-12-29 | 2023-05-09 | 成都鲁易科技有限公司 | 云备份中文件标识冲突的处理方法、装置及电子设备 |
CN114218597B (zh) * | 2021-12-30 | 2023-10-10 | 北京荣达天下信息科技有限公司 | 一种适用于企业内部隐私数据保密的方法及*** |
CN114500073B (zh) * | 2022-02-11 | 2024-04-12 | 浪潮云信息技术股份公司 | 一种云存储***中支持隐私保护的用户数据割接方法及*** |
CN115329389B (zh) * | 2022-10-17 | 2023-01-24 | 中安网脉(北京)技术股份有限公司 | 一种基于数据沙箱的文件保护***及方法 |
CN116541348B (zh) * | 2023-03-22 | 2023-09-26 | 河北热点科技股份有限公司 | 数据智能存储方法及终端查询一体机 |
CN116976884A (zh) * | 2023-08-06 | 2023-10-31 | 唐山骅驰科技有限责任公司 | 一种基于云存储与nfc的交易数据处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588365A (zh) * | 2004-08-02 | 2005-03-02 | 中国科学院计算机网络信息中心 | 密文全文检索技术 |
CN102024054A (zh) * | 2010-12-10 | 2011-04-20 | 中国科学院软件研究所 | 一种面向密文云存储的文档检索方法与*** |
CN102075542A (zh) * | 2011-01-26 | 2011-05-25 | 中国科学院软件研究所 | 一种云计算数据安全支撑平台 |
CN102428686A (zh) * | 2009-05-19 | 2012-04-25 | 安全第一公司 | 用于安全保护云中的数据的***和方法 |
CN102708216A (zh) * | 2012-06-28 | 2012-10-03 | 北京邮电大学 | 一种面向密文搜索的分词组织方法和聚类方法 |
CN103345526A (zh) * | 2013-07-22 | 2013-10-09 | 武汉大学 | 一种云环境下高效的隐私保护密文查询方法 |
-
2013
- 2013-11-28 CN CN201310626060.XA patent/CN103595730B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1588365A (zh) * | 2004-08-02 | 2005-03-02 | 中国科学院计算机网络信息中心 | 密文全文检索技术 |
CN102428686A (zh) * | 2009-05-19 | 2012-04-25 | 安全第一公司 | 用于安全保护云中的数据的***和方法 |
CN102024054A (zh) * | 2010-12-10 | 2011-04-20 | 中国科学院软件研究所 | 一种面向密文云存储的文档检索方法与*** |
CN102075542A (zh) * | 2011-01-26 | 2011-05-25 | 中国科学院软件研究所 | 一种云计算数据安全支撑平台 |
CN102708216A (zh) * | 2012-06-28 | 2012-10-03 | 北京邮电大学 | 一种面向密文搜索的分词组织方法和聚类方法 |
CN103345526A (zh) * | 2013-07-22 | 2013-10-09 | 武汉大学 | 一种云环境下高效的隐私保护密文查询方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110516460A (zh) * | 2019-08-29 | 2019-11-29 | 重庆市筑智建信息技术有限公司 | 一种用于bim数据的加密安全方法及其*** |
CN110516460B (zh) * | 2019-08-29 | 2021-05-14 | 重庆市筑智建信息技术有限公司 | 一种用于bim数据的加密安全方法及其*** |
Also Published As
Publication number | Publication date |
---|---|
CN103595730A (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103595730B (zh) | 一种密文云存储方法和*** | |
CN106302449B (zh) | 一种密文存储与密文检索开放云服务方法和*** | |
US20220407725A1 (en) | File storage method, terminal, and storage medium | |
KR102243754B1 (ko) | 블록체인 네트워크에서의 데이터 격리 | |
CN109639406B (zh) | 基于区块链和ipfs的高效信任解决方法 | |
US10762229B2 (en) | Secure searchable and shareable remote storage system and method | |
US10445517B1 (en) | Protecting data in insecure cloud storage | |
CN106156359B (zh) | 一种云计算平台下的数据同步更新方法 | |
JP6810172B2 (ja) | 文書管理およびアクセス制御を有する分散データシステム | |
US8572757B1 (en) | Seamless secure private collaboration across trust boundaries | |
CN103116618B (zh) | 基于客户端持久缓存的远程文件***镜像方法及*** | |
CN106874461A (zh) | 一种工作流引擎支持多数据源配置安全访问***及方法 | |
CN113961535A (zh) | 一种基于区块链的数据可信存储共享***与方法 | |
CN104252605B (zh) | 一种Android平台的文件透明加解密***及方法 | |
CN104023085A (zh) | 一种基于增量同步的安全云存储*** | |
US9552369B2 (en) | Document management systems and methods | |
US8407241B2 (en) | Content mesh searching | |
EP2107485A2 (en) | Secure Peer-To-Peer Distribution of an Updatable Keyring | |
CN103023875A (zh) | 一种账户管理***及方法 | |
CN102685148A (zh) | 一种云存储环境下的安全网盘***的实现方法 | |
US20140245025A1 (en) | System and method for storing data securely | |
CN102546764A (zh) | 一种云存储***的安全访问方法 | |
US11256662B2 (en) | Distributed ledger system | |
CN104079568A (zh) | 基于云存储技术防止文件泄密的方法及*** | |
CN105812427B (zh) | 文件上传和下载方法、装置、及文件服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160608 Termination date: 20161128 |
|
CF01 | Termination of patent right due to non-payment of annual fee |