|
|
Компьютеры - SOCKS - Протокол SOCKS 506 июня 2011
Оглавление: 1. SOCKS 2. Протокол SOCKS 4 3. Протокол SOCKS 5 4. Реализации
SOCKS 5 расширяет модель SOCKS 4, добавляя к ней поддержку UDP, обеспечение универсальных схем строгой аутентификации и расширяет методы адресации, добавляя поддержку доменных имен и адресов IPv6. Начальная установка связи теперь состоит из следующего:
- Клиент подключается, и посылает приветствие, которое включает перечень поддерживаемых методов аутентификации
- Сервер выбирает из них один
- В зависимости от выбранного метода, между клиентом и сервером может пройти некоторое количество сообщений
- Клиент посылает запрос на соединение, аналогично SOCKS 4
- Сервер отвечает, аналогично SOCKS 4
Методы аутентификации пронумерованы следующим образом:
- 0x00 — аутентификация не требуется
- 0x01 — GSSAPI
- 0x02 — имя пользователя / пароль
- 0x03-0x7F — зарезервировано IANA
- 0x80-0xFE — зарезервировано для методов частного использования
Начальное приветствие от клиента:
- поле 1: номер версии SOCKS
- поле 2: количество поддерживаемых методов аутентификации, 1 байт
- поле 3: номера методы аутентификации, переменная длина, 1 байт для каждого поддерживаемого метода
Сервер сообщает о своём выборе:
- поле 1: Версия SOCKS, 1 байт
- поле 2: выбранный метод аутентификации, 1 байт, или 0xFF, если не было предложено приемлемого метода
Последующая идентификация зависит от выбранного метода.
Запрос клиента:
- поле 1: номер версии SOCKS
- поле 2: код команды, 1 байт:
- 0x01 = установка TCP/IP соединения
- 0x02 = назначение TCP/IP порта
- 0x03 = ассоциирование UDP-порта
- поле 3: зарезервированный байт, должен быть 0x00
- поле 4: тип адреса, 1 байт:
- 0x01 = адрес IPv4
- 0x03 = имя домена
- 0x04 = адрес IPv6
- поле 5: назначение адреса
- 4 байта для адреса IPv4
- первый байт — длина имени, затем следует имя домена без завершающего нуля на конце
- 16 байт для адреса IPv6
- поле 6: номер порта, 2 байта
Ответ сервера:
- поле 1: номер версии SOCKS, 1 байт
- поле 2: код ответа, 1 байт:
- 0x00 = запрос предоставлен
- 0x01 = ошибка SOCKS-сервера
- 0x02 = соединение запрещено набором правил
- 0x03 = сеть недоступна
- 0x04 = хост недоступен
- 0x05 = отказ в соединении
- 0x06 = истечение TTL
- 0x07 = команда не поддерживается / ошибка протокола
- 0x08 = тип адреса не поддерживается
- поле 3: байт зарезервирован, должен быть 0x00
- поле 4: тип последующего адреса, 1 байт:
- 0x01 = адрес IPv4
- 0x03 = имя домена
- 0x04 = адрес IPv6
- поле 5: назначение адреса
- 4 байта для адреса IPv4
- первый байт — длина имени, затем следует имя домена без завершающего нуля на конце
- 16 байт для адреса IPv6
- поле 6: номер порта, 2 байта
Просмотров: 4990
|