EAP

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

EAP (англ. Extensible Authentication Protocol, Расширяемый Протокол Аутентификации) — фреймворк аутентификации, который часто используется в беспроводных сетях и соединениях точка-точка. Формат был впервые описан в RFC 3748 и обновлен в RFC 5247.

EAP используется для выбора метода аутентификации, передачи ключей и обработки этих ключей подключаемыми модулями называемыми методами EAP. Существует множество методов EAP, как определенных вместе с самим EAP, так и выпущенных отдельными производителями. EAP не определяет канальный уровень, он только определяет формат сообщений. Каждый протокол использующий EAP имеет собственный протокол инкапсуляции сообщений EAP.

EAP довольно популярный формат, он используется в IEEE 802.11 (WiFi), около ста методов EAP из IEEE 802.1X были приняты в качестве официальных механизмов аутентификации в стандартах WPA и WPA2.

Схема протокола[править | править вики-текст]

В процессе аутентификации можно выделить три основных участника процесса:

Общая абстрактная схема работы EAP
  • Аутентификатор (англ. authenticator) — участник процесса требующий провести аутентификацию (WiFi точка доступа, свич и т. д.).
  • Узел или клиент (англ. peer) — участник процесса который будет аутентифицирован (компьютер, ноутбук, телефон и т. д.).
  • Сервер аутентификации (англ. authentication server) — участник процесса способный по некоторым данным от узла аутентифицировать его.

В некоторых случаях сервер аутентификации и аутентификатор могут быть одним устройством, например домашние устройства использующие метод EAP-PSK. В целом процесс аутентификации происходит следующим образом:

Структура пакетов EAP
  1. Аутентификатор отправляет EAP-запрос для начала аутентификации клиента. Запрос в поле Type содержит в себе информацию о том, какой метод будет использоваться (EAP-TLS, EAP-PSK и т. д.). Аутентификатор не обязательно шлёт этот запрос, например, если аутентификация на порту, к которому подключен клиент, не обязательна, в таком случае для начала процедуры аутентификации клиент должен послать пакет с полем Code, соответствующим типу Initiate.
  2. Клиент посылает аутентификатору EAP-ответ в случае правильного запроса от аутентификатора. Ответ содержит в себе поле Type, соответствующее полю Type в запросе.
  3. Аутентификатор посылает запрос серверу аутентификации, передавая информацию о том, какой метод аутентификации используется.
  4. Сервер аутентификации запрашивает у клиента необходимую информацию через аутентификатор, в этом момент аутентификатор фактически работает как прокси.
  5. Клиент отвечает серверу, передавая запрашиваемую информацию. Пункт 4 и 5 повторяются до тех пор, пока сервер аутентификации не примет решение о разрешении доступа, запрете или ошибке.
  6. Сервер аутентификации посылает аутентификатору пакет сообщающий о успехе или сбое аутентификации.
  7. Аутентификатор посылает клиенту EAP пакет с кодом соответствующим ответу сервера аутентификации (EAP-Success или EAP-Failure).

Сводная таблица кодов пакетов EAP:

Кол Название Описание
0 Undefined Не используется
1 Request Используется для начала процесса аутентификации аутентификатором, содержит в себе информацию о поддерживаемых методах EAP.
2 Response Используется для подтверждения начала аутентификации клиентом.
3 Success Используется для сообщения клиенту о успешной аутентификации.
4 Failure Используется для сообщения клиенту о провале аутентификации.
5 Initiate Используется клиентом чтобы «попросить» аутентификатор начать процесс аутентификации.

Методы[править | править вики-текст]

Поскольку EAP является фреймворком аутентификации, а не конкретным механизмом[1], он обеспечивает некоторые общие функции и согласование методов проверки подлинности (методы EAP). В настоящее время определенно около 40 различных методов. Обычно методы определяются в IETF, например: EAP-MD5, EAP-POTP, EAP-GTC, EAP-TLS, EAP-IKEv2, EAP-SIM, EAP-AKA и EAP-AKA'. Так же существуют методы и предложения конкретных поставщиков решений и производителей оборудования. Обычно используются современные методы способные работать в беспроводных сетях, к примеру: EAP-TLS, EAP-SIM, EAP-AKA, LEAP и EAP-TTLS. Требования к методам используемым в беспроводных сетях описаны в RFC 4017. Этот стандарт также описывает при каких условиях может быть использован метод управления ключами AAA, описанный в RFC 4962.

LEAP[править | править вики-текст]

Облегченный расширяемый протокол аутентификации (англ. Lightweight Extensible Authentication Protocol), метод разработанный компанией Cisco до ратификации IEEE стандарта безопасности 802.11i.[2] Cisco распространил протокол через CCX (Cisco Certified Extensions) как часть протокола 802.1X и динамического WEP из-за отсутствия отдельного промышленного стандарта в индустрии. В операционных системах семейства Windows отсутствует встроенная поддержка протокола LEAP[3], однако поддержка протокола широко распространена в сторонних программах-клиентах (чаще всего идущих в комплекте с беспроводным оборудованием). Поддержка LEAP в Windows может быть добавлена путём установки клиентского ПО компании Cisco, которое обеспечивает поддержку протоколов LEAP и EAP-FAST. Многие другие производители WLAN оборудования так же поддерживают протокол LEAP из-за его высокой распространённости.

LEAP использует модифицированную версию протокола MS-CHAP — слабо защищенного протокола аутентификации, информация о пользователе и пароле в котором легко компрометируется; в начале 2004 года Джошуа Райтом был написан эксплойт протокола LEAP названный ASLEAP.[4] Взлом основан на том, что во-первых, все элементы запроса и ответа, помимо хеша пароля, передаются в незашифрованном виде или легко рассчитываются на основе данных, которые отправляются по сети. Это означает, что злоумышленнику типа человек посередине получения хеша пароля будет достаточно, чтобы повторно авторизоваться. Во-вторых, создание ключей является потенциально слабым. Дополнение 5 байт нулями означает, что последний ключ имеет ключевое пространство 2^16. Наконец, один и тот же исходный текст шифруется с помощью двух ключей (при отправке хеша серверу и при ответе), что означает, что сложности 2^56 достаточно, чтобы взломать оба ключа. После того, как злоумышленник имеет все ключи, он получает хеш пароля, которого достаточно для повторной аутентификации (подробнее в MS-CHAP).

Cisco рекомендует заказчикам, которые не могут отказаться от использования LEAP, использовать сложные пароли, хотя сложные пароли трудно вводить, запоминать и контролировать соблюдение требований сложности. Последняя рекомендация Cisco заключается в том, чтобы использовать новые и более защищенные протоколы EAP, такие как EAP-FAST, PEAP или EAP-TLS.

EAP-TLS[править | править вики-текст]

Безопасность Транспортного Уровня (англ. Transport Layer Security), метод определен в RFC 5216, является открытым стандартом и использует протокол TLS. Метод аутентифицирует как клиента, так и сервер (то есть является методом взаимной аутентификации). Хорошо поддерживается производителями беспроводного оборудования. EAP-TLS был первым стандартом беспроводной версии протокола аутентификации LAN EAP.

EAP-TLS до сих пор считается одним из самых безопасных стандартов, при условии, что пользователь понимает риск использования ложных учётных данных, и поддерживается практически всеми производителями беспроводного оборудования и разработчиками сетевого ПО. До апреля 2005 года EAP-TLS был единственным методом поддержка которого была необходима для прохождения сертификации соответствия стандартам WPA или WPA2.[5]

Встроенная поддержка этого метода есть во всех операционных системах семейства Windows (начиная с Windows 2000 SP4), Linux и Mac OS X (с версии 10.3).

В отличии от многих других реализаций TLS, например в HTTPS, большинство реализаций EAP-TLS требует предустановленного сертификата X.509 у клиента, не давая возможности отключить требование, хотя стандарт не требует этого в обязательном порядке.[6][7] Это могло помешать распространению «открытых», но зашифрованных точек беспроводного доступа.[6][7] В августе 2012 года hostapd и wpa_supplicant была добавлена поддержка UNAUTH-TLS — собственного метода аутентификации EAP[8] и 25 февраля 2014 добавлена поддержка WFA-UNAUTH-TLS, метода аутентификации, аутентифицирующий только сервер.[9][10] Это позволит работать через EAP-TLS, так как же как через HTTPS, где беспроводная точка доступа даёт возможность свободного подключения (то есть не требует проверки подлинности клиентов), но при этом шифрует трафик (IEEE 802.11i-2004, то есть WPA2) и позволяет пройти аутентификации при необходимости. В стандартах также содержатся предложения по использованию IEEE 802.11u в точках доступа, чтобы сигнализировать о доступности метода EAP-TLS аутентифицирующего только сервер, используя стандартный протокол EAP-TLS IETF, а не стороннего метода EAP.[11]

Требование предустановленного сертификата на стороне клиента — одна из причин высокой защищенности метода EAP-TLS и пример «жертвования» удобства в пользу безопасности. Для взлома EAP-TLS недостаточно скомпрометировать пароль пользователя, для успешной атаки злоумышленнику так же потребуется украсть соответствующий пользователю сертификат клиента. Наилучшей безопасности можно добиться храня сертификаты клиентов в смарт-картах.[12]

EAP-TTLS[править | править вики-текст]

Tunneled Transport Layer Security (Безопасность Транспортного Уровня через Туннель), метод EAP, расширяющий возможности метода TLS. Он разработан компаниями Funk Software и Certicom и довольно хорошо поддерживается большинством платформ (Windows с версии 8, а Windows Mobile с версии 8.1[13][14]).

Клиент может (но не обязан) быть аутентифицирован сервером при помощи подписанного Центром Сертификации PKI-сертификатом. Необязательность аутентификации клиента сильно упрощает процедуру настройки, так как нет необходимости генерировать и устанавливать на каждый из них индивидуальный сертификат.

После того как сервер аутентифицирован клиентом при помощи сертификата подписанного Центром Сертификации и, опционально, клиент сервером, сервер может использовать получившееся защищённое соединение (туннель) для дальнейшей аутентификации клиента. Туннель позволяет использовать протоколы аутентификации рассчитанные на каналы защищенные от атаки MITM и от «прослушки». При использовании метода EAP-TTLS никакая информация используемая для аутентификации не передается в открытом виде, что ещё больше затрудняет взлом.

EAP-PSK[править | править вики-текст]

Pre-Shared Key (Заранее известный ключ), метод определённый в RFC 4764, использующий для взаимной аутентификации и обмена сессионным ключом заранее оговорённый ключ. Метод разработан для работы в незащищенных сетях, таких как IEEE 802.11, и в случае успешной аутентификации обеспечивается защищенное двустороннее соединение между клиентом и точкой доступа.

EAP-PSK задокументирован в экспериментальной RFC и обеспечивает легкий и расширяемый EAP метод не использующий асимметричное шифрование. Этот метод требует четыре сообщения (то есть минимально возможное количество) для взаимной аутентификации.

Примечания[править | править вики-текст]

  1. RFC 3748.
  2. George Ou Ultimate wireless security guide: An introduction to LEAP authentication // TechRepublic : Интернет-журнал. — 2007.
  3. FreeRADIUS Community EAP Overview.
  4. Dan Jones. Look Before You LEAP (October 1, 2003).
  5. Understanding the updated WPA and WPA2 standards. techrepublic.com.
  6. 1 2 Byrd, Christopher. "Open Secure Wireless (5 мая 2010).
  7. 1 2 The certificate_request message is included when the server desires the peer to authenticate itself via public key. While the EAP server SHOULD require peer authentication, this is not mandatory, since there are circumstances in which peer authentication will not be needed (e.g., emergency services, as described in [UNAUTH), or where the peer will authenticate via some other means.] (Март 2008).
  8. Add UNAUTH-TLS vendor specific EAP type.
  9. HS 2.0R2: Add WFA server-only EAP-TLS peer method.
  10. HS 2.0R2: Add WFA server-only EAP-TLS peer method.
  11. Byrd, Christopher. Open Secure Wireless 2.0 (1 November 2011).
  12. Rand Morimoto; Kenton Gardinier, Michael Noel and Joe Coca. Microsoft Exchange Server 2003 Unleashed. — 2003. — С. 244. — ISBN ISBN 978-0-672-32581-6.
  13. 802.1x / EAP TTLS support? - Windows Phone Central Forums.
  14. Enterprise Wi-Fi authentication (EAP).

Ссылки[править | править вики-текст]