掌桥专利:专业的专利平台
掌桥专利
首页

具有增强的安全性、弹性和控制的分布式数据存储方法及系统

文献发布时间:2024-04-18 19:53:33


具有增强的安全性、弹性和控制的分布式数据存储方法及系统

分案申请

本申请为申请号202080037181.9,申请日为2020年5月14日,题为“具有增强的安全性、弹性和控制的分布式数据存储方法及系统”的中国发明专利申请的分案申请。

相关申请的交叉引用

本申请基于申请号为62/851,146、申请日为2019年5月22日的美国临时专利申请提出,并要求该美国临时专利申请的优先权,该美国临时专利申请现在为未决申请,其全部内容在此通过引用并入本文。

背景技术

在存储技术领域中,数据保护在安全性和弹性方面的问题是众所周知的。其解决方案有著名的纠删码(EC码)、Shamir秘密共享方案(SSSS)等。EC码广泛用于CD、DVD、二维码(QR码)等,以提高现有解决方案的纠错能力,而SSSS以多项式插值技术进行保密。其中,(t,n)阈值属性需要n个数据片中的至少t个数据片(也称为数据份或分片)来重建原始数据。与n个复制副本类似,但引入了一个附加约束t,该属性在重建原始数据时提高了数据弹性,因其允许n-t个存储节点故障,而不中断服务。从数据保护角度来看,(t,n)阈值属性只有在至少有t个数据份可存取且有效的情况下才能显示原始数据。

纠删码的目标是在最大限度地提高传输或存储效率的情况下纠正数据中的位错误。因此,大多数应用程序仅以EC码,如里德-所罗门码(RS码)为基础。在计算机存储器中,EC码一直用于执行独立磁盘冗余阵列(RAID),尤其是5级和6级,RAID设计用于在不同的故障水平下可靠地存储组件。

大规模数据存储系统带来了新的技术挑战,即元数据的管理与保护。为了实现灵活性和可扩展性,将数据及其元数据存储在了分布式存储器中,其中,元数据包括所需数据片所在位置的相关信息。因此,为了可靠和安全地存储元数据,通常需要提供另一层数据保护。

例如,Shamir秘密共享方案(SSSS)和RS码分别用于保护数据安全和纠正数据错误,即使SSSS和RS码具有(t,n)阈值属性,也还是需要n个数据份中的至少t个数据份才能重建原始数据。SSSS和RS码分别针对加密和纠错。

SSSS设计为一种将秘密存入多个份额n而不使用加密密钥技术的加密技术。SSSS利用多项式插值来保证理论加密,因此,已知还没有方法可用少于t个的份额来破解SSSS。

RS码也具有相同的(t,n)阈值属性,但其设计用于纠错和提高存储效率。与SSSS不同,RS码使用了线性映射,使得C(x)=x·A,式中,码字向量x=(x

分布式数据存储因其可扩展性和成本效率而产生。其中一个较著名的分布式数据存储系统是Hadoop分布式文件系统(HDFS),该系统针对非常大的数据中心存储系统而设计,用以执行MapReduce等并行数据负载。HDFS推荐采用3份数据副本:2份副本存放在相同机架的两个不同节点上,另一份存放在不同机架(位置)的不同的节点上。该策略通过利用故障的本地局部性简单地提高了数据存取可能性。最近,已利用对象存储解决方案通过键值对来简化输入/输出(I/O)查询。

分布式存储系统所面临的挑战已迫在眉睫。第一个挑战与元数据管理有关。由于数据内容分布在多个存储节点中,因此分布式内容的地址必须保存在安全可靠的地方,这就会形成单点故障和性能瓶颈。存储元数据会显著影响系统性能,因其主要涉及到了存在性能瓶颈的目录服务和元数据查找操作。例如,List(列表)和Stat(统计)的调用比Read(读取)和Write(写入)更频繁。Ceph

不仅性能一个问题,由元数据解耦导致的安全性和弹性也是一个富有挑战性的议题。用数据加密技术保护元数据会造成额外的计算成本并导致性能下降。

重要的是,在现有解决方案中,存储和检索在同步协议下进行,而在本发明中,存储和检索异步发生,如下面的详细描述。

另一个挑战是端到端解决方案在架构灵活性方面存在局限性。大多数分布式存储系统都是针对同一数据中心的客户设计的,这种系统的网络时延约小于1ms,这对多数据中心解决方案产生了不利影响。例如,如果采用以客户为中心的架构,其中的客户端设备是移动的,则客户端设备可通过互联网连接至存储节点和元数据服务器节点。由于客户端是移动的或位于数据中心之外,系统性能无法与数据中心的存储服务相提并论。

发明内容

本申请涉及一种方法和系统,该方法和系统使用配备网络的设备和配备网络的存储节点分别将数据和元数据加密为链接进程,以实现安全存储,其中,该进程和系统两者的可靠性和弹性都超出了目前可达到的水平。本发明的方法和系统将多种加密或编码技术与战略性存储技术和解析技术集成在一起,以产生技术集合的综合效益。本发明将内容数据与其元数据分开,并且在内容数据加密链接进程中,本发明对内容数据进行分块、加密、分片和存储并对元数据进行单独分片和存储,其中,元数据使用与内容数据加密链接进程相关的信息增强。本发明的方法使用了计算密码学和理论密码学两者。此外,这些进程优选在本地实现,包括在内容数据站点或代理服务器上实现。

在优选实施例中,对内容数据进行分块,通过基于AES-256随机生成的密钥(或等效物)对每个分块加密,再用RS码(或等效物)编码,然后分成碎片或“分片”,其中,分片是加密和解码后通过解析文件形成的文件部分。通过引入由SSSS加密的分块ID修改元数据,再结合密钥分片对元数据分片,然后在元数据加密过程中引入SSSS加密的密钥分片。需要注意的是,此处使用了至少两种加密方法:(1)使用AES标准和RS码形成数据分片;以及(2)使用SSSS对存储在元数据分片中的分块ID和AES密钥进行加密。

简言之,本发明包括多种形式的加密和编码以及加密文件(并且对于某些数据,也编码)的分布式存储。

与现有解决方案相比,本方法允许提高安全性和弹性,允许更快速地恢复数据,并且还可基于用户对存储管理和数据存取控制配置的偏好进行控制。

附图说明

图1是本发明的推理和事件检测的示图,尤其示出了推理和事件检测;

图2是本发明的时间日志采集和训练的示图;

图3是本发明的文件和元数据/密钥加密链的示图;

图4是系统组件、交互和过程步骤的示图;

图5是本发明中分离数据路径和控制路径的方法的示图;

图6是本发明的文件存储的逐步过程的示图;

图7是添加丢失客户端黑名单和配置新客户端的示图;

图8是存在数据存储失败的文件存储过程的示图;

图9是存在元数据/密钥存储失败的文件存储过程的示图;

图10是本发明的“复制”数据和“加密”数据的元数据编码示图;和

图11是文件加密和元数据加密的示例的示图。

具体实施方式

本发明通过组合运用数据加密链模块和不同的元数据/密钥加密链模块解决了上述加密或存储难题,其中,数据加密链模块至少部分地基于用于数据加密或编码的计算密码学;元数据/密钥加密链模块与数据加密链模块相同,均使用了理论密码学。虽然其他发明也将元数据与内容数据分开存储和配置,但这些发明仅注重将内容与元数据分开存储而未包含如本文中所描述的许多重要且有益的属性及方法。可靠性和安全性是内容存储或存储器的传统优先项。可靠性和负载平衡也是元数据/密钥存储或存储器的重要优先项。本发明至少使用了内容的计算密码学和元数据/密钥的理论密码学,通过在单独(但相互关联)的链接进程中执行内容数据和元数据/密钥加密的实施方式来改进现有技术,从而实现以前未用于安全存储器的架构。除其他优势外,该解决方案还显着提高了速度、弹性、恢复能力以及个人用户、“群组”用户(如,拥有公共存储器的企业)和多数据中心用户(如,在服务后端拥有多个数据中心的用户)的安全性,从而使其可同时服务于多种类型的用户。与计算密码学相比,一些加密算法在数学上被证明是无法被攻击者破解的理论加密算法。所使用的计算加密算法可根据原始数据的逆向时间量来确定,该时间量在使用中对于执行方法来说足够长。另一方面,理论加密算法提供的解决方案使得在不满足所需条件的情况下在数学上破解加密数据是不可能的。

在定义上,词语“编码”在用RS码(或等效物)从每个加密分块中生成数据分片的情况下使用,词语“加密”用于SSSS(或等效物)和(或)分块的加密。本文中所用的术语“分块”是指在不进行任何操作的情况下将文件拆分为多个部分。术语“分片”在输出具有(t,n)阈值属性时使用。将加密分块编码到数据分片中,以使输出保持加密。“元数据分片”定义为包含加密分块ID和文件属性的数据。“密钥分片”定义为使用SSSS或等效物的每个分块加密密钥的加密数据。本申请将客户端定义为面向用户的设备,如台式电脑、笔记本电脑、手持设备等。客户端的扩展定义包括位于用户域中的服务器机器。

在本发明中,首先对数据进行分块、加密,然后再分片。元数据和内容数据分别加密和编码并单独存储。本发明的加密或编码方案部分地基于加密方案、编码方案、存储方案以及可保持授权用户存取元数据的方法而显著提高了存储效率和数据弹性及安全性。本发明的方法维持或提高了系统可靠性(即防止物理或网络等攻击)和系统弹性(即文件损坏之后恢复文件的能力)。

本发明的方法包括用于加密和存储的新颖系统架构以及用于内容和元数据两者的新颖加密和编码方法。这些方法提供的改进方面包括但不限于克服了远程存储中的时延问题;使用人工智能(AI)改进了分布式存储技术;以及具有监视、控制和管理非结构化数据等的优势。

该解决方案创建了两个单独的加密链:文件内容及其元数据/密钥每个单独加密,每个均使用不同的方法,其中的文件内容还包括编码。文件内容编码算法包括性能密集型信息分散算法(也称为计算加密算法),例如但不限于RS编码算法,该算法只有在内容使用算法(如,众所周知的算法:AES-256)加密后才可执行。在文件内容编码的过程中,使用一个或多个随机生成的并且可能包含随机数(包括初始化向量,在本发明中,通常随机选择初始化向量)的加密密钥对文件加密。为了安全地存储加密密钥,将密钥存储在元数据文件中或单独存储,而不是采用常用方式将其与数据分片存储在一起。这种将加密密钥与内容数据分开存储的方式保护了内容数据免受攻击者攻击,即使攻击者已经获取了数据存储器访问许可和(或)以某种方式获得了密钥。由于在本发明中元数据修改为包含其他重要信息,本发明将安全密集型信息分散算法(也称为理论加密算法)应用于了元数据。本发明对分块的每个引用(分块ID)进行加密,并且使用了仅用SSSS或等效物的加密密钥。SSSS的理论确保了只有在可用于重建的分片数量(在示例中为>=2)足够时才可重建元数据。

与现有方法相比,本方案解决了现有的难题并提高了系统性能,同时减少了传统的存储需求。存储系统需要实现的最重要目标是数据可用性、数据弹性和数据可靠性。提高数据可用性和数据弹性的最常见解决方案是数据备份,这通常需要至少双倍的数据存储空间才能存储冗余数据。本发明所需的存储空间较少,通常存储空间的n/t倍,其中,t是所需分片的数量,n是所存分片的总数。仅需n个分片中的t个分片而不是n个分片中的n个分片,使得弹性显著提高。在现有解决方案中,独立磁盘冗余阵列(RAID)通过将纠错码添加到数据中来提高存储效率,同时确保其与数据备份具有几乎相同的弹性。这些曾经最先进的存储解决方案(本发明之前)使用了分布式存储节点来既实现可用性又实现可恢复性。这些存储解决方案利用纠错码(如纠删码)并将数据片存储到分布式存储节点中,以允许存储节点存在特定数量的基于编码参数的故障。然而,这些解决方案仅针对元数据和内容数据的独立存储器。

本发明将元数据/密钥存储器与内容数据存储器解耦,但保留二者之间的关联。此外,当前解决方案为不同的存储后端提供了优化的且可随时间改进的配置,以供用户附连不同类型的后端存储器,如来自不同供应商的云存储服务和用户自己的存储节点。也就是说,即使在单个计算机或用户的存储器中,本发明是存储类型(和位置)不可知的,并且允许同时使用多种存储类型。由于以前的解决方案并未设计成对不同的后端存储器进行编排或者并未成功实现对不同后端存储器的编排,该方法提供了额外的优势。由于后端存储器的多样性,改进系统性能和效率的配置是一项复杂的任务,这通常必须由专家来完成,从而增加了以前解决方案的不安全层和风险。当前解决方案中的编排层提供了配置任务的抽象层,可选地使用了Al辅助优化模块。优化配置包括但不限于优化成本,提高存储效率及安全性,简化策略配置,改善监控指标及警报管理。

当前解决方案还至少部分地通过解决如何为存储元数据以及如何选择存储方式来减少了长时延网络中元数据的操作时延。在现有解决方案中,通常由于所用的存储方法,使得恢复延迟成为一个主要问题。保持文件系统的完整性并保持当前的文件数据操作需要频繁查找文件目录和文件统计(Stat)信息。也就是说,需要定期而不是仅仅一次自动执行远程备份,并且需要更新存储的内容和元数据。因此,元数据的操作性能与系统的整体性能和用户体验直接相关。由于分布式存储解决方案需要操作以查找元数据,所以部署在长时延网络之外的元数据服务器成为与系统性能相关的瓶颈。与以前的发明相比,当前解决方案的目的是在不降低性能的情况下使用长时延网络(如互联网)中的后端存储器。当前解决方案通过分离操作属性和内容引用减少了元数据的操作时延,这些操作属性和内容引用存储在分布式元数据存储器中,包括本地机器中可能的存储器中。

当前解决方案通过实施异步方法进一步改善了与长时延网络中文件内容操作(如Read和Write)有关的用户体验。通常,长时延网络会对文件内容操作的性能产生负面影响。性能取决于瓶颈链路,瓶颈链路通常在用户设备与后端存储器之间的网络中。在本发明背景下,用户设备可以是服务器、手持设备或配备网络接口以存储用户数据的独立计算机,其中的用户可以是个人或群组(如企业)。典型的同步方法会直接对用户体验产生负面影响,因为用户必须等待长时延网络中后端存储器的响应。该解决方案使用异步方法来减少长时延网络中用户设备和后端存储器之间的时延。该方法无需等待后端存储器响应,而是会提前返回响应,尤其是在请求作为中间状态在本地暂存的情况下会与批处理同步调度请求,使得结果稍后异步更新。

以下是本发明旨在解决上述难题的其他独特且新颖的解决方案,这些解决方案克服其他解决方案在数据存储方式上的局限性。

人工智能(AI)辅助优化配置。本发明使用AI优化后端配置以向不同的后端存储器和后端配置提供抽象级别的控制。当前解决方案提供了人性化的界面(包括图形用户界面GUI和(或)文件系统界面),以及用作解释器和推理模块以导出详细存储配置的语言。参见图1,Al的应用包括但不限于(i)通过优化数据分布来优化存储成本,(ii)基于用户数据访问模式以及用户和存储器的位置信息来优化数据访问时延,以及(iii)通过动态更改用于数据重建的分片数量来提高安全性级别。在使用Al算法时,当前解决方案从用户的文件操作事件中采集匿名日志。参见图2,可存储文件操作事件日志,以供模式分析器分析,用以训练Al算法。一旦算法经过训练,就可将模型和参数部署到实际执行算法的Al辅助模块中。Al辅助模块从用户设备中接收事件以执行优化配置、异常检测等。数据位置保存在存储和加密的元数据中,并基于Al调整进行更新。

本发明背景下的其他AI示例性应用包括:

(1)优化存储选择——性能

系统采集与存储相关的上传和下载事件(以及可能更普通的访问),以测量每个后端存储器的经验速度。在存储分片且假设存储器数量大于待存储的分片数量时,系统会将更多分片存储到更快的后端存储器中,以最大限度地减少数据存储时延。由于时延是由存储速度最慢的瓶颈决定的,因此,最小-最大量算法可最大限度地降低每个存储器的最大分片存储值,从而减少整个数据上传时延。在获取分片以重建文件时,最小-最大量算法还从存储分片的总共n个存储器中选择了速度快的t个存储器,以最大限度地减少每个存储器的最大时延。

(2)优化存储选择——成本

系统采集文件访问频率,以将最少访问的文件迁移至冷存储器。为了便于讨论,假设有两层存储器,即热存储器和冷存储器,热存储器速度快但昂贵,冷存储速度慢但具有成本效益。现有服务基于存储时间或上次访问时间为存储区域的设置提供了简单的策略,以判定是否将数据迁移至冷存储器。由于本发明存储了n个分片并且需要n个分片中的t个来重建原始数据,因此,判定策略并不是一个非冷即热的二元选择,而是需要判定送往冷存储器和热存储器的分片数量、分片部分的数量或分片类型。本发明的系统定期采集分片存取事件和频率以计算存储器的估计成本,包括冷存储器的迁移费用。考虑到不同类型存储器的多个参数,本发明系统降低了配置的复杂性。该算法能够在综合考虑性能指标的情况下基于分片存取模式将数据从冷存储器随之迁移至热存储器。

(3)异常文件访问检测

自相关性是一项可应用于本发明的网络系统工作负载特征。例如,网络流量研究显示出了基于流量源和目的地的时间和空间相似性的常规模式(如每日)。在本发明的一个实施例中,系统使用了基于文件访问模式的自相关性,该文件访问模式主要显示每日和每周的相似性。这项特性使得能够使用深度学习和回归方法开发预测算法。因此,系统可根据该模式(例如,具有统计意义的不规则性或偏差,)判定非规则访问或偏差,并可由此向系统管理员发出恶意用户或恶意软件异常访问文件的警告。

减少长时延网络中元数据的操作时延。由于当前解决方案将分片的文件片存储到了多个后端存储器,因此,通过重建原始文件所需的信息来增强元数据。元数据通常也会存储文件大小、修改时间、访问时间等文件属性。根据对文件操作调用频率的观察发现,元数据操作的调用频率高于文件内容操作的调用频率。除此以外,文件系统的设计假设元数据的操作时延很短。因此,以前的解决方案需要局域网(LAN)中的元数据存储器(或服务器),这会因故障而产生不必要的丢失风险。然而,当前解决方案将元数据设计为适用于长时延网络,同时保持了分布式数据加密的特性。当前解决方案的元数据由“复制”数据和“加密”数据组成(见图10)。复制数据包含与文件内容无关的信息。文件名、大小、修改时间及其他文件属性存储在复制数据中。该解决方案允许系统在不采集多个元数据分片和解密数据的情况下获取数据。另一方面,将与文件内容、分块ID和分块加密密钥相关的信息存储为加密数据。为了保持元数据和加密密钥的分布式加密特性,当前解决方案使用了SSSS或等效物,SSSS或等效物使得元数据的安全级别比本发明中文件内容所需的元数据更高。因为SSSS不需要加密密钥,所以解密仅需要采集多个数据分片。因此,本发明通过存储器解决方案提供的不同身份验证和安全解决方案将分布式存储器作为信任根。

通过将编码元数据分片中的一个存储到本地设备(如用户设备或LAN的元数据服务器)中,使用分离复制数据和加密数据的方法来分配元数据份额还可提高元数据的操作性能。此外,该方法还允许当前解决方案将元数据份额存储在不同的位置以作为冗余副本和加密数据份额。

OpenDir和Stat——元数据操作示例。用户打开目录时,文件系统应返回其子目录信息列表,即文件和目录。为了列出目标目录的每个子目录信息,元数据存储器需要基于对象名称或前缀来提供元数据选择功能。本发明可使用本机目录结构、键值存储器和(或)数据库系统来实现目录系统。由于本地存储了一组元数据份额,因此无需远程元数据文件即可识别出子目录和文件。也就是说,当前用户可以“解锁”存储在本地设备上的元数据,并仅识别其希望恢复的那些文件。

对于以下操作,Stat操作应返回存储在该组元数据份额中作为复制数据的文件属性。因此,Stat操作以轻量级方式实现,即查找存储在本地设备中的相应元数据份额。

Read——文件内容操作示例。由于本发明中使用SSSS(但不限于SSSS)技术对分块ID加密,因此,解码分块ID需要使用两个或更多元数据份额。这意味着应从远程元数据服务器中获取至少一个元数据份额,这比简单的元数据查找操作需要更长的时间。但从远程存储器下载元数据份额的时间明显短于下载文件内容的时间。此外,与元数据操作不同,文件内容操作的请求频率不如元数据操作。因此,对于下载完成时间而言,从远程服务器下载元数据的额外时延并不是文件读取操作的重要因素。

将异步内容转发至远程存储器。当前解决方案通过在将编码内容发送到远程存储器之前在用户设备中暂存编码内容来改善用户体验。因此,当前解决方案会提前将结果返回给用户,并通过将数据异步发送到后端存储器来减少时延。例如,在当前文件系统接口接收到文件内容操作请求(如写入文件)时,该操作在编码内容作为暂存状态存储到本地缓冲区之后将结果返回至用户界面。批量调度暂存状态,以在后台异步完成。由于将用户设备和远程存储器之间的时延与面向用户的交互解耦,该设计在写入文件时显著改善了用户体验。

从远程存储器中预取和缓存文件内容。由于远程存储器与本地存储器之间的时延间隔大,预取和缓存改善了读取操作的完成时间和用户体验。与文件写入操作不同,文件读取操作通常是按需操作,按需操作需要在用户想要读取文件之后立即传送数据内容。为了减少从远程存储器下载所需数据片的时延,当前解决方案基于用户的文件访问模式预取所需的数据,其中的文件访问模式由本发明的AI模块计算获得。该模块利用时间自相关、用户ID、应用程序的类型、缓存存储器的容量等来判定缓存数据、预取数据等的使用期限和替换周期。

以前的解决方案针对分布式存储系统,该分布式存储系统使用了多个后端存储器并通过使用纠删码或SSSS(或其变体)提供了集成层。虽然有些解决方案在WAN和LAN中引入了不同的后端存储器,但提高可管理性和效率的问题仍未解决。当前解决方案解决了部署在WAN和LAN中的分布式存储系统的这类问题及其他问题,以改善其可配置性和性能(即时延)。为了克服后端存储器配置在成本、性能和安全性方面的复杂性,本发明采用了AI模块,包括事件日志采集器(接口)、数据分析器(算法生成)、算法训练器(参数调谐器)、模型部署器(批处理)和执行器(处理器)(见图1和图2)。

本解决方案还解决了分布式存储解决方案中新出现的难题,即在后端存储器和元数据服务器部署在长时延网络(例如,互联网)中时出现的元数据及文件内容操作时延长的问题。当前解决方案通过减少元数据操作时延来改善用户体验,其允许一次性存储或检索从本地存储器中复制的元数据的一部分,其中,元数据操作的调用频率比内容操作高。同时,当前解决方案使用SSSS(或等效物)加密与内容相关的元数据(例如,分块ID),以通过分布式方式来保证元数据的安全。写入文件时,将文件内容异步转发至远程存储器使得数据存储过程与面向用户的过程解耦,以在完成内容上传至远程存储器的任务之前提前改善对用户界面的响应。读取文件时,AI辅助预取和缓存可根据用户的文件访问模式、应用程序类型等将所需的数据内容放置到本地设备中,从而提供更好的预测。

除使用RS编码算法(或等效物)直接编码内容外,当前解决方案还对内容进行了加密,并且将RS编码算法用于编码加密分块,因为这种编码至少有助于实现高效存储。因此,当前解决方案使用AES-256(或等效物)加密分块内容并将其加密密钥单独存储到元数据中,而不是使用另一种算法(如可提供更强加密但更多开销的SSSS)。

与SSSS等其他方法相比,RS编码算法在存储和计算开销方面是有效的。由于当前解决方案已通过在编码前加密内容来克服了RS码的安全缺陷,因此可以使用其他注重效率和性能的类似算法。

SSSS(或等效物)用于加密元数据。元数据是内容加密的根密钥。尽管本发明可以使用其他的算法,前提是这些算法可提供相同的(t,n)或相似的阈值属性,但本发明使用了并且也需要强大的加密算法来保护元数据,其中的元数据与内容数据以不同的方式分开加密和存储。SSSS在理论上保证了其安全性,因此如果攻击者没有足够的分片,则无法进行暴力攻击。由于元数据的总体大小远小于文件内容,因此加密开销可忽略不计。

对于内容加密,SSSS的存储开销是n倍,而RS的存储开销仅n/t倍。然而,RS并不是针对密码学而设计的,因此其在算法中的随机性有限(RS为静态且比较容易逆向)。该解决方案还通过对RS码上的内容分块使用AES-256(或其他加密)来改善随机性,同时还实现了n/t倍的存储开销。为保护AES-256(或等效物)加密的加密密钥,第二链使用SSSS对密钥加密并将密钥分片存储在元数据分片中。

文件内容分块有几个原因。首先,分块可提供识别重复内容的能力,因此可通过仅存储内容的一个副本及其引用来提高存储效率。其次,分块可提高安全性。攻击者需要知道所需分块的引用才能获取文件内容。再次,分块可提高数据存储及其位置的灵活性。

本发明的系统还涉及端到端安全性的实现,而不考虑存储架构和环境。将文件加密或解密操作集成到元数据和数据读/写操作,这在最大限度上减少了中间人攻击漏洞和性能减退。本发明的系统架构还通过分离控制路径和数据路径来增强端到端的安全性。

参见图3,本发明的文件编码算法(也称为加密链)旨在使数据或元数据加密与数据存储策略相结合。这也是信息-理论密码学和计算密码学的结合,对于信息-理论密码学即使对手拥有无限的计算能力也无法破解,对于计算密码学无法在足够短的周期内用当前的计算技术进行破解。

注意,与现有解决方案不同,在本发明的架构中,客户端

本发明的加密链由两部分组成:文件加密链和元数据/密钥加密链。文件加密链包含内容文件的分块。本发明的方法对每个分块加密,然后对加密的分块进行分片。每个分块都是内容文件的一部分,通常可用于识别重复数据片

文件加密链。文件及其元数据是该推荐加密链算法的输入。该算法生成数据分片(加密文件)和加密元数据。在进入文件加密链过程之前,需定义纯元数据M=(I,A),式中,I是分块ID的有序列表,A是文件属性集。

分块(Chunking)是将文件拆分为更小的块(称为分块),使得C={c

元数据/密钥加密链。元数据优选跨多个存储器存储。存储元数据时,优选利用SSSS对所需的分块(分块ID)的引用进行安全加密,这确保了元数据/密钥加密链的理论安全性。加密的分块ID以{id′

因此,作为内容和元数据的整体加密解决方案,该加密链是一个(C,I)→(C′

解密链。数据解码是加密链的逆向过程。从不同的元数据存储器或密钥存储器中采集加密的元数据/密钥是常规文件操作所需的过程,通过该过程可采集到所需的密钥分片以解码加密密钥和分块ID。然后,采集所需的数据分片以重新生成加密分块。最后,在对分块解密并按顺序拼接分块后重建原始文件。

图4示出了系统架构的示例,包括系统组件、交互和过程步骤。用户设备对内容和元数据加密(和解密),并且在用户设备和存储器之间同步数据。I/O逻辑模块是与用户通信的接口。如果I/O逻辑模块接收到打开(Open)、读取(Read)、写入(Write)等文件I/O请求,事件处理器通过劫持本地文件操作事件处理请求,以执行附加加密链用于文件处理。为了保证端到端的安全性,本发明优选在将数据内容存储到存储器之前,将执行清除(Flush)、Fsync和关闭(Close)处理器作为文件加密的位置。

可用的方法有几种,包括但不限于轮询、随机和最小-最大量等算法。在本发明的一个实施例中,最小-最大量算法使用传送至存储器的传输速度经验数据最大限度地降低每个存储器的最大传输时间。上传时,如果可用的存储器多于编码参数n(每个分块存储分片的数量),则此处所用的最小-最大量算法会将更多的分片存储到速度更快的存储器中。下载时,通过从存储相应分片的n个存储器中选择较快的t(重建分块所需的分片数量)个存储器来使当前的最小-最大量算法更有用。也就是说,当重建一个分布成n个分片的文件时,需要t个分块。

作为文件加密链的链接链,元数据/密钥加密链生成多个元数据和密钥分片;这些元数据和密钥分片包含加密信息,如元数据分片中的一个或多个加密的分块ID和由SSSS加密的密钥。加密元数据文件中的一个存储在用户设备的元数据存储器中。具体地,将元数据分片文件的副本存储在本地设备中以减少元数据的操作时延。其他元数据和密钥分片文件存储到元数据存储器或密钥存储器中,该元数据存储器或密钥存储器可根据用户的偏好配置在单个存储节点或者逻辑独立或物理独立的存储节点上。

同步处理单元411基于其知识库计算用户设备和存储器之间的数据传输定时。同步处理单元还使用其知识库来选择或识别分片和加密元数据文件的位置。该项任务旨在优化成本、性能、安全性等。

将数据传输请求推送至请求队列,而连接器获取相应请求以通过网络执行数据的实际存储器。将来自存储器的响应消息推送至响应队列,对数据存储请求的异步响应进行序列化。获取响应以更新分片和加密元数据存储状态。如果I/O请求需要数据传输同步,I/O事件处理器等待直至采集到相应的响应。

系统可通过集成加密链并利用信息分散理论为存储数据提供端到端的安全性。端到端数据安全性是一个具有挑战性的主题,因为:1)终端用户设备到存储后端位置之间的时延远高于数据中心的机器之间的时延;2)系统的性能受最有限的组件的限制;以及(3)资源控制和环境设置受限的。客户端和元数据服务器之间的网络高时延会影响元数据操作的性能。

由于元数据包含组装文件内容所需的关键信息,因此将其全部存储在终端用户设备上可能存在很高的风险。如果元数据存储在代理服务器(或多个服务器)上,则元数据查找操作会成为系统性能的瓶颈,其中,元数据查找操作的调用频率比元数据查找操作更频繁。例如,Ceph的方法包括将元数据存储至分布式服务器,同时平衡元数据服务器之间的开销,其中的分布式服务器在逻辑上与内容存储器不同。端到端解决方案中的难题在于无法充分预测客户端与服务器之间的时延,从而无法设计出能够保证(近似)最优或近似性能的系统。编码或解码、重复内容识别(通常称为数据去重)和数据或控制通道设计等功能的分解决定了系统的功能和性能,因此,应仔细设计硬件的计算能力、预期网络时延以及操作频率。

关于本发明的“n取t”方法,该方法多次在多个方面产生重要意义。首先,在项目解析为n个单元时,本发明使用了多次。但是,在每种情况下,n都是不同的值。同样地,每个不同的t也可以是不同的值(尽管两个或更多t和(或)两个或更多n也可以是相同的值)。本发明的n取t方法优选针对解析数据内容片的数量,并且分别针对解析的元数据片的数量和内容数据的每个加密分块的数据分片的数量。

当涉及重建时,n取t方法变得很重要。

用公式表达文件加密链和元数据/密钥加密链通常是在数据处理单元中执行的计算任务。如前所述,文件加密链对数据分片编码或解码,然后再对提供类似功能的元数据/密钥加密链编码或解码。数据分片暂时存储在分片缓冲区,直至调度分片同步至数据存储器。

图4还示出了系统概况。该以客户端为中心的架构是可能的部署方案的一个示例,显示出了部署到终端用户设备的组件。该终端用户设备可创建文件和元数据/密钥加密链,并可将加密数据分布到存储后端。客户端不限于个人电脑、笔记本电脑或手持设备等终端用户设备,还可以是其他设备,例如,企业服务器。

图4示出了本发明背景下用户设备401与存储池402之间的关系。用户设备401可以是编程为至少执行所示功能的处理器或一组处理器。如图所示,用户设备401负责加密、链接以及解密。用户设备401,包括:输入或输出装置,包括I/O请求引擎423(过程步骤1);用于传送文件内容(2)的输入或输出事件处理器403,包括但不限于至少一个输入或输出逻辑模块404;至少一个数据处理引擎或单元405,包括文件加密模块406,用于执行包括(3)文件分片、编码、解码、加密和解密分块及数据分片的功能;元数据/密钥加密模块407,包括功能(4),功能(4)包括元数据文件和密钥分片、编码、解码、加密及解密分片;存储引擎408和相关存储器,包括用于(5)识别数据分片和元数据/密钥分片以供上传和下载的分片缓冲区409和元数据/密钥存储器410;同步处理单元或引擎411,包括调度器412和存储选择器413,统称为请求队列(6);用于分配请求(7)的请求队列引擎415;网络接口引擎416,包括用于通过网络(8)传送数据请求的数据存储连接器418和元数据/密钥存储连接器417;以及响应列队引擎422,用于传输数据结果(9)以及更新分片和加密元数据/密钥状态(10)。用户设备401与各种远程外部存储池402通信,该用户设备可以是分布式的,并且包括数据419和元数据/密钥420存储器以及后备存储器421。

重建过程是分块、加密、分片和分布的逆向过程,该过程可通过(包括但不限于)具有图形用户界面(GUI)和(或)使用通用文件系统接口(例如,POSIX)的用户应用程序来实现。在本发明中,GUI或文件系统界面优选按文件名称和修改时间列出文件。本发明还支持其他更通用的文件系统接口(文件修改时间优选作为文件属性存储在元数据中)。这些接口需要强制文件属性,如文件名、修改时间、访问时间、大小等。因此,接口中示出的所有文件都具有属性,使得用户和系统接口中的每一个都可标识文件。

在重建文件时,需重建需要识别的元数据中的第一t个部分以重建元数据。按分块来说,元数据逐块包括内容数据的分块数据,因此每个分块需要标识出t个分片以重建每个分块(同样,每个t和每个n可能不需要逐块彼此不同,也不需要与元数据的n取t不同)。每个分块至少使用其关联密钥重建,该密钥以前存储并加密在元数据中。重建每个分块之后,按最初的排列方式排列这些分块,以重建整个文件并使其可再次使用。

如前所述,本发明中有许多可用的存储器,并且在优选实施例中,重建所需的项目更多存储在更容易访问(并且可能更昂贵)的区域中。此外,正如前面所提到的示例,这样的项目可以基于成本考虑从一个位置移动到另一个位置。因此,对于解析数据内容和元数据元素的持续存储迁移,可能会有一个已实现的算法。然而,包括n取多个t的方法在内的重建过程仍然是优选实施例。

文件重建示例。假设有一个加密文件F,该加密文件F的内容由一个分块C

当用户尝试重建文件时,用户界面通过访问用户设备中的一组元数据分片来显示所存储的文件。显示器通常显示文件名称和加密时间。用户可通过按名称选择文件来开始重建文件F。系统通过查找相同的文件属性来识别元数据后端存储器中对应的元数据分片。系统将两个对应的元数据分片M

文件名和修改时间是重建文件所需的初始组合。参照图4,为了确保端到端的安全性,将重建与文件打开操作集成,其中,指定了文件名称和修改时间。元数据/密钥加密模块407向同步处理单元411发出采集元数据和密钥分片的请求。存储选择器模块413基于优化参数(包括但不限于时延和成本)选择t个目标元数据/密钥存储器。如果未配置优选参数,则随机选择存储器。元数据/密钥加密模块407将分块ID和加密密钥解密成对应的分块。文件加密模块406请求采集分块ID指定的数据分片。数据分片的存储器选择与加密相同。文件加密模块406使用数据分片重建加密分块。然后使用加密密钥将加密分块解密成文件的普通分块。

控制服务器监管客户端以控制和监视其状态。控制服务器还配置数据存储器、元数据/密钥存储器和元数据/密钥后备存储器,但控制服务器不作为存储后端的代理服务器。控制服务器还提供管理员门户以控制总体配置,如数据存储器设置、元数据存储器设置、密钥存储器设置、状态监控、策略配置、访问控制等。控制服务器还负责用户和设备的初始身份认证。控制服务器可将身份验证程序与现有组件(如LDAP或类似组件)集成在一起。

数据存储器是用户数据实际存储的位置。数据存储器上没有执行代码。因此,数据存储器并不限于云服务,而是可以包括带网络的任何传统存储节点。元数据存储器和密钥存储器是存储文件元数据和加密密钥的位置。数据存储器、元数据存储器和密钥存储器可配置独立的(t,n)参数。元数据和密钥存储器与数据存储器的要求相似,因此,元数据和密钥存储器与数据存储节点可交替使用。存储器可根据性能和可靠性要求以及数据管理策略进行配置。元数据/密钥后备存储器存储与客户端设备上的元数据/密钥分片相同的元数据/密钥分片的重复副本。由于元数据和密钥分片由SSSS加密,因此复制同一组分片不会增加数据泄露风险。尽管这些数据存储器、元数据/密钥存储器和元数据/密钥后备存储器可通过LAN、互联网或混合网络部署,但也有优化部署准则:控制服务器可在云中或LAN中;元数据/密钥后备存储器在LAN中;或者数据存储器和元数据/密钥存储器在云中或云和LAN之间的混合网络中。

数据路径和控制路径分离。图5示出了在本系统中分离数据路径和控制路径的概况。除解耦元数据外,控制服务器与客户端之间的控制路径(长虚线)与客户端到数据存储器之间的数据路径(实线)在逻辑或物理上分离。

分离数据路径和控制路径甚至可以防止控制服务器的权限最高的管理员访问用户数据。通过利用每个数据存储节点提供的安全机制的多样性独立保护客户端和每个数据存储器之间的每个数据路径。由于控制路径独立于数据路径,因此部署控制服务器是一个灵活的过程,不会影响安全性和性能配置。

存储数据分片。为确保端到端安全性,I/O事件处理器会拦截Flush

存储加密元数据或加密密钥。完成文件加密链后元数据/密钥加密链被触发。加密密钥在本地元数据/密钥存储器中分片,直至调度传输至密钥存储器。与将数据和密钥分片存储到数据和密钥存储节点不同,存储元数据是一个与Flush、Fsync或Close调用同步的过程。因此,如果加密元数据存储失败,Flush、Fsync或Close返回失败码。

暂存数据。在上传分片到存储后端前,可通过减少终端用户设备中暂存数据的上传时延以及让用户更自由地调用数据存储器来改善用户体验。在本发明的存储器中,暂存数据有6种状态。请注意,状态4必须与状态3同步,因为必须先存储元数据才能继续该流程。

状态0:准备开始

状态1:使用随机生成的加密密钥对分块内容加密;编码数据分片(方框1进行中)

状态2:加密分块标识符(方框2完成)

状态3:存储元数据和密钥分片(方框3完成)

状态4:存储数据分片(重新访问方框1并完成)

状态5:结束

元数据操作

元数据存储选择。

M={M′

至少一些元数据总是存储至本地设备的元数据库中,这使得查找操作元数据的时延减少了。其余的元数据分片M′

同步元数据和数据内容。所有文件的元数据和数据内容都会定期同步。该过程根据分块状态,即仅本地状态、仅远程状态、本地状态和远程状态及中间状态计算引用计数器的计数。引用计数器用于调度分块编码和分布分片。该过程还可识别可完全删除的未引用分块。

数据删除。由于存储元数据更新是为了跟踪历史轨迹,删除操作不会删掉元数据或内容数据。文件更新时,系统会存储更新后的元数据而不会删除之前的版本,直至之前的版本数量超过预定义的数量。如果一个元数据文件应当被删除,则系统最终会取消该元数据与分块之间的引用。如果系统识别出引用计数为0的分块,则系统最终会从后端存储中删除这些块。

正常模式操作。图6示出了本发明的文件存储过程的逐步过程。如图所示,有8个相关步骤:

601Fsync——在客户端执行

602编码——在客户端执行

603暂存——在客户端执行

604存储元数据分片——在客户端执行

605存储元数据/密钥分片——从互联网到元数据/密钥存储器

606存储元数据/密钥分片的备份——从LAN到元数据/密钥后备存储器

607定时推送——在客户端执行

608存储文件分片——从互联网到数据存储器

每当接收到特定的系统调用事件,如Fsync和Flush,客户端就开始将相应的文件编码成加密链。当完成文件加密链过程时,暂存数据分片(准备推送到数据存储器)。然后,将元数据分片存储到客户端、元数据存储器和元数据后备存储器中。密钥分片也存储到密钥存储器和密钥后备存储器中。最后,当触发调度器执行时,调用暂存数据以存储到数据存储器中。

文件获取是文件存储的逆向过程。即使存在一定程度的存储失败(n个存储器中至少有t个可用,其中,t是RS码和SSSS码的参数),文件获取操作仍可作为正常模式执行(记录故障日志)。如果错误数量超过可配置阈值(可用存储器少于t个),则文件获取返回获取错误给用户。

有时,将客户端(例如,不限于丢失的客户端)列入黑名单可能是很重要的。图7示出了将老设备添加入黑名单并注册新客户端的过程。如果用户丢失客户端,则用户和(或)管理员将其报告给控制服务器。图中所示的过程步骤包括:

701添加丢失客户端黑名单——由控制服务器执行

702身份验证会话过期——由控制服务器执行

703-5拒绝访问

706注册客户端——由控制服务器执行

707发出恢复元数据指令——由控制服务器执行

708从后备存储器中获取元数据——由新客户端执行

709重新配置身份验证会话——由控制服务器执行

710-12允许访问

控制服务器将客户端信息放入黑名单并使所有用于与数据存储器、元数据/密钥存储器以及元数据/密钥后备存储器进行身份验证的会话到期。如果用户恢复或更换客户端设备,则要恢复文件时,必须由控制服务器授权新客户端。然后,由控制服务器发送一条指令消息,利用元数据/密钥后备存储器来恢复元数据。最后,控制服务器向新客户端提供访问数据存储器、元数据/密钥存储器以及元数据/密钥后备存储器的信息。

故障模式操作。如果存储失败数量未超过阈值,则故障模式操作允许用户继续使用系统。与不需要故障模式的文件获取不同,文件存储需要一种机制来处理后端上传失败错误,以使系统保持在受控和可执行的状态下。

图8示出了存在数据存储失败的文件存储的过程。该过程的步骤包括:

801Fsync

802编码

803暂存

804存储元数据分片

805存储元数据/密钥分片

806存储元数据/密钥分片的备份

807定时推送

808存储文件分片

809检测错误

810保存本地存储失败的分片

811在下一个预定时间重试推送

该过程与正常模式下的文件存储操作相同,直至将数据分片推送到数据存储器。如果客户端检测到存储分片出现上传错误,则客户端将分片保存在本地,其管理方式与暂存分片相同。然后,调度器(客户端内)在下一个推送周期重新调用具有新的其他暂存分片的分片。

图9示出了存在元数据/密钥存储失败的文件存储过程,这比数据存储失败更为关键。该过程的步骤包括:

901Fsync

902编码

903暂存

904存储元数据分片

905存储元数据/密钥分片的备份

906存储元数据/密钥分片

907检测错误

908回滚

与数据存储失败的模式不同,元数据/密钥存储失败时不允许系统继续文件存储操作。相反,正在进行的数据存储操作回滚。在恢复元数据/密钥存储之前,以前存储的所有文件仍然可以以只读模式访问。

图3示出了本发明的加密链创建实施例。文件编码方法(本文中称为加密链)旨在将数据、元数据/密钥加密与数据、元数据/密钥存储策略集成在一起。方法步骤包括:

1、创建文件加密链。

°将每个数据文件解析成分块以形成加密链。

°优选在用户设备而非集中式设备上发起加密链的创建。

°创建两个单独的加密链——数据文件加密链和通常稍后创建的元数据文件加密链。该元数据文件包括但不限于与数据文件加密链的加密方式相关的信息以及其他与元数据文件的加密和(或)分布相关的信息。

°在该实施例中,首先将数据文件分块,然后再加密。

°分块时,每个分块指定一ID并且该指定的ID包含在元数据中。

°然后,将加密的分块分成分片。

°最后,将分片发送至存储器,每个分片可能会移动至不同位置的不同存储介质中。

°优选地,数据分片中没有加密的元数据(但分块标识符嵌入在元数据分片中)。

2、数据文件加密使用常规的文件加密并随后结合里德-所罗门编码(RS码或等效物)进行分片。

°将每个数据文件解析成加密链,其中,文件分成分块,然后,再将每个块分成分片。

°每个分块都有指定的ID,该指定的ID可通过计算确定。

°元数据通过指定的ID增强,使得元数据包含各种文件属性(例如,但不限于名称、大小、修改时间和访问时间)和ID,其中,每个ID与特定的数据文件分块相关。

°将分块ID插入关联的元数据中。

°加密数据文件分块,然后使用RS码或等效物编码。

°然后再对加密的分块进行分片。

°因为RS码并不是针对密码学设计的,所以使用由本发明的处理器确定的加密密钥对分块进行加密,该加密密钥可在分块编码为分片之前随机生成,以供一次性使用。

°一个密钥可用于整个数据文件的分块、加密和存储过程,每个分块可使用不同的密钥,也可使用介于两者之间的某个密钥。密钥数量的判定操作可由本发明的处理器执行,并将结果存储在元数据以供分块等。

3、对于存储所需内容的引用的元数据,使用SSSS或等效物加密分块标识符(ID)。

°元数据分片文件存储块ID分片。

°对每个加密密钥本身进行分片。

°也使用SSSS或等效物对每个加密密钥(用于分块加密)进行加密。

°除SSSS加密方案外,还可使用其他替代方案。

°用户可指定重建文件所需的最低分片数。

4、将一组分块ID分片存储到元数据分片文件中,其中,复制的文件属性包括大小、修改时间等。加密密钥分片与对应的分块ID相关联。

5、将分块数据、元数据及加密密钥的分片存储到分布式物理或逻辑存储器或介质中。

6、该过程不需要集中式组件来计算数据、元数据及密钥的分片在多个存储单元之间的分布。

7、各种算法可用于提高存储效率和性能,以选择用于存储或获取分片的存储器。

图11示出了文件加密和元数据/密钥加密的示例。可配置参数t和n分别设置为2和3,以用于文件和元数据/密钥加密。该示例存储内容为“abcdefgh”的文件,同时允许3个存储器中有一个存储器出现故障。文件分为两块:“abed”和“efgh”。计算分块内容的SHA256哈希值,以生成分块的引用(称为分块ID)。在该示例中,8c3f=Sha-256(“abcd”)和a3dc=Sha-256(“efgh”)为分块ID。将这些分块ID存储到元数据(JSON格式)中。分块内容“abed”和“efgh”分别使用随机生成的密钥“y2gt”和“5xkn”进行加密。因此,分块内容加密为“X?2#”和“&$cK”。然后,使用里德-所罗门编码(RS码)对分块内容加密。将加密的分块内容“X?2#”编码成3个分片:“kg”、“dh”和“%f”。要重建“X?2#”,需要3个分片中的任意2个分片。还是使用相同的方式对加密后的分块“&$cK”进行加密。最后,将数据分片存储至数据存储节点。

用于加密分块内容的密钥与对应的分块相关联。为了保护分块引用信息(分块ID),使用SSSS对分块引用信息加密,这也需要3个分片中的任意2个进行解密。将分块ID“8c3f”加密为“ct1d”、“jfy2”和“7g72”。其他分块采用相同的方式编码。分块ID分片单独存储到元数据分片文件中。加密密钥“y2gt”也使用SSSS加密为“3cd2”、“ziaj”和“pzc8”。其他加密密钥“5xkn”也采用相同方式编码。最后,通过在不同位置存储3个不同的元数据分片文件和密钥分片文件来保护元数据和密钥。

只有当3个元数据文件中的2个可访问时,才能获得分块ID“8c3f”和“a3dc”。使用这些分块ID可找到数据或密钥分片并重建加密的分块内容“X?2#”和“&$cK”。最后,使用加密密钥解密加密的分块内容,并通过拼接解密的分块获得原始内容“abcdefgh”。

数据完整性验证。在允许一定程度的同时失败时,存储多个分片需要一个过程来计算数据存储状态,这通常是一项输入或输出(I/O)密集型任务。为了提高数据完整性验证的效率,本发明的系统采用了仅可在典型的存储和操作系统上使用的典型列表对象(或文件)操作来计算数据存储状态。(1)从包含文件路径、修改时间和文件状态的元数据存储器中获取元数据分片对象的列表。(2)从包含分块ID的数据存储器中获取数据分片对象的列表。(3)从包含关联分块ID的密钥存储器中获取密钥分片对象的列表。(4)根据文件路径和修改时间相同的元数据文件集对出现在列表中的元数据文件计数。如果文件集中的元数据文件数为n,则可确保元数据文件的完整弹性不受存储失败的影响。如果元数据文件数小于n且等于或大于t,则相应的元数据可解密,并且元数据集也可从存储失败的文件中恢复以拥有完整弹性。如果元数据文件数小于t,则元数据文件损坏。(5)根据分块ID对列表中出现的数据或密钥分片计数。如果分片集中的分片数为n,则每个分块、元数据和加密密钥允许n-t次存储失败,这是给定参数t和n的最大容差。如果分片数小于n且等于或大于t,则该分块可解码,并且分片集可从存储失败的分片中恢复以拥有完整弹性。如果分片数小于t,则分块损坏。尽管该过程无法识别出损坏的文件,因该过程不会读取元数据文件内容以查找文件和分块之间的映射,但总体完整性和数据存储状态是通过对存储进行较少的列表对象操作来计算的。该过程可在每个客户端设备上执行,也可在其他集中式实体(如控制服务器)上执行。

总的来说,本发明包括许多新颖和独特的领域。其中包括:

·文件和元数据/密钥加密链:将RS码和SSS应用于文件的加密分块和分块ID或密钥内容,以提供文件和元数据/密钥集成编码。

·端到端安全:将文件和元数据/密钥加密链集成到文件系统操作中,以防止文件系统接口和存储后端之间的安全漏洞。

·系统实现:在考虑长时延网络(例如,互联网和广域网)和用户体验的同时,设计和实现系统组件。

-以客户端为中心的架构确保了端到端数据保护解决方案的设计和实现。

-加密链:使用(t,n)阈值保持属性加密内容和元数据。

°存储效率和纠错码尺寸最小化是内容加密的首选。

°元数据加密需要随机性和理论密码学。

-AI辅助配置与异常监测和检测。

以客户端为中心的架构。根据客户端的定义,该解决方案的架构旨在实现以客户端为中心的实施方式,以确保客户端与数据、元数据/密钥存储器之间的直接通信。从客户端到存储端,客户使用不同类型的存储器提供的协议和通道。协议和通道的多样性在客户端实现,在后端运行的代码最少或零修改。

对于分布式存储解决方案而言,实现以客户端为中心的架构比在服务器端实现更具挑战性,因为客户端不是一个像服务器的共享组件。因此,客户端让过程实现有效同步,以克服分片组件缺失的局限性。当前解决方案直接访问并非设计用于分片和集中式资源的分布式存储器中的元数据,从而克服了性能局限,包括对元数据部分地编码和将版本存储到客户端导致的元数据访问时延。

为了实现客户端,配备网络的客户端设备需要有用户数据I/O接口、数据处理单元、硬件存储器、同步处理单元和网络接口。在该示例中,数据I/O接口接收读Read、Write、List等数据I/O请求。该解决方案将POSIX文件接口(但不限于POSIX文件接口)作为数据I/O接口来实现。数据I/O接口可以实现关键值存储、CRUD(创建—读取—更新—删除)接口功能等。数据处理单元通过实现文件和元数据/密钥加密链将数据加密并编码为分片。硬件存储器在将中间状态和处理中的数据发送到存储器之前存储该中间状态和数据。硬件存储器需要访问控制,以防止未经授权的实体访问中间状态和数据。同步处理单元负责发送和接收分片。同步处理单元基于知识库调度发送或接收任务,该知识库存储经验性能以及客户端和存储器的配置。同步处理单元还判认可用存储节点之间的分片位置,这也是基于知识库判定的。同步处理单元运行Al引擎,根据用户的配置优化参数。同步处理单元中的这种异步发送和接收任务通过在发送数据到存储器之前响应用户和为未来扩展调度算法提供灵活性来减少时延。

该解决方案定义了三种类型的数据存储器——数据存储器、元数据/密钥存储器和元数据/密钥后备存储器。这些存储器为客户端提供了身份验证和数据I/O接口。数据存储器需要具有成本效益且可扩展的解决方案,而元数据和密钥存储器则需要存取时间快速。元数据/密钥后备存储器的要求与元数据/密钥存储器相同,但其位于用户域中。

控制服务器是一个用于配置后端存储器,管理用户、设备或策略以及向客户端发送指令的门户。控制服务器与数据传输通道完全分离,以防止在中间拦截用户数据。控制服务器将配置部署到客户端,使客户端可通过获取所需的参数、请求重定向等来启动一个进程。

人工智能配置。由于后端接口的复杂性和服务的多样性,要想在最大限度地提高满意度的同时根据预算优化配置极具挑战性。本发明提供了配置层的抽象层,以减少后端配置的时间和精力。本发明旨在优化运营成本和性能,并基于后端存储器的成本和性能经验数据监测和检测异常以及行为参数文件。客户端采集事件数据并进行匿名化、重新格式化等预处理。在采集事件数据后,客户端将事件数据发送到数据采集服务器。

优化配置以降低运营成本克服了后端存储配置的复杂性,并且通过根据数据存储或访问成本、经验存储性能、对等体组的使用率配置文件、预定义静态模型等将分片分布到优化的后端存储器中降低了运营成本。

当前解决方案还利用已实现的架构的优点来改进响应性。当前解决方案克服了后端存储的复杂性,同时减少了数据访问和存储时延。与优化运营成本不同,将更多分片分布到快速存储器的优先级应高于存储成本。除这两种情况外,系统还可配置为在成本优化与性能优化之间实现平衡,例如,通过使用简单的加权和方程。

在本发明中,用于行为分析的AI算法不会调查用户数据以检测系统异常。这些算法广泛用于检测未知攻击,但需要正确定义正常状态以减少误报错误。本发明使用行为分析算法来发现异常。紧密拟合模型的准确率低,而松散拟合模型的召回率低。系统基于客户端采集到的数据自适应地更新正常状态与异常状态之间的分类器。本发明利用了个人用户和用户组的数据访问模式的特征。

以下为本发明优化的参数:

-优化1:最大限度地降低数据存储成本和数据访问成本的分片存储指标变量;

-优化2:最大限度地降低数据上传或下载完成时间的分片存储指标变量;

-优化3:部署优化1或优化2时,最大限度地减少分片重新分配的成本;

-优化4:随时间判定正常和异常数据访问的分类器;

-优化5:随时间判定正常和异常存储访问的分类器;

-优化6:判定来自客户端的正常和异常错误的分类器;

-为了实现这些优化,本发明会采集以下内容:

-后端存储器的成本和(定量)服务级别协议(SLA);

-每个客户端的后端存储器的经验吞吐量;

-操作文件内容的时间戳;

-操作名称;

-分片访问计数;

-匿名文件标识符;

-匿名客户端标识符。

虽然上文中描述了本发明的一些常见应用,但应当清楚地理解,本发明可与任何网络应用程序集成以提高安全性、容错性、匿名性或者前述或其他相关属性的任何适当组合。此外,鉴于本文中的公开内容,其他组合、增添、替代和修改对本领域技术人员而言是显而易见的。因此,本发明不受优选实施例的反应限制。

虽然为了清晰起见,上文中对本发明做了相当详细地描述,但在不偏离本发明原理的情况下可做某些更改和修改是显而易见的。应当注意,有许多替代方式可同时实现本发明的进程和装置。因此,本实施例应视为是说明性而非限制性的,并且本发明并不限于本文中给出的具体细节。

本文中描述的方面可具体表现为一种系统、方法或计算机可读介质。在一些实施例中,所描述的方面可在硬件、软件(包括固件等)或其组合中实现。一些方面可在计算机可读介质中实现,包括由处理器执行的计算机可读指令。可使用一个或多个计算机可读介质的任意组合。计算机可读介质可包括计算机可读信号介质和(或)计算机可读存储介质。计算机可读存储介质可包括能够存储计算机程序的任何有形介质,以供可编程处理器通过操作输入数据和生成输出来执行本文中所述的功能。计算机程序是一组指令,可在计算机系统中直接或间接用于执行特定功能或判定特定结果。

一些实施例可通过云计算基础设施提供给终端用户。云计算通常包括通过网络(例如,互联网等)提供可扩展计算资源作为服务。虽然本文中描述了多个方法和系统,但可预计单个系统或方法可包括上述主题中的一个以上。因此,上面的多个系统可在单个系统或方法中一起使用。

本申请中公开的示例在各方面均被视为是说明性而非限制性的。本发明的范围由所附权利要求而非前述的说明书界定,并且在权利要求的等效含义和范围内的所有变化都应包含在本发明的范围内。

附图中的流程图和(或)框图示出了根据本发明构思的各种示例性实施例的系统、方法和计算机程序产品可能实现的架构、功能及操作。对此,流程图或框图中的每个图块均表示模块、段或指令的一部分,包括用于实现指定逻辑功能的一个或多个可执行指令。在替代实施方式中,图块中标注的功能可能与图中标注的顺序不符。例如,连续示出的两个图块实际上可以基本上同时执行,或者有时也可根据所涉及的功能以相反的顺序执行。还需要注意的是,框图和(或)流程图中示出的每个图块以及框图和(或)流程图中示出的图块组合可由基于专用硬件的系统实现,这些系统可执行指定的功能或动作,或执行专用硬件和计算机指令的组合。

[1]S.A.Weil;S.A.Brandt;E.L.Miller;D.D.E.Long;C.Maltzahn·“Ceph:可扩展的高性能分布式文件系统”第七届操作系统设计和实现研讨会(OSDI)·2006年11月。

[2]虽然偶尔会使用“客户端”一词,例如,在述及代理服务器时,但术语“用户设备”在本文中假设包括各种类型的客户端,该“用户设备”可以是独立服务器或计算机或某些其他计算设备。

[3]KyoungSoo Park;Sunghwan Ihm;Mic Bowman;Vivek S.Pai·《使用CZIP压缩支持实用内容寻址缓存》·2007年USENIX年度技术会议论文集·美国加利福尼亚州圣克拉拉·2007年6月17日至22日。

[*]Flush和Fsync是将主存储器中的数据同步到物理存储设备的文件系统调用。Fsync是Flush的低级系统调用。

相关技术
  • 一种具有分布式冷热源的大型集中空调系统的控制方法
  • 具有增强的安全性、弹性和控制的分布式数据存储方法及系统
  • 具有增强的安全性、弹性和控制的分布式数据存储方法及系统
技术分类

06120116337503