[or-cvs] r12379: Edit TODO: remove some completed items, add breakdown for 10 (in tor/trunk: . doc)
nickm at seul.org
nickm at seul.org
Mon Nov 5 18:15:42 UTC 2007
Author: nickm
Date: 2007-11-05 13:15:42 -0500 (Mon, 05 Nov 2007)
New Revision: 12379
Modified:
tor/trunk/
tor/trunk/doc/TODO
Log:
r16408 at catbus: nickm | 2007-11-05 10:02:39 -0500
Edit TODO: remove some completed items, add breakdown for 105+TLS task.
Property changes on: tor/trunk
___________________________________________________________________
svk:merge ticket from /tor/trunk [r16408] on 8246c3cf-6607-4228-993b-4d95d33730f1
Modified: tor/trunk/doc/TODO
===================================================================
--- tor/trunk/doc/TODO 2007-11-05 18:15:39 UTC (rev 12378)
+++ tor/trunk/doc/TODO 2007-11-05 18:15:42 UTC (rev 12379)
@@ -21,58 +21,45 @@
licenses for other components of the bundles.
- Before the feature freeze: (Nick)
- o Support for preconfigured mirror lists
- o Use a pre-shipped fallback consensus.
- o Code to install a pre-defined fallback consensus
- o Download consensuses (et al) via if-modified-since
- o Implement backend support for sending if-modified-since
- o Use it for consensuses.
- D Use it for certificates
- o base Guard flag on WFU rather than on MTBF.
- o Change guard calculation
- o Change dir-spec.txt
- o What should we do about hosts that have been up for only 1 hour,
- but have been up for 100% of that one hour? -NM
- Perhaps the guard flag should only be assigned if the measurement
- period for that server is at least some large period, like a
- week; but ignore this exception if "most" servers have too-short
- measurement periods. -RD
D 118 if feasible and obvious
D Maintain a skew estimate and use ftime consistently.
- 105+TLS, if possible.
- - 105 only
- - Need to get a finished proposal 105
- o "Pick a version" function
- o Have a 'waiting_for_version' state.
- o Store version in or_connection_t.
- o Generate netinfo cells
- o Accept netinfo cells
- . Add an is_canonical field to or_connection_t.
- o Set it when we get a match in the netinfo.
- o Set it when we get a match for a routerinfo we have.
- - Don't extend a circuit over a noncanonical connection with
- mismatched address.
- o Version negotiation: send a version cell and enter
- waiting-for-version; when version cell arrives, pick version
- and send netinfo and be "open".
- o On netinfo, warn if there's skew from a server.
+ - Add a separate handshake structure that handles version negotiation,
+ and stores netinfo data until authentication is done.
+ - Revise versions and netinfo to use separate structure; make
+ act-on-netinfo logic separate so it can get called _after_
+ negotiation.
+ - CERT cells
+ - functions to parse x509 certs
+ - functions to validate a single x509 cert against a TLS connection
+ - functions to validate a chain of x509 certs, and extract a PK.
+ - Parse CERT cells
+ - Generate CERT cells
+ - Keep copies of X509 certs around, not necessarily associated with
+ connection.
+ - LINK_AUTH cells
+ - Code to generate
+ - Code to parse and check
+ - Unit tests
+ - Revised handshake: TLS
+ - Server checks for new cipher types, and if it finds them, sends
+ only one cert and does not ask for client certs.
+ - Client sends certs only if server asks for them.
+ - Client sends new cipher list.
+ - Client sends correct extension list.
+ - Revised handshake: post-TLS.
+ - If in 'handshaking' state (since v2+ conn is in use), accept
+ VERSIONS and NETINFO and CERT and LINK_AUTH.
+ - After we send NETINFO, send CERT and LINK_AUTH if needed.
+ - Once we get a good LINK_AUTH, the connection is OPEN.
+ - Ban most cell types on a non-OPEN connection.
+ - NETINFO fallout
+ - Don't extend a circuit over a noncanonical connection with
+ mismatched address.
- Learn our outgoing IP address from netinfo cells?
+ - Protocol revision.
- Earliest stages of 110 (infinite-length) in v2 protocol:
add support for RELAY_EARLY.
- - TLS only
- - Need to get a finished TLS normalization proposal
- - Revised authentication.
- - Revised handshake.
- - Have a 'waiting_for_authentication' state.
- - Only do version negotiation if we use the normalized TLS.
- o Skew issues:
- o if you load (nick says receive/set/anything) a consensus that's
- in the future, then log about skew.
- o should change the "skew complaint" to specify in largest units
- rather than just seconds.
- o Learn new authority IPs from consensus/certs.
- o karsten's patches
-
- Before the feature freeze: (Roger)
- Make tunnelled dir conns use begin_dir if enabled
- make bridge users fall back from bridge authority to direct attempt
@@ -114,15 +101,7 @@
- Proposals:
o 101: Voting on the Tor Directory System (plus 103)
- o Handle badly timed certificates properly.
- o Start caching consensus documents once authorities make them;
- start downloading consensus documents once caches serve
- them
- o Code to delay next download while fetching certificates to verify
- a consensus we already got.
- o Code to retry consensus download if we got one we already have.
- D Use if-modified-since on consensus download
- o Use if-modified-since on certificate download
+ D Use if-modified-since on consensus download
- Controller support
- GETINFO to get consensus
- Event when new consensus arrives
@@ -142,7 +121,6 @@
- Handle rate-limiting on directory writes to linked directory
connections in a more sensible manner.
- Find more ways to test this.
- o Do TLS rotation less often than "every 10 minutes" in the thrashy case.
D Do TLS connection rotation more often than "once a week" in the
extra-stable case.
D Streamline how we pick entry nodes: Make choose_random_entry() have
@@ -193,19 +171,6 @@
- Audit how much RAM we're using for buffers and cell pools; try to
trim down a lot.
- Base relative control socket paths on datadir.
- o We should ship with a list of stable dir mirrors -- they're not
- trusted like the authorities, but they'll provide more robustness
- and diversity for bootstrapping clients.
- X Implement this as a list of routerstatus, like fake_routerstatus in
- trusted_dir_derver_t?
- o Implemented as a fallback networkstatus consensus.
- o Better estimates in the directory of whether servers have good uptime
- (high expected time to failure) or good guard qualities (high
- fractional uptime).
- o AKA Track uptime as %-of-time-up, as well as time-since-last-down
- o Implement tracking
- o Make uptime info persist too.
- o Base Guard on weighted fractional uptime.
- Make TrackHostExits expire TrackHostExitsExpire seconds after their
*last* use, not their *first* use.
- Limit to 2 dir, 2 OR, N SOCKS connections per IP.
More information about the tor-commits
mailing list