📜 MS-CHAP: история, уязвимости и современные альтернативы
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Это вторая статья из цикла об истории VPN-протоколов. Сегодня мы разберём MS-CHAP — протокол, который когда-то был стандартом для удалённого доступа в Windows, но превратился в одну из главных головных болей для специалистов по безопасности.
🤔 Вместо введения: что
такое MS-CHAP и зачем он нужен?
В прошлой статье мы говорили о рождении VPN и первых
протоколах вроде PPTP. Но любое VPN-соединение — это не просто «туннель».
Прежде чем начать передавать данные, сервер и клиент должны доказать
друг другу, что они те, за кого себя выдают. Этот процесс называется аутентификацией.
MS-CHAP (Microsoft Challenge Handshake
Authentication Protocol) — это протокол, который занимался именно этим. Он был создан компанией
Microsoft в 1997 году для аутентификации удалённых Windows-пользователей. По
сути, это была «фирменная» версия стандартного протокола CHAP, адаптированная
под нужды Windows-сетей.
Протокол просуществовал в двух версиях:
- MS-CHAPv1 (описан
в RFC 2433, октябрь 1998)
- MS-CHAPv2 (описан
в RFC 2759, январь 2000)
И хотя обе версии уже давно признаны небезопасными, они до
сих пор встречаются в старых VPN-подключениях, Wi-Fi сетях и корпоративных
системах. Поэтому знать о них полезно — хотя бы чтобы понимать, почему их стоит
избегать.
🧠 Как работает MS-CHAP?
(Объясняем на пальцах)
Чтобы понять MS-CHAP, нужно сначала разобраться с его
«родителем» — протоколом CHAP.
Что такое CHAP?
CHAP (Challenge Handshake Authentication Protocol) — это
протокол, который решает простую задачу: как доказать серверу, что ты
знаешь пароль, не отправляя сам пароль по сети.
Процесс выглядит так:
- Сервер
отправляет клиенту случайную строку — «вызов» (challenge).
- Клиент
берёт эту строку, смешивает её со своим паролем с помощью хеш-функции и
отправляет результат обратно.
- Сервер
делает то же самое со своей копией пароля и сравнивает результаты. Если
совпало — доступ разрешён.
Главное преимущество: пароль никогда не передаётся по
сети в открытом виде. Даже если злоумышленник перехватит «ответ», он не сможет
восстановить пароль (по крайней мере, в теории).
А что делает MS-CHAP?
MS-CHAP — это «доработанная» версия CHAP от Microsoft. Она
добавила три важные вещи:
- Совместимость
с Windows — формат ответов был адаптирован под Windows NT 3.5,
3.51, 4.0 и Windows 95.
- Механизм
смены пароля — если пароль пользователя истёк, протокол позволял
его сменить прямо во время аутентификации.
- Коды
ошибок — сервер мог отправлять понятные сообщения о причинах
отказа.
- Генерация
ключей шифрования — MS-CHAP использовался вместе с протоколом
MPPE для шифрования данных в PPTP-соединениях.
На практике MS-CHAP чаще всего применялся именно в
связке PPTP + MS-CHAP + MPPE — это была стандартная схема для
VPN-подключений в Windows 95/98/NT.
⚔️ MS-CHAPv1 vs MS-CHAPv2: в чём
разница?
MS-CHAPv2 был создан, потому что первая версия имела серьёзные проблемы. Вот ключевые отличия:
📋 MS-CHAPv1 vs MS-CHAPv2: сравнение протоколов
| Проблема MS-CHAPv1 | Решение в MS-CHAPv2 |
|---|---|
| Использовалось слабое кодирование LAN Manager (LM) для обратной совместимости | Поддержка LM-ответов полностью убрана |
| Только односторонняя аутентификация (клиент доказывал себя серверу) | Добавлена взаимная аутентификация — клиент тоже проверяет сервер |
| Ключ шифрования всегда зависел только от пароля | Ключ шифрования зависит от пароля + случайной строки (peer challenge) |
| Один ключ использовался для передачи и приёма данных | Генерируются разные ключи для передачи и приёма |
| Поле «LAN Manager compatible challenge response» всегда отправлялось | Это поле заменено на Peer-Challenge |
Таблица обновлена в рамках цикла статей об истории VPN-протоколов
Процесс выглядит так:
- Сервер
отправляет клиенту вызов (challenge) — случайную строку.
- Клиент
генерирует свой собственный peer challenge и отправляет
серверу ответ, который зависит от: пароля, вызова сервера, peer challenge
и идентификатора сессии.
- Сервер
проверяет ответ клиента и отправляет подтверждение, которое
клиент тоже проверяет.
- Если
обе проверки успешны — соединение установлено.
Звучит надёжно, правда? Но, как выяснилось, даже это не
спасло протокол.
💀 Почему MS-CHAP — это
плохо? (Уязвимости)
MS-CHAP (обе версии) имеет фундаментальные проблемы с
безопасностью. И это не просто «теоретические уязвимости» — их давно
эксплуатируют на практике.
1. Слабая криптография (MD4 и DES)
MS-CHAPv2 использует NT-hash пароля,
который представляет собой MD4-хеш. MD4 — это хеш-функция 1990
года, которая уже давно считается криптографически сломанной.
Дальше — хуже. При формировании ответа NT-hash разбивается
на три 7-байтовых блока, каждый из которых шифруется с помощью DES (алгоритм
с 56-битным ключом). DES был взломан ещё в 1990-х.
«MS-CHAP (v1 в RFC2433 и v2 в RFC2759) имеют серьёзные
недостатки в дизайне и не подходят для использования вне защищённого туннеля,
такого как PEAP, TEAP или TTLS»
2. Атака на MS-CHAPv2 за один день
В 2012 году исследователи Moxie Marlinspike и David Hulton
показали, что перехваченное MS-CHAPv2-рукопожатие можно взломать,
подобрав единственный 56-битный DES-ключ, независимо от сложности пароля.
На практике это означает: если злоумышленник перехватил ваш
MS-CHAPv2-трафик, он может восстановить ваш пароль за считанные часы с помощью
современного оборудования.
Для этого существуют готовые инструменты:
- Asleap —
инструмент для взлома MS-CHAPv2
- thc-pptp-bruter —
позволяет перебирать до 300 паролей в секунду
- ChapCrack —
инструмент от Moxie Marlinspike
3. Уязвимости в PEAP-MSCHAPv2 для Wi-Fi
MS-CHAPv2 широко используется в Wi-Fi-сетях как внутренний
протокол внутри PEAP (Protected EAP). И здесь тоже есть проблемы.
Если устройство неправильно настроено и не проверяет
сертификат RADIUS-сервера, злоумышленник может развернуть «злого
близнеца» (evil twin) — поддельную точку доступа, перехватить
MS-CHAPv2-рукопожатие и получить пароль пользователя.
«MS-CHAP был взломан ещё в 2004 году, как показано в
ASLEAP. Атака основана на уязвимости в дизайне протокола»
4. Проблемы с хранением паролей на сервере
Для работы MS-CHAPv2 сервер должен хранить NTLM-хеши паролей
пользователей. А NTLM-хеши — это, по сути, те же MD4-хеши, которые легко
поддаются атакам по словарю и радужным таблицам.
📉 Почему MS-CHAP до сих
пор существует?
Если протокол настолько плох, почему он ещё не умер?
- Инертность
корпоративных систем. Многие компании до сих пор используют старые
версии Windows и VPN-шлюзы, которые не поддерживают современные протоколы.
- Простота
настройки. MS-CHAPv2 легко включить — он есть по умолчанию во всех
версиях Windows.
- Совместимость.
Он работает практически везде: от Windows 95 до Windows 11.
- Непонимание
рисков. Многие администраторы просто не знают, насколько это опасно.
Microsoft начала отказываться от MS-CHAPv1 ещё в 2007 году,
исключив его из Windows Vista. MS-CHAPv2 жив до сих пор, но компания давно
рекомендует использовать более безопасные альтернативы.
✅ Что использовать вместо
MS-CHAP?
Если вы администрируете VPN или Wi-Fi — немедленно
отключите MS-CHAPv1 и MS-CHAPv2, где это возможно. Вот что можно
использовать вместо них:
- EAP-TLS —
сертификатная аутентификация, самый безопасный вариант
- EAP-TTLS или PEAP с
внутренним EAP-GTC или EAP-MSCHAPv2 только внутри защищённого
TLS-туннеля
- IKEv2/IPsec с
сертификатами
- WireGuard —
современный VPN-протокол, не использующий устаревшие методы аутентификации
«MS-CHAPv2 предлагает мало преимуществ по сравнению с PAP
и имеет множество недостатков... Есть одна ситуация, где MS-CHAP значительно
хуже PAP»
📚 Что мы узнали?
📋 MS-CHAPv1 и MS-CHAPv2: сравнительный анализ
| Версия | Когда появилась | Автор | Статус |
|---|---|---|---|
| MS-CHAPv1 | RFC 2433 (1998) | Microsoft | ❌ Устарел, взломан, не использовать |
| MS-CHAPv2 | RFC 2759 (2000) | Microsoft | ⚠️ Устарел, взломан, использовать только внутри защищённого туннеля |
Таблица обновлена в рамках цикла статей об истории VPN-протоколов
Главный вывод: MS-CHAP — это яркий пример того, как
технологии, которые когда-то казались прогрессивными, превращаются в угрозу
безопасности. Протокол был создан в конце 1990-х, когда требования к
криптографии были совсем другими. Сегодня он безнадёжно устарел и представляет
реальную опасность для пользователей.
Если вы встречаете MS-CHAP в своих настройках — это красный
флаг. Пора переходить на что-то более современное.
🔜 Что дальше?
В следующих статьях мы подробно разберём протоколы, которые
пришли на смену MS-CHAP:
- EAP (Extensible Authentication Protocol)
— гибкая система аутентификации
- PEAP и EAP-TLS —
безопасная аутентификация для Wi-Fi
- Современные
методы в WireGuard и IKEv2
Оставайтесь на связи! 🚀
📚 Источники
Материалы подготовлены на основе открытых источников:
- RFC 2433 — Microsoft PPP
CHAP Extensions (MS-CHAPv1)
- RFC 2759 — Microsoft PPP
CHAP Extensions, Version 2 (MS-CHAPv2)
- Википедия — MS-CHAP
- Microsoft
Learn — MS-CHAP v2
- SecureW2 — Understanding
MSCHAP Vulnerabilities
- IETF Datatracker — A Review of
RADIUS Security and Privacy
- Получить ссылку
- X
- Электронная почта
- Другие приложения
Популярные сообщения
🧬 ChaCha20 и Curve25519: Криптография под капотом WireGuard
Немного о том, зачем это нужно.
🔌 L2TP: протокол, который объединил лучшее от двух миров
⚡ ИИ-помощник (на OpenRouter)
Спросите про VPN, протоколы или настройку серверов.
Комментарии
Отправить комментарий