Как я могу загрузить сертификат беспроводной точки доступа с использованием 802.1X?


11

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

Вопросов:

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

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


Я не знаю инструмента, специально предназначенного для загрузки и сохранения сертификата, но он встречается в открытом виде, так что вы можете захватить его с помощью Wireshark или tcpdump. Кажется, я помню, как видел данные сертификатов в журналах отладки / подробностей wpa_supplicant, так что вы можете посмотреть и на это. Любой из этих подходов может потребовать небольшого количества данных, чтобы получить их из формы pcap / log в правильный файл X.509 .cer.
Спифф

Ответы:


11

Да, в наиболее распространенных конфигурациях 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).


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

Да, это действительно сработало, я скачал EAP Echange с, tpcpdumpно работал как шарм. Забавно, но в моем потоке был только один сервер Hello, Certificate, ... entry
mTorres

В моем примере сообщение TLS фрагментировано по нескольким пакетам EAP, потому что оно слишком большое (особенно если оно отправляет несколько больших сертификатов RSA). Тем не менее, это всегда всего один TLS ServerHello.
user1686

Пожалуйста, потерпите меня, если я говорю что-то неправильно. Необходимость такого действия заключается в том, чтобы загрузить сертификат и применить его на устройствах, которые не позволяют загружать и принимать сертификат при первом подключении.
Мауро
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.