[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] r9887: arma is a ruthless slave driver... but at least we're all be (torflow/trunk)
Date: 2007-03-20 02:08:34 -0400 (Tue, 20 Mar 2007)
New Revision: 9887
arma is a ruthless slave driver... but at least we're all better for it ;)
--- torflow/trunk/README 2007-03-20 05:10:27 UTC (rev 9886)
+++ torflow/trunk/README 2007-03-20 06:08:34 UTC (rev 9887)
@@ -0,0 +1,62 @@
+TorFlow is a set of python scripts written to scan the Tor network for
+misbehaving, misconfigured, and overloaded Tor nodes. The ultimate goal
+is to build an automated, distributed reputation system that feeds into
+the directory servers and provides them with information on the
+reliability, capacity, and trustworthiness of routers, so that they can
+set flags that clients can use in routing decisions.
+This is admittedly a lofty goal. In the meantime it should be able to
+figure out a bunch of neat stuff about Tor.
+TorFlow consists of the following components:
+1. TorCtl package
+TorCtl is an updated version of the python Tor controller written by
+Nick Mathewson with extensions to support path building and various
+constraints on node and path selection.
+The basic structure is that the EventHandler class in TorCtl.py receives
+Tor controller events packaged into python classes. PathSupport.py
+provides an additional class that extends from EventHandler called
+PathBuilder that handles circuit construction and stream attachment
+subject to policies defined by NodeRestrictor and PathRestrictor
+Metatroller observes the paths created by PathSupport and gathers
+statistics on stream bandwidth, circuit construction time, circuit
+failures and stream failures. It also provides a meta control port for
+use by Tor scanners.
+SoaT scans exit nodes to verify that SSL, SSH, and Web connections
+through them are unmolested. It currently does this primarily by
+checking MD5s of these items.
+SpeedRacer fetches a file repeatedly through circuits built by
+metatroller. It divides the Tor network into tiers based on percentiles
+of directory-reported node bandwidth and compiles statistics for each of
+these tiers itself and via metatroller.
+Nodemon uses TorCtl to monitor ORCONN events on a Tor node to measure
+how much bandwidth is going to each peer node. It also measures how many
+circuits are killed by OR connections being shut down prematurely.
+Each of these components has a lot of room for improvement. Please see
+the TODO file for more information.
--- torflow/trunk/TODO 2007-03-20 05:10:27 UTC (rev 9886)
+++ torflow/trunk/TODO 2007-03-20 06:08:34 UTC (rev 9887)
@@ -17,12 +17,15 @@
- GeoIP (http://www.maxmind.com/app/python)
- OceanPhobicRestrictor (avoids Pacific Ocean or two atlantic crossings)
or ContinentRestrictor (avoids doing more than N continent crossings)
+ - OceanPhilicRestrictor or ContinentJumperRestrictor
+ - Can be used as counterpoint to see how bad for performance it is
- Does not cross international boundaries for client->Entry or
- Perform statistical analysis on paths
- How often does Tor choose foolish paths normally?
- (4 atlantic/pacific crossings)
+ - Use speedracer to determine how much slower these paths relly are
- What is the distribution for Pr(ClientLocation|MiddleNode,ExitNode)
and Pr(EntryNode|MiddleNode,ExitNode) for these various path choices?
- Mathematical analysis probably required because this is a large joint