我们看谍战片的时候,经常会看到地下党员接头的时候,为了防止自己被跟踪,都要七拐八拐,这里坐一会儿,那里待一会儿,这边买点啥,那边聊两句,作用就是防止自己被人跟踪,从而暴露自己的同志。毕竟如果有特务发现,一个有嫌疑的人,天天没事就去某个路边摊买煎饼,就算是绕路也要去。那么那个卖煎饼的人很可能就是消息接头人,搞不好就一起被抓了。所以从事这类工作的人,通常都需要尽可能的避免自己的主要目的地被发现,所以会通过随机做一些杂七杂八的事情,来保护好自己要接头的对象。
在网络时代,各种重要的信息都在网络上通信,因此难免被别有用心的人进行监听、窃取。毕竟我们生存在一个零信任网络()之中,因此,我们需要对每一次重要的访问进行处理。通常,我们会使用各种加密算法来保护自己的数据隐私,例如上传身份证号、用户名、密码、家庭住址等重要的时候,这个数据肯定是要被加密的。通常我们会使用对称加密算法如AES、DES、3DES、Blowfish、RC6等,或者是非对称加密,例如RSA、DSA、ECC、Diffie-Hellman等。以及一些散列算法,例如MD5、SHA、WHIRLPOOL等。
但是这些加密技术只是对于信息本身进行了加密,保证信息本身难以被第三方破解,但是用户对于信息访问过程并不能被保护。而攻击者可以通过监听用户对于数据的访问模式和访问过程来推断出用户的很多隐私信息,例如数据的重要程度、数据的关联性、甚至还可以通过一些方法来推断出加密数据的内容。而这些信息则会暴露用户的一些重要的行为特征,例如兴趣爱好、社交范围等。比如说如果说某位重要人物,经常查询某一类药物,则很有可能他患有什么疾病。
因此,在信息时代的应用场景中,仅通过对数据本身的内容进行加密保护,并不能完全地保护用户的隐私,对用户的访问模式和访问过程的保护,也是一个关键的领域。
很多人都听说过一个故事,就是日本人从1966年《中国画报》上一张王进喜的照片,就判断出中国当时最大的石油基地大庆油田的很多信息。例如他们从王进喜的衣服判断,只有在北纬46度到48度的区域内,才需要穿成这样,所以油田位于齐齐哈尔与哈尔滨之间。从王进喜所握手柄的架式,推断出油井的类型等等。
这个故事真假不论,但是在零信任网络中,隐藏这些可以透露很多信息的细节,显然是很有必要的。尤其是随着技术的发展,越来越多的数据存储在云上,因此保护用户的访问模式也就变得愈加重要起来。
而不经意随机访问机就是目前保护访问模式和访问过程的一种重要手段,这一技术的目的是隐藏对真实数据的访问,使得攻击者不能区分每次访问到底是真实的还是随机的,就好像特务无法判断同志们到底是真的在买煎饼还是在交换信息一样。采用随机访问机的方式,可以有效地防止攻击者利用访问模式获取隐私信息,减小信息存储系统的攻击面,打破单纯使用传统加密方式来保护数据隐私的系统框架,为用户提供更为安全的云服务。从而对设计更安全高效的分布式计算框架有着重要的意义。
但是使用随机访问机,不可避免地会带来额外的系统开销。为了隐藏访问模式,需要对多个数据随机进行访问,这毫无疑问增加了客户端与服务端的开销。就好像交换情报一样,原来只需要访问一个煎饼摊,结果却访问了烧饼摊、烤串摊和水果摊之类的。
不经意随机访问机(oblivious RAM,ORAM)的概念最早起源于RAM(Random Access Machine)模型,RAM是一种重要的计算仿真手段,处理器通过对存储器的读写来实现程序的执行。20世纪80年代,为了隐藏程序对内存的访问模式来避免软件的逆向工程,Goldriche等人在此基础上提出了ORAM模型,在这种模型中,存储器中的任意数据块不会永久驻留在某一个物理地址中,这确保了任意两次访问不会产生关联。同时ORAM将每一次读写访问细化成一次读取加一次写回的原子操作。其中,读访问转化成读取内容再写加相同内容,写访问转化成读取内容再写回更新后的内容,使用攻击者不能区分具体的访问方式。
ORAM模型可以很好的保护以下4种属性:
1、访问数据块的位置;
2、数据块的请求顺序;
3、对相同数据块的访问频率;
4、具体的读写访问方式。
这就使得在访问结束之后,攻击者不能根据访问模式来判断用户的真实意图,有效地保护了用户的个人隐私。
目前ORAM已经在很多领域得到了应用,而科研人员们还在不断地对其进行功能和性能的优化。