O campo USERID de SOCKS4 no cable
Explica o campo USERID de SOCKS4 e por que a súa interpretación depende do servidor e non da autenticación de usuario/contrasinal de SOCKS5.
SOCKS4 inclúe unha cadea USERID de lonxitude variable terminada por un byte cero. O servidor interpreta ese identificador segundo a súa política; o protocolo non o segue cunha subnegociación de usuario/contrasinal de SOCKS5.
Unha solicitude SOCKS4 CONNECT ao enderezo de documentación 203.0.113.8, porto 443, cun USERID baleiro é:
04 01 01 bb cb 00 71 08 00
O noveno byte, 0x00, remata o campo baleiro. Non é o carácter 0, cuxo valor ASCII é 0x30. Omitilo deixa o USERID sen rematar.
Que espera o servidor
Un identificador baleiro pode ser axeitado cando o servizo non require ningún. Se require un identificador concreto ou outro mecanismo de acceso, siga a súa política documentada. Un nome fornecido estabelece identidade só se o servidor o valida.
SOCKS4a amplía o tratamento do nome de host de destino; non engade autenticación SOCKS5. Un servizo que require unha conta SOCKS5 necesita un cliente e un método compatibles. Poñer un contrasinal no USERID de SOCKS4 non pode substituír ese intercambio e pode revelar unha credencial non relacionada.
Ante un rexeitamento, comprobe por separado a versión de SOCKS, o destino solicitado e a política de usuario.