[tor-bugs] #12125 [Pluggable transport]: Proposal 232 (TOR_PT_PROXY) support for goptlib
Tor Bug Tracker & Wiki
blackhole at torproject.org
Sun May 25 17:25:25 UTC 2014
#12125: Proposal 232 (TOR_PT_PROXY) support for goptlib
-------------------------------------+--------------------------
Reporter: dcf | Owner: dcf
Type: project | Status: needs_review
Priority: normal | Milestone:
Component: Pluggable transport | Version:
Resolution: | Keywords: goptlib
Actual Points: | Parent ID:
Points: |
-------------------------------------+--------------------------
Changes (by dcf):
* status: new => needs_review
Comment:
Replying to [comment:2 yawning]:
> Welp, I likewise spent the evening working on this for obfs4proxy
(SOCKSv5 works through the magic of library code, I'll write SOCKSv4/HTTP
support next).
>
> My `ProxyError`/`ProxyDone` routines are basically identical. I went
with having a `ptGetProxy()` routine and I currently do more validation
(check vs known scheme types, validate that the rest of the URI is sane)
since I stole the code I wrote for pyptlib, and need to have those checks
anyway.
>
> https://github.com/Yawning/obfs4/blob/master/obfs4proxy/pt_extras.go#L83
>
> Changing my code to use your interface at a later date is no problem for
me.
It's good that you did this. now we have two clean-room implementations
that we can compare against each other for bugs. They can both just mellow
in their respective programs until we merge them to goptlib.
It looks like ProxyDone and ProxyError are easy and uncontroversial.
I'm thinking of doing even less validation of the URL, on the assumption
that application authors know what they're doing and they're going to have
to crawl the URL structure anyway to do anything useful. But the checks
for credentials that won't work (like a password with socks4a, or too-long
credentials with socks5) may be a good idea. On the other hand, I might
like to let it fail at connect time, because the application has to check
for errors at that time anyway.
[https://github.com/Yawning/obfs4/blob/c05a7a2e34dc832f192beaeee43931d13778dbe2/obfs4proxy/pt_extras.go#L144
validateAddrStr] appears to allow only IP addresses, not host names. I
guess prop 232 isn't clear whether host names need to be supported. I
assumed they should be, without thinking about it. (The use case I'm
thinking of is like a corporate proxy-only network, where you set your
proxy to "!http://proxy.megacorp.example.com:8000/". I was also doing
tests locally with "localhost".) I suppose this should be clarified in the
proposal.
--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/12125#comment:3>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online
More information about the tor-bugs
mailing list