SOCKS4 include una stringa USERID a lunghezza variabile terminata da un byte nullo. Il server interpreta quell'identificatore secondo la propria politica; il protocollo non lo fa seguire da una sotto-negociazione nome utente/password SOCKS5.

Una richiesta SOCKS4 CONNECT all'indirizzo di documentazione 203.0.113.8, porta 443, con USERID vuoto è:

04 01 01 bb cb 00 71 08 00

Il nono byte, 0x00, termina il campo vuoto. Non è il carattere 0, il cui valore ASCII è 0x30. Ometterlo lascia USERID incompleto.

Cosa si aspetta il server

Un identificatore vuoto può essere appropriato quando il servizio non ne richiede alcuno. Se richiede un identificatore specifico o un altro meccanismo di accesso, seguite la sua politica documentata. Un nome fornito stabilisce l'identità solo se il server lo convalida.

SOCKS4a estende la gestione del nome host di destinazione; non aggiunge l'autenticazione SOCKS5. Un servizio che richiede un account SOCKS5 necessita di un client e di un metodo compatibili. Inserire una password nell'USERID di SOCKS4 non può sostituire quello scambio e può rivelare una credenziale non correlata.

In caso di rifiuto, controllate separatamente la versione SOCKS, la destinazione richiesta e la politica utente.

Articoli correlati