Een SOCKS5-client begint met versie 5 en stuurt daarna tijdens wachtwoordauthenticatie versie 1. Dat is niet per se een downgrade of een verkeerde proxy.

De eerste uitwisseling onderhandelt de SOCKS5-authenticatiemethode. Wanneer gebruikersnaam/wachtwoord wordt gekozen, definieert RFC 1929 een aparte subonderhandeling waarvan het versieveld 0x01 is.

Dat authenticatieverzoek bevat lengtes en bytes voor de gebruikersnaam en het wachtwoord. De server retourneert de versie van de subonderhandeling en een status. Pas nadat authenticatie slaagt, stuurt de client het SOCKS5-bestemmingsverzoek.

Houd de twee uitwisselingen gescheiden bij het lezen van een trace of het implementeren van een client. Overal 0x05 herhalen omdat de dienst SOCKS5 heet, levert het verkeerde authenticatiebericht op.

Een geslaagde wachtwoordstatus betekent ook niet dat de gevraagde bestemming is toegestaan. Het volgende SOCKS-antwoord kan die verbinding nog steeds weigeren.

Ten slotte versleutelt deze gebruikersnaam/wachtwoord-methode de inloggegevens niet. De versiebyte duidt een berichtformaat aan, geen versleutelde of sterkere inlogmodus.

Gerelateerde artikelen