网络的透明时代,如何守住最后的隐私?分布式网络环境下的四大维度分析

DSP 发布在 海盗号 36675

2020年还未过半,“数据泄露”这样的字眼却显得异常活跃。全球各地深受数据泄露事件的困扰,同时也造成了重大损失。

在当今互联网的时代,你在网上的任何行为都有可能被记录下来,再通过大数据的归总、统计分析,基本上可以说:你的一切,网络都知道。在中心化的系统里,系统平台运营商,可以在后台获得你的一切数据,基于商业利益的驱动,他们会拿这些数据出来商业化应用:卖数据、卖服务......。

世界是互联的,这是现状也是不可逆转的发展趋势,在这样的互联中,未来没有边界。在这样没有边界的、万物都开始互联的不远未来,设想,你的闹钟、电表、手机、行动探知器等每日都需求的东西互联起来,别人借此便可以了解你的情况。这是多么可怕的事情,好比置身于完全没有隐私的环境,这样的未来,你,窒息吗?我们到底该有隐私么?

1948年12月,联合国颁布基本法《世界人权宣言》,其中第十二条对个人隐私做了如下说明:

任何人的私生活、家庭、住宅和通信不得任意干涉,他的荣誉和名誉不得加以攻击。人人有权享受法律保护,以免受这种干涉或攻击。

电子时代,对于开放的社会来说,隐私必不可少。隐私不同于秘密。隐私是某人不想公之于众的东西。而秘密,是他不想让任何人知道的东西。隐私是一种权力。它让某人有权决定公开什么,不公开什么。

在分布式互联网环境下,个人的隐私从宏观上,主要涵盖四个方面:节点隐私、内容隐私、链路隐私、隧道隐私。下面让我们逐一展开,看看四个维度的隐私的具体内容。

1)节点隐私

节点隐私,是指在一个开放的分布式环境中,进行信息交互的双方,互相都不知道对方节点的敏感信息,例如:IP地址,MAC地址等,进而达到通信双方互不暴漏的目的。与此同时,其他节点不可能通过网络嗅探的方式,感知到收发双方的位置。

下面以比特币网络拓扑结构为例,说明一下节点加密的重要性。

截止当前,比特币全网共有8000左右的节点。基于当前的技术手段,构建一个平行的嗅探网络成本是很低的。曾有研究人员做过统计,当拓扑嗅探网络启动,大约经过10个区块高度,基本可以推测出整个网络的连接拓扑。再配合gossip消息传播的固定时间间隔,基本可以推测出一笔交易信息的构建节点的大体分布位置,进而破坏节点的隐私。

2)通信内容隐私

通信内容隐私,是指通信内容只有交互的双方可见。其他人从网络上截取数据,或者在没有通信双方授权的前提下,任何人都不可能看到通信明文。

3)链路隐私

链路隐私,是指通信双方建立的连接,是加密的;在没有相关密钥的情况下,任何人都没有能力,使用该链路进行数据传输。如下图所示中的a->b,b->c,c->d等。

4)隧道隐私

在某些情况下,节点之间的通信会借助一个或多个中继节点完成。这样,基于收发节点和中继节点,便构成了一条通信隧道;隧道隐私,是指只有发送节点,有权利将数据从发送节点经由中继节点,将数据发送至接收节点,其他任何人在无授权的前提下,都没法做到数据的完整传输。如上图所示的a->d, e->h逻辑通信隧道。

针对上面提及的四种隐私维度,有一种通用的可以有效的进行安全保护的方案。虽然通信效率上有待提高,但是从功能上而言已经可以做到四个维度的兼顾。并在后文,针对这种通用的安全思路,给出了进一步优化的可能维度。

一. 通用加密网络方案描述

首先,加密网络中的每一个中继路由节点创建一个路由描述符,该描述符包含一些联络信息,主要是IP地址、端口、公钥及其它宽带能力等。创建完成后,发送该信息到全网目录服务器(一般也成为Bootstrap节点)。目录服务器会基于这些信息,为该路由节点生成一个全网唯一描述符,会同描述符信息一同存储在目录服务器上。下面我们从组网拓扑、消息结构及链路传输构建三个方面详细描述加密网络是如何进行隐私保护的。

1) 组网拓扑

如下图所示,在加密网络中,我们建议主要有客户端、中继代理、中继路由节点、目录服务器及可能的网桥节点一起构成在整个网络拓扑。在客户端构建通信链路的时候,其步骤如下所示:

A. 客户端向目录服务器发起节点请求;

B. 目录服务器,一般会根据权重选择算法,从目录表里推荐三个节点给客户端。从逻辑上,分别称为入口节点、中间节点及出口节点。

C.客户端收到目录服务器的有效反馈后,根据Response消息,逐级构建完整的隧道链路。

2)链路建立

基于上文的描述,我们知道一个客户端通过目录服务器,可以获得一条链路的三个节点:入口节点、中间节点、出口节点。

A. 客户端使用DH握手协议(Diffie-Hellman)与入口节点进行握手,生成共享会话密钥。客户端基于该共享密钥,向入口节点发送CREATE消息;

B. 入口节点收到CREATE消息后,会基于消息中的中间节点地址,和中间节点建立链接,并完成密钥交换;

C. 基于上面完成的分段加密链路和DH握手协议,客户端完成和中间节点的密钥协商;

D. 类似的,基于上面建立的两级加密隧道,客户端向中间节点发送CREATE消息,完成中间节点和出口节点的加密链路建立;

E. 最后,客户端基于上面的三级分段加密链路,完成客户端和出口节点的密钥协商,进而完成整条洋葱隧道链路的建立;

3)消息结构及传输

消息从客户端发送之前,会用和出口节点、中间节点、入口节点协商出来的共享密钥,依次从内向外,进行加密。最内层的消息使用出口节点的共享密钥进行加密,然后是中间节点,最后是入口节点。

A. 当上述消息从客户端发送出去后,入口节点会根据协商出来的共享密钥,判断消息的有效性并将外层的加密去掉,然后发往中间节点;

B. 中间节点收到入口节点发来的消息后,会根据和客户端协商出来的共享密钥判断本消息的有效性并将本层的加密去掉,然后发往出口节点;

C. 出口节点使用和客户端协商出来的共享密钥,重复上述步骤。最终将客户端的消息发往真实的目的地址。

二. 针对上述方案的优化

在上述方案的描述中,我们很容易看到有两个明显的缺陷,分别是启动节点过于集中化,这很容易导致单点故障或是遭受整网劫持攻击。同时,由于数据交互是基于链路交换的,当网络拥塞严重时,很容易产生网络服务延迟。由于消息结构的单一,也从一定程度上制约了数据在链路传输过程中的,传输性能优化。下面我们将基于以上两点,给出具体的优化思路:

1)无中心服务器

上述加密网络节点,通过连接目录服务器得知所有中继、进入/退出节点的存在。优化后的方案节点将通过本地网络数据库(暂称NetDB)得知其他节点的存在,NetDB通过DHT算法在连接其他节点时获悉更多节点的存在,它是一个分布式网络数据库。主要提供路由器联系信息和目标联系信息,每一条数据都由适当的一方签名,并由使用或存储它的任何人进行验证。

2)数据交换模式优化

首先要说明的一点是,在优化后的加密网络中,对于交互双方的通信链路,是两条不同的链路,即入口链路和出口链路是不同的;如下图所示:

在这里可以找到我们:

Facebook:https://www.facebook.com/DSP-Labs-110430797334480

Twitter:https://twitter.com/DSP_Labs

微信公众号:DSPLabs

本文链接:https://www.8btc.com/media/600563
转载请注明文章出处

评论
登录 账号发表你的看法,还没有账号?立即免费 注册