|
@@ -0,0 +1,117 @@
|
|
|
+
|
|
|
+Legend:
|
|
|
+SPEC!! - Not specified
|
|
|
+SPEC - Spec not finalized
|
|
|
+NICK - nick claims
|
|
|
+ARMA - arma claims
|
|
|
+ - Not done
|
|
|
+ * Top priority
|
|
|
+ . Partially done
|
|
|
+ o Done
|
|
|
+ D Deferred
|
|
|
+ X Abandoned
|
|
|
+
|
|
|
+
|
|
|
+ - Use a stronger cipher
|
|
|
+ - 3des for now
|
|
|
+ - aes when we everybody has openssl 0.9.7
|
|
|
+ . Topics / circuits
|
|
|
+ o Implement topics
|
|
|
+ - Rotate circuits after N minutes?
|
|
|
+ - Circuits should expire when circuit->expire triggers
|
|
|
+NICK . Handle half-open connections
|
|
|
+NICK . On the fly compression of each stream
|
|
|
+ o Clean up the event loop (optimize and sanitize)
|
|
|
+ - Exit policies
|
|
|
+ - Path selection algorithms
|
|
|
+ - Let user request certain nodes
|
|
|
+ - And disallow certain nodes
|
|
|
+ - Choose path by jurisdiction, etc?
|
|
|
+ D Implement our own memory management, at least for common structs
|
|
|
+ . Appropriate logging
|
|
|
+ - Come up with convention for what log level means what
|
|
|
+ - Make code follow convention
|
|
|
+ . Terminology
|
|
|
+ o Circuits, topics, cells stay named that
|
|
|
+ - 'Connection' gets divided, or renamed, or something?
|
|
|
+ . DNS farm
|
|
|
+ o Distribute queries onto the farm, get answers
|
|
|
+ o Preemptively grow a new worker before he's needed
|
|
|
+ - Prune workers when too many are idle
|
|
|
+ o Keep track of which connections are in dns_wait
|
|
|
+ o Need to cache positives/negatives on the tor side
|
|
|
+ o Keep track of which queries have been asked
|
|
|
+ . Better error handling when
|
|
|
+ . An address doesn't resolve
|
|
|
+ - We have max workers running
|
|
|
+ - Consider taking the master out of the loop?
|
|
|
+ . Directory servers
|
|
|
+ - Automated reputation management
|
|
|
+ARMA - Include key in source; sign directories
|
|
|
+ARMA - Have directories list recommended-versions
|
|
|
+ - Quit if running the wrong version
|
|
|
+ - Command-line option to override quit
|
|
|
+ . Add more information to directory server entries
|
|
|
+ - Exit policies
|
|
|
+ - jurisdiction? others?
|
|
|
+SPEC!! - Figure out how to do threshold directory servers
|
|
|
+ . Scrubbing proxies
|
|
|
+ - Find an smtp proxy?
|
|
|
+ - Find an ftp proxy? Figure out how that would work?
|
|
|
+ - Wait until there are packet redirectors for Linux
|
|
|
+ . Get socks4a support into Mozilla
|
|
|
+ . Get tor to act like a socks server
|
|
|
+ o socks4, socks4a
|
|
|
+ - socks5
|
|
|
+SPEC!! - Handle socks commands other than connect, eg, bind?
|
|
|
+ - Develop rendezvous points
|
|
|
+ D Implement reply onions
|
|
|
+ D Deploy and manage open source development site.
|
|
|
+ . Documentation
|
|
|
+ . Discussion of socks, tsocks, etc
|
|
|
+ - On-the-network protocol
|
|
|
+ - Onions
|
|
|
+ - Cells
|
|
|
+ . Better comments for functions!
|
|
|
+ - Tests
|
|
|
+ - Testing harness/infrastructure
|
|
|
+ - Unit tests
|
|
|
+ - System tests (how?)
|
|
|
+ - Performance tests, so we know when we've improved
|
|
|
+ . webload infrastructure (Bruce)
|
|
|
+ . httperf infrastructure (easy to set up)
|
|
|
+ . oprofile (installed in RH 8.0)
|
|
|
+ D Deploy a widespread network
|
|
|
+ . Router twins
|
|
|
+ o Choose twin if primary is down, when laying circuit
|
|
|
+ - Load balancing between twins
|
|
|
+ - Keep track of load over links/nodes, to
|
|
|
+ know who's hosed
|
|
|
+NICK - Daemonize and package
|
|
|
+ o Teach it to fork and background
|
|
|
+ - Red Hat spec file
|
|
|
+ - Debian spec file equivalent
|
|
|
+
|
|
|
+ . Autoconf
|
|
|
+ . Which .h files are we actually using? Port to:
|
|
|
+ o Linux
|
|
|
+ o BSD
|
|
|
+ . Solaris
|
|
|
+ . Windows
|
|
|
+NICK . OS X
|
|
|
+ . Move away from openssl
|
|
|
+ o Abstract out crypto calls
|
|
|
+ D Look at ndss, others? Just include code?
|
|
|
+
|
|
|
+ . transition addr to sin_addr (huh?)
|
|
|
+
|
|
|
+ . Clean up the number of places that get to look at prkey
|
|
|
+SPEC!! - Non-clique topologies, clearer bandwidth management
|
|
|
+ . Look at OR handshake in more detail
|
|
|
+ o Spec it
|
|
|
+ - Merge OR and OP handshakes?
|
|
|
+ - Periodic link key rotation. Spec?
|
|
|
+ - More flexibility in node addressing
|
|
|
+ - Support IPv6 rather than just 4
|
|
|
+ - Handle multihomed servers
|
|
|
+
|