mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-23 06:35:28 +01:00
Clean TODO indentation
svn:r2598
This commit is contained in:
parent
ec81c56eef
commit
bc17e9b6e0
1 changed files with 218 additions and 219 deletions
437
doc/TODO
437
doc/TODO
|
@ -10,239 +10,238 @@ ARMA - arma claims
|
||||||
D Deferred
|
D Deferred
|
||||||
X Abandoned
|
X Abandoned
|
||||||
|
|
||||||
0.0.9pre4:
|
0.0.9pre4:
|
||||||
o Don't use FascistFirewall if you're going via Tor, or if
|
o Don't use FascistFirewall if you're going via Tor, or if
|
||||||
you're going via HttpProxy.
|
you're going via HttpProxy.
|
||||||
o make RecommendedVersions a CONFIG_TYPE_LINELIST option
|
o make RecommendedVersions a CONFIG_TYPE_LINELIST option
|
||||||
o node 'groups' that are known to be in the same zone of control.
|
o node 'groups' that are known to be in the same zone of control.
|
||||||
o Nodes can list their coadministrated nodes.
|
o Nodes can list their coadministrated nodes.
|
||||||
o If A lists B, it only counts if B also lists A
|
o If A lists B, it only counts if B also lists A
|
||||||
o Users can list other coadministrated nodes if they like.
|
o Users can list other coadministrated nodes if they like.
|
||||||
o Never choose two coadministrated nodes in the same circuit.
|
o Never choose two coadministrated nodes in the same circuit.
|
||||||
o let tor servers use proxies for port 80 exits
|
o let tor servers use proxies for port 80 exits
|
||||||
o Use generic port redirector for IP/bits:Port->IP:Port .
|
o Use generic port redirector for IP/bits:Port->IP:Port .
|
||||||
o Make use of them when we're doing exit connections.
|
o Make use of them when we're doing exit connections.
|
||||||
X We should set things in options to NULL, not rely on memset(...0)
|
X We should set things in options to NULL, not rely on memset(...0)
|
||||||
being equivalent.
|
being equivalent.
|
||||||
o We should check for memset(0) setting things to NULL with
|
o We should check for memset(0) setting things to NULL with
|
||||||
autoconf, and then rely on it in the code.
|
autoconf, and then rely on it in the code.
|
||||||
|
|
||||||
0.0.9pre5/6:
|
0.0.9pre5/6:
|
||||||
o Replace running-routers with a router-status line that can be used
|
o Replace running-routers with a router-status line that can be used
|
||||||
without a list of router descriptors.
|
without a list of router descriptors.
|
||||||
o Add a log handler that sends stuff to syslog.
|
o Add a log handler that sends stuff to syslog.
|
||||||
o Deprecate unofficial configuration abbrevs; make official abbrevs
|
o Deprecate unofficial configuration abbrevs; make official abbrevs
|
||||||
only official on the command line.
|
only official on the command line.
|
||||||
- per-month byte allowances.
|
- per-month byte allowances.
|
||||||
N - Based on bandwidth and per-month allowance, choose a
|
N - Based on bandwidth and per-month allowance, choose a
|
||||||
window within month to be up. Stay up until allowance is
|
window within month to be up. Stay up until allowance is
|
||||||
used. Adjust next month's window based on outcome. Hibernate
|
used. Adjust next month's window based on outcome. Hibernate
|
||||||
when we're not up.
|
when we're not up.
|
||||||
R - Hibernate means "stop accepting connections, and start sleeping"
|
R - Hibernate means "stop accepting connections, and start sleeping"
|
||||||
Implement hibernation. Have a separate
|
Implement hibernation. Have a separate
|
||||||
about-to-start-hibernating state implemented in similar way to
|
about-to-start-hibernating state implemented in similar way to
|
||||||
will shut-down-in-30-seconds state.
|
will shut-down-in-30-seconds state.
|
||||||
- Rendezvous service bug: can we nail it down?
|
- Rendezvous service bug: can we nail it down?
|
||||||
R . bandwidth buckets for write as well as read.
|
R . bandwidth buckets for write as well as read.
|
||||||
N - Make watchdogged clients check cached-directory mtime to avoid
|
N - Make watchdogged clients check cached-directory mtime to avoid
|
||||||
fetching directory in a tight loop.
|
fetching directory in a tight loop.
|
||||||
- Implement If-Modified-Since for directories.
|
- Implement If-Modified-Since for directories.
|
||||||
N - Handle rendezvousing with unverified nodes.
|
N - Handle rendezvousing with unverified nodes.
|
||||||
- Specify: Stick rendezvous point's key in INTRODUCE cell.
|
- Specify: Stick rendezvous point's key in INTRODUCE cell.
|
||||||
Bob should _always_ use key from INTRODUCE cell.
|
Bob should _always_ use key from INTRODUCE cell.
|
||||||
- Implement.
|
- Implement.
|
||||||
R - figure out enclaves, e.g. so we know what to recommend that people
|
R - figure out enclaves, e.g. so we know what to recommend that people
|
||||||
do, and so running a tor server on your website is helpful.
|
do, and so running a tor server on your website is helpful.
|
||||||
- Do enclaves for same IP only.
|
- Do enclaves for same IP only.
|
||||||
- Resolve first, then if IP is an OR, connect to next guy.
|
- Resolve first, then if IP is an OR, connect to next guy.
|
||||||
N - Pure C tor_resolve
|
N - Pure C tor_resolve
|
||||||
N - the user interface interface
|
N - the user interface interface
|
||||||
- Skeleton only.
|
- Skeleton only.
|
||||||
- Implement parts along with trivial fun gui.
|
- Implement parts along with trivial fun gui.
|
||||||
N - add ipv6 support.
|
N - add ipv6 support.
|
||||||
- Spec issue: if a resolve returns an IP4 and an IP6 address,
|
- Spec issue: if a resolve returns an IP4 and an IP6 address,
|
||||||
which to use?
|
which to use?
|
||||||
N&R - Update Spec
|
N&R - Update Spec
|
||||||
R - learn from ben about his openssl-reinitialization-trick to
|
R - learn from ben about his openssl-reinitialization-trick to
|
||||||
rotate tls keys without making new connections.
|
rotate tls keys without making new connections.
|
||||||
- (Roger grabs Ben next time he sees him on IRC)
|
- (Roger grabs Ben next time he sees him on IRC)
|
||||||
- christian grothoff's attack of infinite-length circuit.
|
- christian grothoff's attack of infinite-length circuit.
|
||||||
the solution is to have a separate 'extend-data' cell type
|
the solution is to have a separate 'extend-data' cell type
|
||||||
which is used for the first N data cells, and only
|
which is used for the first N data cells, and only
|
||||||
extend-data cells can be extend requests.
|
extend-data cells can be extend requests.
|
||||||
- have a pool of circuits available, cannibalize them
|
- have a pool of circuits available, cannibalize them
|
||||||
for your purposes (e.g. rendezvous, etc).
|
for your purposes (e.g. rendezvous, etc).
|
||||||
D nt services on win32.
|
D nt services on win32.
|
||||||
- Once we have a trusted directory on port 80, stop falling back to
|
- Once we have a trusted directory on port 80, stop falling back to
|
||||||
forbidden ports when fascistfirewall blocks all good dirservers.
|
forbidden ports when fascistfirewall blocks all good dirservers.
|
||||||
|
|
||||||
0.0.9 and beyond:
|
0.0.9 and beyond:
|
||||||
- fix sprintf's to snprintf's?
|
- fix sprintf's to snprintf's?
|
||||||
. Make intro points and rendezvous points accept $KEYID in addition
|
. Make intro points and rendezvous points accept $KEYID in addition
|
||||||
to nicknames.
|
to nicknames.
|
||||||
o Specify
|
o Specify
|
||||||
o Implement parsing
|
o Implement parsing
|
||||||
- Generate new formats (Not till 007 is dead)
|
- Generate new formats (Not till 007 is dead)
|
||||||
- make loglevel info less noisy
|
- make loglevel info less noisy
|
||||||
- Facility to automatically choose long-term helper nodes; perhaps
|
- Facility to automatically choose long-term helper nodes; perhaps
|
||||||
on by default for hidden services.
|
on by default for hidden services.
|
||||||
- Make command-line strict about checking options; make only certain
|
- Make command-line strict about checking options; make only certain
|
||||||
option prefixes work.
|
option prefixes work.
|
||||||
- Rate-limit OR and directory connections overall and per-IP and
|
- Rate-limit OR and directory connections overall and per-IP and
|
||||||
maybe per subnet.
|
maybe per subnet.
|
||||||
- put expiry date on onion-key, so people don't keep trying
|
- put expiry date on onion-key, so people don't keep trying
|
||||||
old ones that they could know are expired?
|
old ones that they could know are expired?
|
||||||
* Leave on todo list, see if pre3 onion fixes helped enough.
|
* Leave on todo list, see if pre3 onion fixes helped enough.
|
||||||
- should the running-routers list put unverified routers at the
|
- should the running-routers list put unverified routers at the
|
||||||
end?
|
end?
|
||||||
* Cosmetic, don't do it yet.
|
* Cosmetic, don't do it yet.
|
||||||
- make advertised_server_mode() ORs fetch dirs more often.
|
- make advertised_server_mode() ORs fetch dirs more often.
|
||||||
* not necessary yet.
|
* not necessary yet.
|
||||||
- Add a notion of nickname->Pubkey binding that's not 'verification'
|
- Add a notion of nickname->Pubkey binding that's not 'verification'
|
||||||
* eventually, only when needed
|
* eventually, only when needed
|
||||||
- ORs use uniquer default nicknames
|
- ORs use uniquer default nicknames
|
||||||
* Don't worry about this for now
|
* Don't worry about this for now
|
||||||
- Handle full buffers without totally borking
|
- Handle full buffers without totally borking
|
||||||
* do this eventually, no rush.
|
* do this eventually, no rush.
|
||||||
- do resolve before trying to attach the stream
|
- do resolve before trying to attach the stream
|
||||||
* don't do this for now.
|
* don't do this for now.
|
||||||
- if destination IP is running a tor node, extend a circuit there
|
- if destination IP is running a tor node, extend a circuit there
|
||||||
before sending begin.
|
before sending begin.
|
||||||
* don't do this for now. figure out how enclaves work. but do enclaves soon.
|
* don't do this for now. figure out how enclaves work. but do
|
||||||
- Support egd or other non-OS-integrated strong entropy sources
|
enclaves soon.
|
||||||
|
- Support egd or other non-OS-integrated strong entropy sources
|
||||||
|
|
||||||
more features, complex:
|
more features, complex:
|
||||||
- password protection for on-disk identity key
|
- password protection for on-disk identity key
|
||||||
. Switch dirservers entries to config lines:
|
. Switch dirservers entries to config lines:
|
||||||
o read in and parse each TrustedDir config line.
|
o read in and parse each TrustedDir config line.
|
||||||
o stop reading dirservers file.
|
o stop reading dirservers file.
|
||||||
o add some default TrustedDir lines if none defined, or if
|
o add some default TrustedDir lines if none defined, or if
|
||||||
no torrc.
|
no torrc.
|
||||||
o remove notion of ->is_trusted_dir from the routerlist. that's
|
o remove notion of ->is_trusted_dir from the routerlist. that's
|
||||||
no longer where you look.
|
no longer where you look.
|
||||||
o clean up router parsing flow, since it's simpler now?
|
o clean up router parsing flow, since it's simpler now?
|
||||||
o when checking signature on a directory, look it up in
|
o when checking signature on a directory, look it up in
|
||||||
options.TrustedDirs, and make sure there's a descriptor
|
options.TrustedDirs, and make sure there's a descriptor
|
||||||
with that nickname, whose key hashes to the fingerprint,
|
with that nickname, whose key hashes to the fingerprint,
|
||||||
and who correctly signed the directory.
|
and who correctly signed the directory.
|
||||||
o when fetching a directory, if you want a trusted one,
|
o when fetching a directory, if you want a trusted one,
|
||||||
choose from the trusteddir list.
|
choose from the trusteddir list.
|
||||||
o which means keeping track of which ones are "up"
|
o which means keeping track of which ones are "up"
|
||||||
? if you don't need a trusted one, choose from the routerinfo
|
? if you don't need a trusted one, choose from the routerinfo
|
||||||
list if you have one, else from the trusteddir list.
|
list if you have one, else from the trusteddir list.
|
||||||
* roger will do the above
|
* roger will do the above
|
||||||
- add a listener for a ui
|
- add a listener for a ui, and a basic GUI
|
||||||
* nick chats with weasel
|
- and a basic gui
|
||||||
- and a basic gui
|
- Have clients and dirservers preserve reputation info over
|
||||||
- Have clients and dirservers preserve reputation info over
|
reboots.
|
||||||
reboots.
|
* continue not doing until we have something we need to preserve
|
||||||
* continue not doing until we have something we need to preserve
|
- round detected bandwidth up to nearest 10KB?
|
||||||
- round detected bandwidth up to nearest 10KB?
|
- client software not upload descriptor until:
|
||||||
- client software not upload descriptor until:
|
- you've been running for an hour
|
||||||
- you've been running for an hour
|
- it's sufficiently satisfied with its bandwidth
|
||||||
- it's sufficiently satisfied with its bandwidth
|
- it decides it is reachable
|
||||||
- it decides it is reachable
|
- start counting again if your IP ever changes.
|
||||||
- start counting again if your IP ever changes.
|
- never regenerate identity keys, for now.
|
||||||
- never regenerate identity keys, for now.
|
- you can set a bit for not-being-an-OR.
|
||||||
- you can set a bit for not-being-an-OR.
|
* no need to do this yet. few people define their ORPort.
|
||||||
* no need to do this yet. few people define their ORPort.
|
- authdirserver lists you as running iff:
|
||||||
- authdirserver lists you as running iff:
|
- he can connect to you
|
||||||
- he can connect to you
|
- he has successfully extended to you
|
||||||
- he has successfully extended to you
|
- you have sufficient mean-time-between-failures
|
||||||
- you have sufficient mean-time-between-failures
|
* keep doing nothing for now.
|
||||||
* keep doing nothing for now.
|
|
||||||
|
|
||||||
blue sky:
|
blue sky:
|
||||||
- Possible to get autoconf to easily install things into ~/.tor?
|
- Possible to get autoconf to easily install things into ~/.tor?
|
||||||
|
|
||||||
ongoing:
|
ongoing:
|
||||||
. rename/rearrange functions for what file they're in
|
. rename/rearrange functions for what file they're in
|
||||||
- generalize our transport: add transport.c in preparation for
|
- generalize our transport: add transport.c in preparation for
|
||||||
http, airhook, etc transport.
|
http, airhook, etc transport.
|
||||||
NICK - investigate sctp for alternate transport.
|
NICK - investigate sctp for alternate transport.
|
||||||
|
|
||||||
For September:
|
For September:
|
||||||
NICK . Windows port
|
NICK . Windows port
|
||||||
o works as client
|
o works as client
|
||||||
- deal with pollhup / reached_eof on all platforms
|
- deal with pollhup / reached_eof on all platforms
|
||||||
. robust as a client
|
. robust as a client
|
||||||
. works as server
|
. works as server
|
||||||
- can be configured
|
- can be configured
|
||||||
- robust as a server
|
- robust as a server
|
||||||
. Usable as NT service
|
. Usable as NT service
|
||||||
- docs for building in win
|
- docs for building in win
|
||||||
- installer, including all needed libs.
|
- installer, including all needed libs.
|
||||||
|
|
||||||
- Docs
|
- Docs
|
||||||
. FAQ
|
. FAQ
|
||||||
o overview of tor. how does it work, what's it do, pros and
|
o overview of tor. how does it work, what's it do, pros and
|
||||||
cons of using it, why should I use it, etc.
|
cons of using it, why should I use it, etc.
|
||||||
- a howto tutorial with examples
|
- a howto tutorial with examples
|
||||||
* put a stub on the wiki
|
* put a stub on the wiki
|
||||||
o tutorial: how to set up your own tor network
|
o tutorial: how to set up your own tor network
|
||||||
o (need to not hardcode dirservers file in config.c)
|
o (need to not hardcode dirservers file in config.c)
|
||||||
- Make tutorial reflect this.
|
- Make tutorial reflect this.
|
||||||
- port forwarding howto for ipchains, etc
|
- port forwarding howto for ipchains, etc
|
||||||
* roger add to wiki of requests
|
* roger add to wiki of requests
|
||||||
. correct, update, polish spec
|
. correct, update, polish spec
|
||||||
- document the exposed function api?
|
- document the exposed function api?
|
||||||
o document what we mean by socks.
|
o document what we mean by socks.
|
||||||
|
|
||||||
NICK . packages
|
N . packages
|
||||||
. rpm
|
. rpm
|
||||||
* nick will look at the spec file
|
* nick will look at the spec file
|
||||||
- find a long-term rpm maintainer
|
- find a long-term rpm maintainer
|
||||||
* roger will start guilting people
|
* roger will start guilting people
|
||||||
|
|
||||||
- code
|
- code
|
||||||
- better warn/info messages
|
- better warn/info messages
|
||||||
o let tor do resolves.
|
o let tor do resolves.
|
||||||
o extend socks4 to do resolves?
|
o extend socks4 to do resolves?
|
||||||
o make script to ask tor for resolves
|
o make script to ask tor for resolves
|
||||||
- write howto for setting up tsocks, socat.
|
- write howto for setting up tsocks, socat.
|
||||||
- including on osx and win32
|
- including on osx and win32
|
||||||
- freecap handling
|
- freecap handling
|
||||||
- tsocks
|
- tsocks
|
||||||
o gather patches, submit to maintainer
|
o gather patches, submit to maintainer
|
||||||
* send him a reminder mail and see what's up.
|
* send him a reminder mail and see what's up.
|
||||||
- intercept gethostbyname and others
|
- intercept gethostbyname and others
|
||||||
* add this to tsocks
|
* add this to tsocks
|
||||||
o do resolve via tor
|
o do resolve via tor
|
||||||
- redesign and thorough code revamp, with particular eye toward:
|
- redesign and thorough code revamp, with particular eye toward:
|
||||||
- support half-open tcp connections
|
- support half-open tcp connections
|
||||||
- conn key rotation
|
- conn key rotation
|
||||||
- other transports -- http, airhook
|
- other transports -- http, airhook
|
||||||
- modular introduction mechanism
|
- modular introduction mechanism
|
||||||
- allow non-clique topology
|
- allow non-clique topology
|
||||||
|
|
||||||
Other details and small and hard things:
|
Other details and small and hard things:
|
||||||
- tor should be able to have a pool of outgoing IP addresses
|
- tor should be able to have a pool of outgoing IP addresses
|
||||||
that it is able to rotate through. (maybe)
|
that it is able to rotate through. (maybe)
|
||||||
- tie into squid
|
- tie into squid
|
||||||
- hidserv offerers shouldn't need to define a SocksPort
|
- hidserv offerers shouldn't need to define a SocksPort
|
||||||
* figure out what breaks for this, and do it.
|
* figure out what breaks for this, and do it.
|
||||||
- when the client fails to pick an intro point for a hidserv,
|
- when the client fails to pick an intro point for a hidserv,
|
||||||
it should refetch the hidserv desc.
|
it should refetch the hidserv desc.
|
||||||
. should maybe make clients exit(1) when bad things happen?
|
. should maybe make clients exit(1) when bad things happen?
|
||||||
e.g. clock skew.
|
e.g. clock skew.
|
||||||
- should retry exitpolicy end streams even if the end cell didn't
|
- should retry exitpolicy end streams even if the end cell didn't
|
||||||
resolve the address for you
|
resolve the address for you
|
||||||
. Make logs handle it better when writing to them fails.
|
. Make logs handle it better when writing to them fails.
|
||||||
o Dirserver shouldn't put you in running-routers list if you haven't
|
o Dirserver shouldn't put you in running-routers list if you haven't
|
||||||
uploaded a descriptor recently
|
uploaded a descriptor recently
|
||||||
. Refactor: add own routerinfo to routerlist. Right now, only
|
. Refactor: add own routerinfo to routerlist. Right now, only
|
||||||
router_get_by_nickname knows about 'this router', as a hack to
|
router_get_by_nickname knows about 'this router', as a hack to
|
||||||
get circuit_launch_new to do the right thing.
|
get circuit_launch_new to do the right thing.
|
||||||
. Scrubbing proxies
|
. Scrubbing proxies
|
||||||
- Find an smtp proxy?
|
- Find an smtp proxy?
|
||||||
. Get socks4a support into Mozilla
|
. Get socks4a support into Mozilla
|
||||||
- Need a relay teardown cell, separate from one-way ends.
|
- Need a relay teardown cell, separate from one-way ends.
|
||||||
- Make it harder to circumvent bandwidth caps: look at number of bytes
|
- Make it harder to circumvent bandwidth caps: look at number of bytes
|
||||||
sent across sockets, not number sent inside TLS stream.
|
sent across sockets, not number sent inside TLS stream.
|
||||||
- fix router_get_by_* functions so they can get ourselves too,
|
- fix router_get_by_* functions so they can get ourselves too,
|
||||||
and audit everything to make sure rend and intro points are
|
and audit everything to make sure rend and intro points are
|
||||||
just as likely to be us as not.
|
just as likely to be us as not.
|
||||||
|
|
||||||
|
|
||||||
***************************Future tasks:****************************
|
***************************Future tasks:****************************
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue