网络服务技术:Tor、I2P、Freenet、Zeronet
暗网服务技术
1、Tor隐藏服务
Tor隐藏服务通过*隐藏服务域名(即洋葱域名)*进行唯一标识和查找。服务器首次运行后将生成一个隐藏服务域名< z >.onion。其中< z >是长度为16B的字符串,由RSA公钥哈希值的前80b进行base32编码获得。
Tor隐藏服务器在启动过程中将其信息上传至隐藏服务目录服务器,Tor客户端能够通过隐藏服务目录服务器获得足够的信息与隐藏服务器建立双向链路。
Public-key-id为RSA公钥的SHA1摘要的前80b。
Secret-id-part通过公式(4)计算获得。
Description-cookie为可选字段,该字段可用来防止未授权客户端访问隐藏服务;Replica-index有2种取值,其作用为选择不同的隐藏服务目录服务器。
Time-period字段表示下次上传隐藏服务信息时间,t为当前UNIX时间,该字段将1天划分为256个时段,并在其中某个时刻重新选择隐藏目录服务器上传信息。
CHK是最基础的一种键值,适合静态文件资源使用,这种键值包含文件的哈希值、解密密钥和加密设置等信息,其格式为“CHK@哈希值,解密密钥,加密设置”。CHK通过对二进制文件内容进行SHA256哈希运算生成一个由文件内容决定的哈希值,该哈希值也作为对应文件在Freenet中的索引,生成该索引的同时会生成一个随机密钥来对文件内容进行对称加密,文件被加密储存在Freenet中,键值中的加密设置主要包括使用的加密算法等信息。
SSK适用于Freesite站点等需要文件频繁更新操作的资源,可以保证只有文件所有者才能更新。这种键值由5部分组成:公钥哈希、文件解密密钥、加密设置、文件描述符和版本号。格式为**“SSK@公钥哈希,文件解密密钥,加密设置,文件描述符,加密设置/文件描述符-版本号”。文件所有者在上传SSK类型的文件时,首先需要生成一对公私钥,其中公钥的哈希值将作为该文件在Freenet中的索引**,而私钥将用来对文件密文进行签名,从而提供完整性校验。另外,文件所有者需要提供一个对称加密密钥,并将原始文件加密后的密文、私钥对密文的签名和公钥数据共同存储在节点中,以便用户对其进行校验,Freesite拥有着还可以为该文件指定一个简短的文本字符串作为文件描述符,同时用版本号指明当前文件的版本以便区分。
USK于KSK是2种特殊的SSK。USK主要用于链接到最新版本的SSK,这种键值本质上就是对SSK进行了一层封装,向用户隐藏了对最新版本SSK的搜索过程。格式为**“USK@公钥哈希,文件解密密钥,加密设置/文件描述符/版本号/”。KSK是简化的SSK,仅仅由一个描述性的文本字符串构成,其格式为“KSK@文本字符串”。当选择向Freenet中上传这种键值类型文件时,用户只需要提供一个描述性的文本字符串。节点首先根据用户提供的字符串生成一对公私钥**,然后同样对公钥进行哈希产生该文件的索引,私钥则用来对文件进行签名以提供一定的完整性校验。文件最终利用该文本字符串作为对称密钥后与签名一同储存在Freenet中。KSK存在的主要问题时容易发生冲突,当2个用户选择了同一个文本描述符,两者储存的对应文件则具有相同的索引。
下图是一种典型的用户利用键值检索对应文件资源的过程时的节点选择过程。其中A为请求者。节点B在受到请求后向与文件索引值最近的C发起文件请求,C无法在本地检索到该文件返回了请求失败消息。B收到消息后继续向次近的节点E发送请求。后续F向最近的B发送请求后,节点B检测到出现请求的循环,返回失败消息。F没有邻居节点,于是返回失败消息给D。
4、ZeroNet暗网服务
ZeroNet基于BitTorrent技术部署用户站点,并通过Bitcoin加密技术保证站点文件的完整性。
当用户访问一个ZeroNet的网站资源时,首先查找本地资源,若不存在则通过BitTorrent网络查找网站资源拥有者,将拥有资源的部分访问者IP地址及端口号返回该用户。因为站点的每个访问者都储存了站点文件,用户可通过TCP连接下载。
具体步骤:
用户查找网络资源的拥有者:该操作时在BitTorrent Tracker和用户之间进行的。用户向BitTorrent Tracker请求网站资源时,Tracker将用户注册成为访问者,并将拥有该资源的部分可访问网站的IP及端口号返回给用户。
首先从其他资源用户处下载该网站的签名信息集文件,该文件包含所有文件名、哈希值和网站所有者的加密签名。之后用户使用文件中的网站地址和网站所有者的签名来验证下载的签名信息集文件。验证完毕后用户可以使用签名信息集文件中的SHA512哈希值下载并检验网站中的其他文件,包括HTML,CSS,JS等
用户在访问网站后即可为其他访问者提供该网站的下载服务,提升整个站点文件的下载速度。用户可使用Tor网络与BitTorrent Tracker服务器通信,以隐藏其真实IP地址。
ZeroNet网站由其所有者更新,更新后将签署一个新的签名信息集文件,该文件会自动映射到内置的本地数据库,同时以增量更新的方式将其推送给访问者。访问者使用签名验证文件的完整性,将修改后的内容保存在本地,以供其他访问者访问下载。
ZeroNet站点可以同时由多个用户进行维护,此类网站需要其他维护站点的用户向网站所有者发送维护申请许可:用户需要发送其地址(即公钥)给网站所有者,网站所有者在签名信息集中加入该地址,并生成基于BIP32的Bitcoin地址给每个用户,表明该用户为有效签名者,并向所有的访问者发送新的签名集信息,以更新网站的发布权。
综上所述,ZeroNet是一个由访问者提供服务的P2P暗网。虽然该系统没有采用任何匿名技术保护站点和用户之间的通信隐私,但它利用BitTorrent网络架构并结合Bitcoin加密技术将站点文件组织在一个封闭的P2P环境中,使得搜索引擎无法检索到站点内容,形成了ZeroNet暗网。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/7595.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
打赏微信支付宝扫一扫,打赏作者吧~
休息一下~~