1. Введение
Этот документ описывает один из моментов "общения" SOCKS 5 Сервера и клиента - Аутентификацию.
(Прим.пер: Аутентификация производится по методу X'02' USERNAME/PASSWORD)
Примечание:
Если иначе не отмечено, десятичные числа, появляющиеся в пакете, указывают длину соответствующего значения, в бинарном (восьмиричном) виде.
Запись X'hh' используется, чтобы показать, что данные должны быть представлены в фиксированной длине (Прим.пер.:в данном случае фиксированная длина -2, поэтому ввод цыфр от 0 до 9 должен быть с предшествующим нулём:например 07).
2. Начальные переговоры (общение клиент-сервер,-прим пер.)
Когда сервер готов к переговорам и клиентом указана соответсвующий метод авторизации (логин+пароль), начинаются переговоры следующего содержания.
Клиент должен передеать даные серверу следующего содержания:
+----+------+----------+------+----------+
/VER / ULEN / UNAME / PLEN / PASSWD /
+----+------+----------+------+----------+
/ 1 / 1 / 1 to 255 / 1 / 1 to 255 /
+----+------+----------+------+----------+
Поле VER представляет из себя версию протокола, в данном случае X'05'.
Поле ULEN содержит длину поля UNAME. Поле UNAME содержит логин для авторизации, а поле PASSWD содержит пароль для авторизации, длина которого указывается в поле PLEN
После передачи данных серверу и их обработки, сервер возвращает ответ следующего содержания:
+----+--------+
/VER / STATUS /
+----+--------+
/ 1 / 1 /
+----+--------+
STATUS вида X'00' указывает на удачное прохождение авторизации, а отличное от него является указанием на то, что авторизация не пройдена и клиент должен акрыть соединение с сервером. Поле VER также содержит версию протокола X'05'
3. Замечания по безопасности
Этот документ описывает аутентификацию в протоколе SOCKS.
Так как запрос несёт пароль и логин в открытом виде, то рекомендуется проводить дополнительную проверку, в случае, если использование "снифферов" возможно.
Ссылки по теме