DDOS防御专家-提供超强DDoS高防/CC防护/大流量清洗服务!
当前位置:主页 > WEB安全 > 正文

ddos防御工具_阿里云防ddos_3天试用

06-29 WEB安全

ddos防御工具_阿里云防ddos_3天试用

在本文中,我们将研究一种特殊的隐私保护加密方案:ORAMs。缩写ORAM代表不经意的随机存取机器,一种用于匿名化可信域和不可信数据存储之间的存取流的技术。正如我们将看到的,这有很多有用的应用程序,对隐私和安全具有潜在的实际影响。简言之,其思想不仅是对静止数据进行加密,而且还对其进行动态洗牌,从而使恶意观察者无法区分读写操作。在我们深入研究细节之前,让我们更好地解释一下安全场景。

问题

在现代数字世界中,本地和远程资源之间存在着巨大的鸿沟:需要在某个位置使用的数据通常存储在不同的位置,只在需要时才访问。这样做是出于成本、可用性和效率的考虑,无论是在大规模(想想云存储)还是在小到非常小的规模(比如内存总线将CPU连接到内存库的情况下)。如今,甚至某些操作系统通常也只不过是与远程云提供商的接口。如果在一方面,这有很多实用的优点,另一方面它会带来安全和隐私问题。此服务器对用户的信任程度如何?在理想的情况下,服务器的角色只是向用户提供数据并记录相关的修改,但实际上很多事情都可能出错。用户可以建立与服务器的加密连接,以保护中间的恶意第三方的数据安全,但服务器最终将成为数据保存的最后堡垒。服务器本身的安全性可能不高,或者服务器本身可能是恶意的,拦截甚至修改用户的数据。

一种解决方案可能是对服务器本身强制信任,但这并不总是可行或合理的。此外,在现代云基础设施中,没有单一的"远程服务器",通常甚至很难跟踪某个数据块的位置。这意味着一个有效的解决方案应该是不可信的,只依赖于用户的行为来保护数据。

在这个方向上的一个想法是用用户的客户端应用程序本地保存的对称密钥加密远程存储的数据。每当客户机需要读取存储在特定位置的数据时,客户机将向服务器请求特定的加密数据块,服务器将其传输给客户机,然后客户机将对其解密并读取解密的数据。如果操作涉及在某个位置写入数据,则客户端将对数据进行本地加密(使用相同的密钥),并请求将其上载到所需位置的服务器。但是,这种方法有两个问题:

服务器仍然能够知道正在访问哪个数据位置;和很明显,客户机是在执行"读"还是"写"操作。

这两个问题在实践中都很关键。例如,医生代表患者访问可能的诊断测试数据表数据库可能会暴露患者的敏感健康状况,财务信息可以通过监控证券交易所的加密账本推断出来,另一个例子是:一个(可信的)CPU,它需要访问存储在(不可信)内存库中的数据。在硬件设计中,可以合理地保护CPU不受外部操作(例如在智能卡中)的情况并不少见,但使用内存本身这样做将被证明是不切实际或非常昂贵的。例如,这就是为什么智能卡通常只有几KiB的受保护内存的原因。虽然这足以存储,例如,用于保护其余的大容量、不受信任的内存的加密密钥,敌方截获CPU与内存之间的通信总线,cdn高防原理,仍然可以提取有用的信息,危及系统的安全性

以上例子归结为一个简单的点:当存储不可信时,加密数据是不够的,即使存储在对用户发起主动攻击的意义上不是恶意的,因为访问模式可能会泄漏信息。非正式地说,ddos攻击防御极贵,"访问模式"是仅通过查看通信信道和操作前后存储器的状态变化就可以提取的信息。实际上,这相当于考虑对抗性存储系统(服务器、内存库等)的情况。更正式地说,ORAMs提出的安全模型是一个"诚实但好奇"的对手:这个对手不修改信息流(不干扰协议),防御cc的cdn,而是被动地观察用户的访问模式以提取机密。

因此,鉴于访问模式暴露了敏感信息,光靠加密还不足以隐藏这些访问模式,有有效的防御措施吗?

ORAM:从形式上讲,不经意的随机访问机(ORAM)是一个编译器,它可以将任何程序转换成另一个与原始程序具有相同功能的程序,但是转换程序的访问模式独立于原始程序的访问模式。为了实现这一点,将原始程序的读写操作替换为不经意的读写操作就足够了。一个ORAM可以被看作是一个模拟器,被CPU看作是一个内存接口,反之亦然。这个定义在客户端-服务器场景中被更好地理解(但是CPU内存的情况类似)。考虑下面的小例子:客户端C想要在远程的大数据库上执行读写操作。不受信任的服务器。数据库是用C拥有的对称密钥加密的。每当C要对数据库执行操作时,它都会执行以下操作:

C向S发送一个请求以下载整个数据库。C解密整个数据库,对所需的元素执行操作,然后重新加密数据库(使用相同的密钥)。最后,C将重新加密的整个数据库重新上传给S.

注意这里的两个问题:

如果操作是"写入"(即数据库的一个或多个元素被修改),那么S可能会在给定的位置检测到修改,因为加密密钥是相同的,因此可能会保持对未触及元素的加密不变。这是固定的:为了避免这种情况,C必须使用随机的(即语义安全的)对称密钥加密方案,例如具有适当操作模式的分组密码、变量IV和良好的随机性源(因此,京东如何防御ddos,没有OTP或类似的)。这种琐碎的方案显然效率不高,因为每次C都必须在本地下载和处理整个数据库。在我们考虑的模型中,C甚至可能没有足够的存储空间来完成这项工作。因此,另一种方法是必要的。

ORAM的思想是以更有效的方式实现与上述方案相同的安全级别。对数据库中的每一个加密元素都进行随机加密,而不是在每个加密位置进行随机加密。乍一看,ORAM方案的工作流程如下:

给定数据库上的元素位置/索引以及对其执行的操作,确定远程存储的一个子集,该子集肯定(或至少很有可能)包含所需的元素。从该子集下载。这不仅仅是下载一个元素,而不是下载整个数据库。在本地解密下载的子集。找到所需的元素并对其执行所需的操作。洗牌部分或所有数据库元素在子集中的位置。C使用内部状态跟踪位置。使用C存储的相同对称密钥,使用随机化方案重新加密子集。将新加密的子集重新上传到S.

性能和安全性之间显然存在权衡,这取决于子集的大小,但通过巧妙的工程设计,结果可以得到优化。举个例子,

pathram

2012年Stefanov等人提出的pathram方案在实现高效ORAM方面取得了巨大进步,

在pathram中,一个大型数据库存储在以二叉树结构排列的服务器上。树的每个节点都是一个bucket,其中包含一个固定数量的加密数据库块(本例中为三个)。每个块都使用存储在客户端C上的密钥通过语义安全的对称密钥加密方案进行加密。

从C的角度来看,数据请求是一个元组(op,id,data),其中op可以是"读"或"写",id是数据库位置标识符,数据是在写操作的情况下要写入的新数据,或者在读操作中什么都没有。客户端还本地存储一个位置映射,它是一个将每个数据库位置id映射到一个树叶标识符的表。作为第一个近似值,这个本地存储的表的条目数和数据库中的元素数一样多,因此可能不清楚客户机存储的性能提高了多少。但是请注意,在实践中,数据库块可能比位置图中的单个条目大得多;此外,我们将在后面讨论如何进一步减小此表的大小。最初,在pathram初始化期间,位置映射用随机值初始化。

当执行数据请求时,C查看与块标识符对应的叶标识符的位置映射,ddos云服务防御,并将此叶标识符传递给S.

注意此叶标识符如何唯一地精确定位到二叉树中的一个叶,从而精确定位到树的根和叶之间的一个完整分支。

然后将此分支(其大小仅与数据库的大小成对数,因此通信增益)发送给b

版权保护: 本文由 DDOS防御专家 原创,转载请保留链接: /web/70500.html

DDoS防御专家简介孤之剑
国内资深白帽子二十人组成员,前BAT资深网络安全工程师,知名网络安全站点板块大神,每年提交Google及微软漏洞,原sina微博负载插件开发者,现在整体防御复合攻击长期接受1-4.7T攻击,CC防护自主开发指纹识别系统,可以做到99.9999%的无敌防御。
  • 文章总数
  • 9325402访问次数
  • 建站天数

    QQ客服

    400-0797-119

    X