Русская Википедия:EAP

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

EAP[1] (Шаблон:Lang-en, Расширяемый Протокол Аутентификации) — фреймворк аутентификации, который часто используется в беспроводных сетях и соединениях точка-точка. Формат был впервые описан в RFC 3748 и обновлён в RFC 5247.

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

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

Схема протокола

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

Файл:EAP абстрактная схема.png
Общая абстрактная схема работы EAP

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

Файл:Структура пактов EAP.png
Структура пакетов 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 является фреймворком аутентификации, а не конкретным механизмом[2], он обеспечивает некоторые общие функции и согласование методов проверки подлинности (методы 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

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

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

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

EAP-TLS

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

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

Встроенная поддержка этого метода есть во всех операционных системах семейства 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 метод, не использующий асимметричное шифрование. Этот метод требует четырёх сообщений (минимально возможное количество) для взаимной аутентификации.

Примечания

Шаблон:Примечания