Протоколы 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 ключ шифрования основывается на пароле пользователя и произвольной строке запроса. Каждый раз, когда пользователь подключается с тем же самым паролем, используется другой ключ
|
Используется единый ключ шифрования для данных, передаваемых в обоих направлениях соединения
|
Используются отдельные ключи шифрования, которые генерируются для передаваемых и получаемых данных
|
|