Протоколы MS-CHAP и MS-CHAP v2
Протокол MS-CHAP (Microsoft Challenge Handshake Protocol) представляет собой реализацию протокола CHAP, предложенную компанией Microsoft. В отличие от CHAP, для хэширования паролей применяется алгоритм MD4. Существует две версии протокола MS-CHAP. Вторая версия протокола MS-CHAP (MS-CHAP v2) предлагает более эффективный механизм аутентификации (табл. 14.1).
В частности, реализован механизм взаимной аутентификации. Сервер удаленного доступа по окончании процедуры аутентификации клиента удаленного доступа предоставляет ему информацию о собственных полномочиях. Соединение не считается установленным до тех пор, пока клиент не удостоверится в подлинности сервера удаленного доступа.
Таблица 14.1. Сравнение протоколов MS-CHAP версий 1 и 2.
Проблемы 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 ключ шифрования основывается на пароле пользователя и произвольной строке запроса. Каждый раз, когда пользователь подключается с тем же самым паролем, используется другой ключ |
Используется единый ключ шифрования для данных, передаваемых в обоих направлениях соединения | Используются отдельные ключи шифрования, которые генерируются для передаваемых и получаемых данных |