SOCKS4 incluye una cadena USERID de longitud variable terminada en un byte cero. El servidor interpreta ese identificador según su política; el protocolo no lo continúa con una subnegociación de usuario/contraseña de SOCKS5.

Una solicitud SOCKS4 CONNECT a la dirección de documentación 203.0.113.8, puerto 443, con un USERID vacío es:

04 01 01 bb cb 00 71 08 00

El noveno byte, 0x00, termina el campo vacío. No es el carácter 0, cuyo valor ASCII es 0x30. Omitirlo deja el USERID sin terminar.

Qué espera el servidor

Un identificador vacío puede ser adecuado cuando el servicio no exige ninguno. Si exige un identificador concreto u otro mecanismo de acceso, siga su política documentada. Un nombre proporcionado establece identidad solo si el servidor lo valida.

SOCKS4a amplía el tratamiento del nombre de host de destino; no añade autenticación SOCKS5. Un servicio que exige una cuenta SOCKS5 necesita un cliente y un método compatibles. Poner una contraseña en el USERID de SOCKS4 no puede sustituir ese intercambio y puede revelar una credencial no relacionada.

Ante un rechazo, compruebe por separado la versión de SOCKS, el destino solicitado y la política de usuario.

Artículos relacionados