问题DHT网络的运作原理与实现DHT全名为分布式哈希表(Distributed Hash Table),是将分布式技术与哈希表技术相互结合形成的分布式存储技术,这项技术的意义就是能将位于网络中的存储服务器统一起来,用一个特定的方式定位在该网络中存储的资源位置。哈希表是常见的数据结构,通过特定的哈希算法计算出需要存储的资源的哈希值,并且根据将此哈希值作为索引,标记资源的位置,从而实现快速且精准的数据查询能力。相比于其他的存储方法,哈希表的优势在于,只需要知道目标资源的哈希值即可获取对应存储位置,拥有极高的读取效率,缺点在于需要更多的空间存储哈希表,并且该空间的大小与哈希算法有直接关系,算是一种空间换时间的优秀数据结构。分布式哈希表其实并不是单指一个数据结构,而是一个网络,网络中存在许多节点,每个节点都担任分布式哈希表中的一部分存储功能,从而实现了将多个零散的存储空间整合为一个完整的存储空间。如果需要通过DHT网络获取数据,则需要获得目标数据的索引,也就是哈希值,通过哈希值可以知道需要的数据存放在哈希表中的具体位置,知道具体位置即可通过请求对应的存储主机访问该资源。根据这个过程,注意到两点
1 定义1.1 Tox ID用户信息的唯一标志符,由用户ID(32字节)、NoSpam(4字节)、校验码(2字节)组成。1.2 用户ID/长期公钥用户长期公钥,可以理解为用户的身份标识,由椭圆曲线算法Curve25519与Salsa20流密码得出,是用户在Tox网络中的唯一标识,其他节点只能通过长期公钥找到用户,由于洋葱模块的存在,其他非好友节点是无法从长期公钥找到用户所在节点的DHT公钥。1.3 长期私钥用户的长期私钥。1.4 NoSpam可以自行改变,可用于防止骚扰。1.5 校验码用于验证该ID的合法性,计算方法为前36字节每字节相加,最后的结果为一个两字节的值。1.6 DHT密钥对用于节点向DHT网络宣布自己的位置,可以理解为用户的位置标识,由于洋葱模块的存在,其他非好友节点是无法从用户所在节点的DHT公钥找到用户的长期公钥。1.7 临时密钥由Tox节点(客户端)生成,用于建立与其他用户的会话时进行对称密钥交换,基于DH密钥交换协议。1.8 洋葱密钥洋葱通讯使用的密钥,由协商得出的对称密钥。2 问题2.1 如何防止DHT密钥与长期密钥互相得出防止一个非好友节点通过用户所在节点的D
概述这次毕设我是打算设计一个保密且匿名的通讯网络,利用一些我接触到的比较新的一些技术和理念,主要参考了Tox的设计方法与区块链的分布式文件存储功能,来实现一个匿名且不可溯源的聊天网络。结构简介这个网络是P2P的对等网络,也就意味着每个客户端都是对等客户端,不过基于性能考虑会分为两类端:轻量端:也可以称为中继端,主要作用是承担DHT网络节点、洋葱中继以及大蒜中继的功能,同时担任网络存储节点。全量端:也可以称为客户端,具有全部功能,,不会存储DHT网络的信息但是会作为洋葱中继以及大蒜中继。目标保密:利用密码学对每一条消息进行加密,并且保证向前和向后安全。匿名:利用洋葱路由与大蒜路由技术来实现通讯的## 分布式散列表(DHT)模块这是程序的核心,也是程序的底层架构,每个节点都会在DHT网络中获得一个临时DHT密钥,临时DHT密钥与节点的IP地址是一一对应的,泄露了临时DHT密钥地址就会导致IP地址泄露,每次启动程序时会自动随机生成。保密,保证发送者与接受者无法知晓互相的真实IP地址,且在中继存在一定数量的钓鱼节点的情况下保证无法获取完整的内容信息。安全:能够抵御常见的网络攻击,且能够应对检测
欢迎来到交界线这里是我的个人博客,你可以称呼我为Equinox,这个名字来自春分秋分的分,正如这个博客的名称:交界线、分界线。交界线意味着两个领域的边缘,也就意味着这里是两个领域交汇的地方。我取这个名字给我的博客也就是希望他能成为一处交界线,既是红蓝对抗的交界线,也是挖掘与修补的交界线,还是网络与生活的交界线。这个博客主要记录我在工作与生活中遇到的问题、漏洞以及好的文章,顺便分享我的生活(虽然我的生活没啥可分享的),如果你喜欢的话不妨留下一个评论表示支持,当然我也希望有更多的人来与我进行交流学习。此网站主要用于分享我的学习笔记、漏洞信息以及转载优秀文章,网站遵循以下原则:以原创为主,转载为辅。参考链接会在文末给出。对于转载的文章,尊重作者版权,遵守转载协议。所有转载的文章皆来源于互联网,若因此对原作者造成侵权,烦请原作者留言告知,我会立刻删除相关内容。最后,欢迎来到交界线!
Equinox
一个乐于分享的网安人