MS-CHAP (Microsoft Challenge Handshake Authentication Protocol)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 01:37, 23 июня 2016.

MS-CHAP (англ. Microsoft Challenge Handshake Authentication Protocol) был создан Microsoft для аутентификации удаленных рабочих станций Windows. Там, где это возможно, MS-CHAP согласуется со стандартом CHAP.

Различия между MS-CHAP и стандартным CHAP:

  • MS-CHAP включен в LCP (вариант 3, протокол аутентификации).
  • Пакет MS-CHAP Response представлен в формате, обеспечивающем совместимость с Microsoft Windows NT 3.5, 3.51 и 4.0, и сетевыми продуктами Windows 95 . Формат MS-CHAP не требует хранение аутентификатором пароля в открытом или в обратимо зашифрованном виде.
  • MS-CHAP обеспечивает контролируемые аутентификатором механизмы попыток аутентификации и изменения пароля.
  • MS-CHAP определяет набор кодов неисправности, возвращаемых в поле Message пакета Failure.

Конфигурация LCP

Конфигурация LCP для MS-CHAP идентична таковой для стандарта CHAP, за исключением того, что поле Algorithm имеет значение 0x80, а не MD5 значение 0x05. Реализации PPP, которые не поддерживают MS-CHAP, но с правильной реализацией LCP Config-REJ, не будут иметь проблем с этой нестандартной опцией.

Пакет Запроса

Пакет Запроса MS-CHAP идентичен формату стандарта CHAP.

MS-CHAP аутентификаторы посылают поле Value Запроса длиной 8 октетов. Узлам нет необходимости дублировать алгоритм Microsoft для выбора 8-октетного Value, но стандартные рекомендации по случайности должны быть соблюдены.

Аутентификаторы Microsoft в настоящее время не предоставляют информацию в поле Name. Это может измениться в будущем.

Пакет ответа

Пакет MS-CHAP ответ идентичен в формате стандарту пакет CHAP Response. Тем не менее, поле Value отформатированно по-другому:

  • 24 октета: совместимый с LAN Manager ответ на запрос
  • 24 октета: совместимый с Windows NT ответ на запрос
  • 1 октет: флаг использования совместимости Windows NT

Совместимость с LAN Manager ответа на запрос заключается в функции кодирования пароля и полученного запроса как выхода функции LmChallengeResponse(). Пароли LAN Manager ограничены до 14 регистрозависимых OEM символов. Использование этой совместимости не рекомендуется.

Совместимость с Windows NT ответа на запрос представлено в функции кодирования пароля и полученного запроса в качестве выхода функции NTChallengeResponse(). Пароль Windows NT является строкой от 0 до (теоретически) 256, чувствительных к регистру Unicode-символов. Текущие версии Windows NT ограничивают пароли до 14 символов в основном из соображений совместимости; это может измениться в будущем.

Если флаг использования совместимости Windows NT равен 1, то это указывает на то, что ответ в форме Windows NT поддерживается и должен быть использован в предпочтении к ответу LAN Manager. Ответ LAN Manager по-прежнему будет использоваться, если учетная запись не имеет хэш пароля Windows NT, например, если пароль не был изменен, так как аккаунт был загружен из базы данных учетных записей LAN Manager 2.x . Если флаг равен 0, ответ Windows NT игнорируется и ответ LAN Manager является используемым. Поскольку использование аутентификации LAN Manager не рекомендуется, этот флаг всегда должен быть установлен (1) и LAN Manager поле ответа совместимости LAN Manager должно быть заполнено нулями.

Поле Name идентифицирует имя учетной записи пользователя. Доменное имя Windows NT может иметь префикс имени учетной записи пользователя (например, "BIGCO \ JohnDoe", где "BIGCO" является доменом Windows NT, содержащим учетную запись пользователя "JohnDoe"). Если домен не предусмотрен, обратный слеш следует также опустить, (например, "JohnDoe").

Пакет Success

Пакет Success идентичен формату в стандартном протоколе CHAP.

Пакет Failure

Пакет Failure идентичен формату в стандартном протоколе CHAP. Однако, в поле Message хранится форматированный текст, который, вопреки стандартным правилам CHAP, влияет на протокол. Формат поля Message:

"E=eeeeeeeeee R=r C=cccccccccccccccc V=vvvvvvvvvv"


eeeeeeeeee десятичный код ошибки (не обязательно должны быть 10 цифры), соответствующий одному из тех, которые перечислены ниже, хотя реализации должны корректно обрабатывать коды, которых нет в этом списке.

646 ERROR_RESTRICTED_LOGON_HOURS
647 ERROR_ACCT_DISABLED
648 ERROR_PASSWD_EXPIRED
649 ERROR_NO_DIALIN_PERMISSION
691 ERROR_AUTHENTICATION_FAILURE
709 ERROR_CHANGING_PASSWORD

Флаг "r" устанавливается в "1" если повтор попытки разрешен, и "0", если нет. Установка аутентификатором этого флага в "1" отключает короткие таймауты, ожидая от узла новых данных.

cccccccccccccccc - 16 шестнадцатеричных цифр, представляющих ASCII-представление нового значения запроса. Это поле необязательное. Если оно не отправляется, аутентификатор ожидает, что повторно отправленный ответ должен рассчитываться на основе предыдущего значения запроса, к которому добавляется десятичное число 23 в первый октет, т. е. сразу после поля Value-Size.

vvvvvvvvvv - десятичный код версии (не обязательно должны быть 10 цифры), указывающий на версию протокола MS-CHAP, поддерживаемого на сервере. В настоящее время это интересно только при выборе пакета изменения пароля. В случае, если в этом поле не должна быть выставлена 1, поле должно содержать значение больше либо равное 2, так как использование первой версии пакета изменения пароля крайне не рекомендуется.

Реализации должны принимать, но игнорировать дополнительный текст, если они не смогли его распознать.

MS-CHAP v.2

Семейство операционных систем Windows Server 2003 включает поддержку протокола Microsoft Challenge Handshake Authentication Protocol версии 2 (MS-CHAP v2), который лучше обеспечивает безопасность подключений удаленного доступа. MS-CHAP v2 устраняет некоторые недостатки MS-CHAP версии 1, как показано в следующей таблице

Проблема протокола MS-CHAP версии 1 Решение протокола MS-CHAP версии 2
Шифрование ответа LAN Manager, применяемое для обратной совместимости со старыми клиентами удаленного доступа Microsoft, криптографически уязвимо. MS-CHAP v2 больше не разрешает использовать шифрованные ответы LAN Manager.
Шифрование изменения пароля LAN Manager криптографически уязвимо. MS-CHAP v2 больше не разрешает использовать шифрованные изменения пароля LAN Manager.
Возможна только односторонняя проверка подлинности. Клиент удаленного доступа не может проверить, подключается ли он к серверу удаленного доступа своей организации или к маскирующемуся серверу. MS-CHAP v2 обеспечивает двустороннюю проверку подлинности, называемую также взаимной проверкой подлинности. Клиент удаленного доступа получает подтверждение, что сервер удаленного доступа, к которому он пытается подключиться, имеет доступ к паролю пользователя.
При использовании 40-битного шифрования ключ шифрования основан на пароле пользователя. Всякий раз, когда пользователь подключается с одним и тем же паролем, создается один и тот же ключ шифрования. В MS-CHAP v2 ключ шифрования всегда основан на пароле пользователя и произвольной строке запроса. Каждый раз, когда пользователь подключается с одним и тем же паролем, создаются разные ключи шифрования.
Для данных, пересылаемых по подключению в обоих направлениях, используется единый ключ шифрования. При использовании протокола MS-CHAP v2 создаются отдельные ключи шифрования для приема и передачи данных.

Ссылки