[tahoe-lafs-trac-stream] [tahoe-lafs] #1737: remove "Control Port" (and private/control.furl)

tahoe-lafs trac at tahoe-lafs.org
Mon May 14 23:56:13 UTC 2012


#1737: remove "Control Port" (and private/control.furl)
---------------------------+------------------------
 Reporter:  warner         |          Owner:
     Type:  task           |         Status:  new
 Priority:  normal         |      Milestone:  1.10.0
Component:  code-frontend  |        Version:  1.9.1
 Keywords:  security       |  Launchpad Bug:
---------------------------+------------------------
 There's a little-used "control port" in the tahoe client, accessible
 through Foolscap by someone who can read
 {{{NODEDIR/private/control.furl}}} (which in practice means only the
 node admin). The original idea was to provide a Foolscap-based frontend
 with more features (or at least more security) than the HTTP-based
 frontend. But that never took off, and at this point, there are only two
 consumers:

 * automated performance tests in source:src/allmydata/test/check_speed.py
 * automated memory-footprint tests in
 source:src/allmydata/test/check_memory.py

 The methods it provides are:

 * {{{wait_for_client_connections()}}}
 * {{{upload_from_file_to_uri()}}}
 * {{{download_from_uri_to_file()}}}
 * {{{speed_test()}}}
 * {{{get_memory_usage()}}}
 * {{{measure_peer_response_time()}}}

 David-Sarah argues that it provides excess authority, specifically due
 to the fact that the upload/download methods accept local filenames
 (like {{{remote_upload_from_file_to_uri()}}} which accepts a local disk
 filename and uploads it to the grid, returning the filecap, which could
 be used to upload e.g. {{{~/.tahoe/private/aliases.txt}}}. This makes it
 unsafe to share {{{control.furl}}} with anyone who is not supposed to
 get control of the user account running the node.

 David-Sarah would like to remove it for 1.10. To do that, we'd need to
 either give up the automated performance and memory-footprint tests, or
 find a way to rewrite them (which would probably mean adding new
 authorities into the HTTP-based webapi, at least for get_memory_usage()
 and measure_peer_response_time()).

 We could also address the excess authority by changing the
 upload/download methods (maybe using empty tempfiles of given
 sizes, and *not* accepting a filename at all). That would probably let
 us preserve the automated tests without too many changes.

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1737>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list