[tor-bugs] #6060 [Tor Client]: add http proxy support to Tor
Tor Bug Tracker & Wiki
torproject-admin at torproject.org
Wed Sep 26 00:47:05 UTC 2012
#6060: add http proxy support to Tor
-------------------------+--------------------------------------------------
Reporter: proper | Owner: arma
Type: enhancement | Status: assigned
Priority: normal | Milestone: Tor: very long term
Component: Tor Client | Version:
Keywords: | Parent:
Points: | Actualpoints:
-------------------------+--------------------------------------------------
Comment(by ioerror):
Replying to [comment:23 nickm]:
> Replying to [comment:16 ioerror]:
> > Replying to [comment:15 nickm]:
> > > "Audit shim and bring it up-to-date" is a reasonable thing to do.
> >
> > I'm not sure what it needs - it compiles without warnings (yay) and it
seems to function just as it should. It looks "finished" in as much as any
C program. :)
> >
> > It does need compiler hardening and all that stuff added, of course.
>
> What it needs IMO is auditing for security and standards compliance.
Ok - I think both of those are reasonable. What is the absolute canonical
git repo? Is it yours? If so, I'd be willing to perform both of those
audits. I would like some guidance of which standards matter to us and
what specific security issues that concern us.
I assume we want to consider the security issues of a program written in
C; {buffer,heap,int} overflows, format strings, {double,use after}free(),
etc.
I also assume we'd want to ensure that the HTTP/1.1 standard is followed
as much as is possible as far as shim's clients are concerned. I don't
know of any standard that regulates HTTP->SOCKS4a proxies, so I think
we're flying by the seat of our pants there. :)
Any requirements of such a thing - regardless of where we put it - I'm
open to considering and trying to resolve.
>
> > > Somebody would need to take on the responsibility of being shim
maintainer. I don't know that shipping shim by default would make senese.
> >
> > The open question for me is - "what would it take to make an HTTP
proxy port a Tor configuration line as we have with SOCKSPort?"
>
> For me, that's not a goal. Tor is not an all-singing all-dancing all-
purpose application launcher, nor do I want to push '''more''' code into
the main Tor process. I'd like us to move in the direction of moving
functionality ''out'' of Tor.
>
Ok, I think our goals aren't so different here. I don't want a full HTTP
proxy with caching - I want the most minimal thing that will help reduce
harm for our users. I think there is a balance to be struck and that is
what happened with DNSPort - it is a minimal thing that at least gives
'''some''' of the features that our users need. It has been extremely
handy, even if imperfect or limited; it isn't standards compliant but holy
cow, it is useful!
I am hoping to solve this with a clean design in #6948 - so I totally hear
you. I'm '''also''' in favor of that as a reality, sooner rather than
later. If we can solve #6948, I would say we could break out each of these
things quite nicely and move more and more code out of Tor proper. I am
totally a fan of that '''while''' also being concerned that we may not
succeed anytime soon.
> > It seems to me that the _easy_ way is to have a shim binary component
and just run it. That isn't the cleanest way, I guess. A feature for
0.2.4.x, perhaps?
> >
> > It seems to me that the _best_ way is to have Tor do the entire thing
in a thread or internally in some other way. A feature for 0.2.4.x or
0.2.5.x, I guess.
> >
> > nickm - Which way seems reasonable? If the proxy code was inside of
Tor - would that be reasonable? Or do you outright reject the idea? :)
>
> Strongly reject. Tor is not inetd; Tor is not systemd. "It could be in
tor" and "applications could use it" are not a justification for putting
it in Tor.
>
Ok. That settles it, I guess. If both options are rejected, even as a
thread that doesn't loop to a SocksPort, I'll continue with designs in
#6948.
> We *do* need a better way to handle the multiple pieces of the Tor
experience, but "do everything in Tor" is exactly the wrong answer.
Perhaps some hybrid choices exist that might satisfy us both? I'm open to
finding any kind of middle ground that might reduce harm to users (such as
those that suffer from the gpg bug #2846) - if that means I need to write
a tiny launcher like in #6948, Ok!
I think the clear take away is that Tor will probably not have an HTTPPort
like we a SocksPort or a DNSPort. I accept that reality and I will work on
#6948 unless there is a hybrid choice that you propose. If there is no
such hybrid notion that would be reasonable to get into 2.4.x or
'''later''', I'd ask that we close the ticket and add an FAQ item.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/6060#comment:26>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list