8

Насколько я понимаю, точки беспроводного доступа, использующие WPA-Enterprise (т. Е. WPA плюс 802.1X), могут отправлять сертификат открытого ключа клиенту во время установки соединения. Клиент может проверить этот сертификат, чтобы убедиться, что он не подключается к мошеннической точке доступа (аналогично проверке сертификата в HTTPS).

Вопросы:

  • Я правильно понял?
  • Если да, есть ли способ загрузить сертификат AP? В идеале мне бы хотелось, чтобы решение работало под Linux.

Я хотел бы загрузить самозаверяющий сертификат, чтобы использовать его для проверки последующих попыток подключения. Это было бы проще, чем запрашивать файл у оператора AP.

1 ответ1

8

Да, в наиболее распространенных конфигурациях WPA-Enterprise используется либо PEAP, либо TTLS, обе из которых реализуют TLS через EAP через 802.1X.

Обычно сертификат уже опубликован где-то сетевыми операторами именно для этой цели. Это не то, что пользователь должен попросить .

К сожалению, wpa_supplicant не имеет возможности сбрасывать сертификаты даже в режиме отладки. (Я обновлю это, если найду лучший способ.) Тем не менее, вы все равно можете отслеживать фактический процесс аутентификации EAPOL. Сначала установите Wireshark.

При отключенном подключите интерфейс вручную и запустите на нем захват:

$ sudo ip link set wlan0 up
$ wireshark -ki wlan0 &

Запустите wpa_supplicant, и вскоре вы увидите рукопожатие TLS:

Сервер отправит свои сертификаты сразу после ServerHello. Выберите первый такой пакет, затем покопайтесь в:

802.1X
└─Extensible Authentication Protocol
  └─Secure Sockets Layer
    └─Handshake Protocol: Certificatte
      └─Certificates

Щелкните правой кнопкой мыши первый экземпляр «Сертификат (материал)» и выберите "Экспортировать выбранные байты пакета". Wireshark сохранит его в виде файла в двоичном формате DER. Повторите это для всех других сертификатов. Самый верхний (сервер RADIUS) содержит информацию, которую вы можете настроить в altsubject_match ; последний (корневой CA) должен быть передан wpa_supplicant как ca_cert .

Теперь у вас есть несколько *.crt или *.der в двоичном формате DER. Преобразовать их в PEM "текстовый" формат:

openssl x509 -inform DER < mycert.der > mycert.pem

(Если ваш wpa_supplicant использует OpenSSL в качестве обработчика TLS, вы должны дать ему сертификат "корневого ЦС"; предоставление ему сертификата сервера не будет работать.

Обратите внимание, что также возможно, что последний сертификат, увиденный в Wireshark, не будет корневым ЦС, а будет выдан только одним из корневых ЦС в каталоге /etc/ssl/certs ... Если это так, не забудьте также установить domain_suffix_match - в противном случае использование общедоступных ЦС будет небезопасным (к сожалению, 802.1X не знает, какое "имя хоста" проверять, как, например, HTTPS).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .