安全是有分量的

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

2022-01-11 22:20栏目:安全

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

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

问题

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

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

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

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

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

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

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

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