[tor-commits] [torspec/master] Document more differences between SOCKS5 RFCs and how Tor implements SOCKS5
dgoulet at torproject.org
dgoulet at torproject.org
Fri Feb 15 14:40:15 UTC 2019
commit 87abfd89e39e1d4c5d245e0e9f1e62989288701a
Author: rl1987 <rl1987 at sdf.lonestar.org>
Date: Tue Feb 12 19:12:03 2019 +0200
Document more differences between SOCKS5 RFCs and how Tor implements SOCKS5
---
socks-extensions.txt | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/socks-extensions.txt b/socks-extensions.txt
index ab37670..ed249ad 100644
--- a/socks-extensions.txt
+++ b/socks-extensions.txt
@@ -9,7 +9,7 @@ Tor's extensions to the SOCKS protocol
been established, the client application uses the TCP stream as usual.
Tor supports SOCKS4 as defined in [1], SOCKS4A as defined in [2], and
- SOCKS5 as defined in [3].
+ SOCKS5 as defined in [3] and [4].
The stickiest issue for Tor in supporting clients, in practice, is forcing
DNS lookups to occur at the OR side: if clients do their own DNS lookup,
@@ -30,13 +30,18 @@ Tor's extensions to the SOCKS protocol
SOCKS5:
- The (SOCKS5) "UDP ASSOCIATE" command is not supported.
+ - SOCKS5 BIND command is not supported.
- IPv6 is not supported in CONNECT commands.
+ - SOCKS5 GSSAPI subnegotiation is not supported.
- The "NO AUTHENTICATION REQUIRED" (SOCKS5) authentication method [00] is
supported; and as of Tor 0.2.3.2-alpha, the "USERNAME/PASSWORD" (SOCKS5)
authentication method [02] is supported too, and used as a method to
implement stream isolation. As an extension to support some broken clients,
- we allow clients to pass "USERNAME/PASSWORD" authentication to us even if
- no authentication was selected.
+ we allow clients to pass "USERNAME/PASSWORD" authentication message to us
+ even if no authentication was selected. Furthermore, we allow
+ username/password fields of this message to be empty. This technically
+ violates RFC1929 [4], but ensures interoperability with somewhat broken
+ SOCKS5 client implementations.
(For more information on stream isolation, see IsolateSOCKSAuth on the Tor
manpage.)
@@ -94,5 +99,6 @@ Tor's extensions to the SOCKS protocol
References:
[1] http://en.wikipedia.org/wiki/SOCKS#SOCKS4
[2] http://en.wikipedia.org/wiki/SOCKS#SOCKS4a
- [3] SOCKS5: RFC1928
+ [3] SOCKS5: RFC 1928 https://www.ietf.org/rfc/rfc1928.txt
+ [4] RFC 1929: https://www.ietf.org/rfc/rfc1929.txt
More information about the tor-commits
mailing list