DECENT数据发布技术:安全的节点间通信

2016-09-24 10:05 来源:巴比特资讯 阅读:6785
使用区块链和类似于tor的数据共享对于端到端的安全性和节点间匿名通信是一个强大的和可靠的方式。

使用区块链和类似于tor的数据共享对于端到端的安全性和节点间匿名通信是一个强大的和可靠的方式。然而,它也是很缓慢的和低效率的,特别是,如果我们希望实现一种轻量级的RPC,例如,对分布式哈希表(DHT)的实现。不使用任何安全层代表了用户匿名性存在高风险,因为节点转移数据可能会泄露他们的身份或者他们的活动。一个例子就是一个基于磁力链接的torrent文件,攻击者通过拦截他的分布式哈希表(DHT)通信,可能了解到用户下载一个指定文件的意图。

image1

为了阻止这些类型的攻击,我们必须为节点间的通信实现可以提供匿名,保密性和合理推诿的灵活,高效的机制。被选择的机制是如下所述的动态加密UDP通道DEUT)。

动态加密UDP通道

演员:DECENT网络中所有的节点。他们可以充当一个发件人,一个通道端点,中继者或者接收器。

通道:一个主节点和终节点之间的安全通道,可与一个或多个中继器套接。

主节点:发起和拥有特定通道的节点,并且最终目的地和所有消息源都穿过这个通道。

端点:充当与另一个节点(主节点)通信的网关的节点,分配特定的监听端口并在这个端口下发送。

中继者:在通道内,主节点,端点和其它可选的中继者间的转发消息的节点。在给定的通道内,中继者的顺序是固定的。

节点是由它的IP和端口对来标识的。通道可以为发送方建立也可以被接收方建立。 这种情况下,发送方和接收方都有自己的一组通道,以及他们的端点和中继者。主节点通过原始通道控制请求来初始化通道,发送到其列表中的任意节点。接收节点 或者是一个中继者,在这种情况下,它从自己列表中随机的选一个节点作为下一跳,或者是一个端点,打开监听端口然后准备发送以及代表主节点监听。然后,网关 回应通道控制响应消息。在这次握手中,主节点和端点交换它们的  RSA公钥,然后用这些公钥加密通信。

当主节点想要给一个指定结点发送一些数据,它会从它的列表中随机的选择两个通道,通过相关联的公钥(如,给定端点的公钥)加密这个消息,然后将它发 送给第一个中继者。中继者转发这个消息直到它到达终点。然后,这个端点解密该消息并将它发送给预期的收件人,因为它是由自己起源的。

收件人知道主节点的IP地址和端口对,然后进一步的可以与它的同行(例如,通过kademlia FIND_NODE原始信息)共享地址。

当发件人希望联系主节点并且已经了解到它的一个端点的地址,它会给这个端点发送消息。端点由接收端口获悉这个消息所属的通道,通过主节点的私钥进行加密然后将它转发给第一个中继者。

所有的通道通信都是基于UDP的,因此是非常快速和有效的,适合作为各种RPC 消息的传输。根据应用,主节点将会有数百分之一比例的通道开放,并且由于它会随机的给每条消息选择新的通道,它允许高级别的匿名,保密性以及不可否认性。 因此,发送者必须意料到成功的通信是来自于互联网的任何地方而不一定是(不可能)来自于它发送的地址。由于这些原因,DEUT实现了消息ID,匹配请求和 响应对。

所使用的RSA密钥是短暂的并且在每次应用重启后都会重新创建。


声明:此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。本网站所提供的信息,只供参考之用。

点击阅读全文