Tor网络介绍
Tor网络介绍
1、Tor的全称是“The Onion Router”,“An anonymous Internet communicaton system;通过Tor访问一个地址时,所经过的节点在Tor节点群中随机挑选,动态变化,由于兼顾速度与安全性,节点数目通常为2-5个,由于追踪困难,因此有效保证了安全性。
2、Tor的原理:
什么是匿名性?
挂着代理,隐藏了自己的真实IP是否是匿名?不是!绝大部分FQ党都是挂着一重代理来这的,有一些甚至只是改了hosts文件,完全没有匿名性,一重代理只是一定程度上提升了匿名性而已。
TOR是一个三重代理;
代理的模型:PC、交换机、网关、N个路由器、防火墙、代理服务器、N个路由器、google服务器;如果是改hosts文件,就没有代理服务器这一步。
在代理服务器之前设备是知道你真实IP的。
代理服务器负责处理数据包,对于用户它是服务器,对于google服务器它是客户端;代理服务器之后的路由器以及最终的google服务器看到的都是代理服务器的IP,用户的IP被隐藏起来。但问题在于代理服务器知道你的真实IP和你干了些什么(HTTP)以及你去了哪里(HTTPS)。
流量分析只是随着云计算和大数据的发展,变得越来越有效的数据挖掘。
真正的匿名系统应该做到:1)各个环节除了必要的信息,其他什么都不知道。2)用户通信是跨越适当数量的跳板(hop),最好是不同国家的hop,这样流量分析和逆向分析的难度将大大增加;eg:三个hop p1、p2、p3; 用户首先连到h1,然后h1连接到h2, h2连接到h3,h3最终连接到目标网站服务器上。在这一过程中,h1知道用户的真实IP,h2知道它从h1接收用户数据以及要把数据送到h3,h3知道用户想干什么(HTTP)或者用户要去哪里(HTTPS ),除此之外这些hop 不应该知道其他任何有关用户的信息,这样的话即使三个hop 中有一个是攻击者的蜜罐,用户身份也不会暴露(不过如果三个hop 都是蜜罐,用户的身份还是会暴露的,但当三个hop分别位于三个不同的国家时,这种可能性很小)还有就是" 藏叶于林" 了,如果前面提到的三个hop 是某人专用的,那么一旦某个hop 被攻破(尤其是h1或h3),那么那人被逆向追踪的可能性非常大;但如果有很多人同时使用那三个hop ,那么老大哥想要找出其中某个具体用户就很困难了。同样道理,每次连接建立时都应该随机选择hop ,这样老大哥都不知道该如何进行有效的监视(TOR 的策略是每10分钟就重新随机选择三个hop 「9 」,每次启动TOR 时也是随机选择hop 的) 3)中间人攻击:为了防止老大哥进行中间人攻击破坏用户匿名,TOR 有着自己的一套基于数字证书的身份认证机制「10」,每个hop 都有一个自签发的数字证书,TOR 客户端在连接建立时会进行严格的身份认证。
TOR的用户越多,TOR的匿名程度就越高。
相对于TOR 之前的匿名系统,TOR 有三点最为特别:
1 ,一个TOR 环路可以被很多人同时使用,说的具体一点,hop 与hop 之间的每个TLS 连接都包括了很多不同用户的TCP 数据流;
2 ,TOR 客户端随机选择了入口节点,入口节点随机选择了中间节点,中间节点又随机选择了出口节点。对,是由精心设计过的算法保证随机选择的,没有规律可循(不过后来发现这算法造成了很搞笑的情景:某一条环路上的三个hop 有很多用户,都塞车了,但另一条环路上的三个hop 用户数少得可怜,所以后来又基于hop 的用户数对算法进行了改进「12」)
3 ,TOR 拥有独立于操作系统和浏览器的严格的基于数字证书的身份认证机制。这一点很重要,如果TOR
的身份认证机制和特定的操作系统或浏览器有了关联,那就意味着用户将不得不为了使用TOR 而更换浏览器或操作系统。
TOR 官网「2 」上简单介绍了TOR 的原理:TOR 是一个三重代理,TOR 客户端先与目录服务器通信获得全球活动中继节点信息,然后再随机选择三个节点组成circuit (电路),用户流量跳跃这三个节点(hop)之后最终到达目标网站服务器,每隔10 分钟左右就会再重新选择三个节点以规避流量分析和蜜罐节点。
「哪个节点都不可信,像洋葱一样」这就是Tor 环路的核心思想所在:和普通的TCP 流不同(Tor 工作在TCP 流之上),Tor 协议把通信数据打包为了一个个特殊的cell:一开始建立Tor 电路时,本机上的onion proxy 向入口节点发送create cell 进行TLS handshake ,这一过程的身份认证过程是基于数字证书的:Tor 有着自己的一套数字证书系统。
Tor是这么做的:客户端最先发过去的relay cell 1是入口节点与中间节点建立TLS 连接时所需要的参数,接着发过去的relaycell 2是中间节点与出口节点建立TLS 连接时所需要的参数,接下来是只有目标网站和对应端口信息的relay cell 3,在返回表明已成功建立环路的relay cell 4之后才会真正开始发送包含用户信息的relay cell 5.这一过程中relay cell 1被一重加密,到了入口节点之后就被解密,再用来与中间节点完成握手;relay cell 2被两重加密,到了入口节点时第一重加密解除,到了中间节点时第二重加密解除,中间节点可以看到明文,用来与出口节点完成握手; relay cell 3被三重加密,只有出口节点能看到明文,被用来与目标网站建立连接。同样relay cell 5也是三重加密的,只有出口节点能看到明文(HTTP)
「就像洋葱一样」,对,用户数据就像洋葱一样,被层层包裹着,只有到了终点包裹才会解开。在这一过程中,只有入口节点知道用户的真实IP地址,出口节点知道用户的目的地和传输内容(HTTP),Tor 电路的cell里没有其他任何关于用户真实身份的信息。
要知道NSA 和FBI 还有GCHQ们看Tor 不爽早就不是一天两天了,下次一起看看英勇的Tor 团队们是怎样对付各种攻击的吧!
Tor网络介绍的更多相关文章
- Tor网络突破IP封锁,爬虫好搭档【入门手册】
本文地址:http://www.cnblogs.com/likeli/p/5719230.html 前言 本文不提供任何搭梯子之类的内容,我在这里仅仅讨论网络爬虫遇到的IP封杀,然后使用Tor如何对抗 ...
- 五十二、linux 编程——网络介绍
52.1 网络介绍 使用远程资源 共享信息.程序和数据 分布处理 52.1.1 协议的概念 计算机网络中实现通信必须有一些约定,如对速率.传输代码.代码结构.传输控制步骤和出错控制等约定,这些约定即被 ...
- OpenStack网络介绍
OpenStack网络介绍 OpenStack里面的网络相对复杂.经常有人对几个网络概念搞混淆.因此,本文对OpenStack里面的Provider network 和 Tenant netw ...
- GAN网络从入门教程(一)之GAN网络介绍
GAN网络从入门教程(一)之GAN网络介绍 稍微的开一个新坑,同样也是入门教程(因此教程的内容不会是从入门到精通,而是从入门到入土).主要是为了完成数据挖掘的课程设计,然后就把挖掘榔头挖到了GAN网络 ...
- 三十一、kubernetes网络介绍
Kubernetes 网络介绍 Service是Kubernetes的核心概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上 ...
- CNN网络介绍与实践:王者荣耀英雄图片识别
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者介绍:高成才,腾讯Android开发工程师,2016.4月校招加入腾讯,主要负责企鹅电竞推流SDK.企鹅电竞APP的功能开发和技术优化工作 ...
- 使用tor网络
在www.torproject.org/projects/torbrowser.html.en上找到合适的版本下载 下载好tor浏览器之后,解压双击Tor Browser,出现这个错误 这是因为kal ...
- Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)
0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...
- VMware 网络介绍
3.1 网卡介绍 如图所示,你的机器有两块网卡,一个是有线,一个是无线. 装完VM之后,会出现两块虚拟网卡,如图 VM有四种连接方式,我们着重介绍前三种 3.2 桥接 选择桥接模式,说明V ...
随机推荐
- web端访问文件没有权限的问题
背景 : ftp的PHP项目中的某些文件没有写入的权限..系统报注意错误!!! 原因 : 一般情况下,web端访问网站一般使用的是WWW权限(有限制的权限组)去访问, 但是我们编程开发的时候, 有可能 ...
- 类与类之间的两种关系------新标准c++程序设计
在c++中,类和类之间有两种基本关系:复合关系和继承关系. 复合关系也称为“has a”关系或“有”的关系,表现为封闭类,即一个类以另一个类的对象作为成员变量. 继承关系也称为“is a”关系或“是” ...
- 自用 Pycharm 主题配色分享(主题才是开发第一生产力)
写在前面的话 是的,我又回来了,上一篇[使用 Visual Studio Code(VSCode)搭建简单的 Python + Django 开发环境]才说真香,结果用两天就发现很多恶心的问题拦住了菜 ...
- java 中 ==
@Test public void fuu2(){ String a = new String("aw"); String b = new String("aw" ...
- 苹果开发者账号提示“Unable to verify mobile phone number”的解决方案
在注册苹果开发者账号时,会提示:"Unable to verify mobile phone number.".顾名思义,没有有效的手机号码. 解决方案: 进入到Your Appl ...
- NSArray 数组
前言 数组只能存储 OC 对象,不能存储 C 语言中的基本数据类型,也不能存储 nil . Xcode 7 对系统中常用的一系列容器类型都增加了泛型支持(),有了泛型后就可以指定容器类中对象的类型了. ...
- 【转】 spring context解惑
转自:http://blog.csdn.net/c289054531/article/details/9196149?utm_source=tuicool&utm_medium=referra ...
- Python之路系列:面向对象初级:静态属性、静态方法、类方法
一.静态属性 静态属性相当于数据属性. 用@property语法糖装饰器将类的函数属性变成可以不用加括号直接的类似数据属性. 可以封装逻辑,让用户感觉是在调用一个普通的数据属性. 例子: class ...
- CentOS 中 redis 安装
第一步:下载redis安装包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz [root@hadoop110 桌面]# wget h ...
- JDBC记录
13:55 2018/7/22 用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问 ---------常用API--------- |- Driver接口: 表示java驱动程序接 ...