Результаты eapol_test отличаются между Debian и Windows.

Вопрос или проблема

Для поиска и устранения неисправностей в связи с ошибкой в коммуникации между компьютерами Windows и FreeRadius 3.2.7.1, здесь полная история, я использую кли eapol_test для проверки EAP-TLS на FreeRadius. Используемые сертификаты в моем контексте предоставлены локальной системой PKI Windows.

Используемая команда

eapol_test -c supplicant.conf -a free-radius-IP -s mysecret

Содержимое supplicant.conf:

ap_scan=0
network={
    eap=TLS
    eapol_flags=0
    key_mgmt=IEEE8021X
    identity="[email protected]"
    client_cert="mypersonnalcert.pem"
    private_key="mypersonnalkey.pem"
    ca_cert="myrootCA.pem"
    phase1="tls_disable_tlsv1_3=0"
}

С точки зрения клиента Linux все в порядке, запрос принят FreeRadius, что завершается успешным взаимодействием. Вот последние строки журнала:


RADIUS packet matching with station
MS-MPPE-Send-Key (sign) - hexdump(len=32): 5c 8e 07 02 b6 94 80 2d 61 00 14 3d 97 10 54 e9 c6 a5 ff 60 f4 5c 9f d3 ef 7d 1b a5 0e 5b 97 44
MS-MPPE-Recv-Key (crypt) - hexdump(len=32): 15 ca 41 c6 3a 06 f5 ad 44 a7 e8 9e 10 75 08 20 41 1e 58 33 6b 96 94 37 a6 10 c2 1e 57 38 f6 c1
decapsulated EAP packet (code=3 id=167 len=4) from RADIUS server: EAP Success
EAPOL: Received EAP-Packet frame
EAPOL: SUPP_BE entering state REQUEST
EAPOL: getSuppRsp
EAP: EAP entering state RECEIVED
EAP: Received EAP-Success
EAP: Status notification: completion (param=success)
EAP: EAP entering state SUCCESS
CTRL-EVENT-EAP-SUCCESS EAP authentication completed successfully
EAPOL: IEEE 802.1X for plaintext connection; no EAPOL-Key frames required
WPA: EAPOL processing complete
Cancelling authentication timeout
State: DISCONNECTED -> COMPLETED
EAPOL: SUPP_PAE entering state AUTHENTICATED
EAPOL: SUPP_BE entering state RECEIVE
EAPOL: SUPP_BE entering state SUCCESS
EAPOL: SUPP_BE entering state IDLE
eapol_sm_cb: result=1
EAPOL: Successfully fetched key (len=32)
PMK from EAPOL - hexdump(len=32): 15 ca 41 c6 3a 06 f5 ad 44 a7 e8 9e 10 75 08 20 41 1e 58 33 6b 96 94 37 a6 10 c2 1e 57 38 f6 c1
No EAP-Key-Name received from server
WPA: Clear old PMK and PTK
EAP: deinitialize previously used EAP method (13, TLS) at EAP deinit
ENGINE: engine deinit
MPPE keys OK: 1  mismatch: 0
SUCCESS

С точки зрения клиента Windows, используя ту же команду с тем же файлом, происходит цикл Accept-Request / Accept-Challenge, который, к сожалению, заканчивается НЕУДАЧЕЙ клиента eapol_test.

Согласно последним строкам журналов ниже, говорится, что он не может найти конечный тег сертификата PEM (даже если в файле есть этот тег).

...........
TLSv1: Added certificate: C=FR, ST=XXX, L=XXXX, O=XXXX, OU=XX, CN=XXX
TLSv1: Could not find PEM certificate end tag (-----END CERTIFICATE-----)
TLS: Failed to configure client certificate
TLS: Failed to set TLS connection parameters
TLSv1: Selected cipher suite: 0x0000
TLSv1: Record Layer - New write cipher suite 0x0000
TLSv1: Record Layer - New read cipher suite 0x0000
EAP-TLS: Failed to initialize SSL.
EAP-TLS: Requesting private key passphrase
EAPOL: EAP parameter needed
CTRL-REQ-PASSPHRASE-0:Private key passphrase needed for SSID
EAP: Failed to initialize EAP method: vendor 0 method 13 (TLS)
EAP: Pending PIN/passphrase request - skip Nak
EAP: EAP entering state SEND_RESPONSE
EAP: No eapRespData available
EAP: EAP entering state IDLE
EAPOL: startWhen --> 0
EAPOL test timed out
EAPOL: EAP key not available
EAPOL: EAP Session-Id not available
WPA: Clear old PMK and PTK
MPPE keys OK: 0  mismatch: 1
FAILURE

У меня есть сомнения, работает ли eapol_test одинаково в Linux и Windows?
Также кажется, что поведение Windows с EAP-TLS довольно странное. В моем исходном посте я описываю, что существует цикл Access-Request/Access-Challenge, который почти никогда не заканчивается.
Неважно, настроена ли беспроводная или проводная политика 802.1X, поведение одинаковое.

Есть ли идеи или советы, как заставить EAP-TLS работать с Windows и FreeRADIUS?

Ответ или решение

Для решения проблемы, связанной с различием в результатах eapol_test между системами Debian и Windows, необходимо детально рассмотреть каждый компонент, участвующий в процессе аутентификации по протоколу EAP-TLS, и выяснить, в чём заключается основная разница в реализации этого процесса на разных платформах. Рассмотрим все аспекты этой проблемы, начиная с теоретического обоснования протоколов и заканчивая практическими решениями, которые могут быть полезны.

Теория

EAP-TLS (Extensible Authentication Protocol – Transport Layer Security) — это протокол аутентификации, который используется в сетях для предоставления защищённой передачи данных по протоколу TLS. Он особенно популярен в корпоративных сетях, где требуется высокая безопасность при подключении пользователей к сетевым ресурсам. EAP-TLS работает на основе сертификатов X.509, которые используются для взаимной аутентификации пользователя и сервера.

На Linux и Windows реализация и использование EAP-TLS может значительно различаться из-за различий в ОС, сопровождении библиотек SSL/TLS и обработки сертификатов. В Linux, чаще всего, используется OpenSSL, в то время как Windows может использовать собственные криптографические провайдеры, такие как SChannel.

Также стоит отметить, что конфигурационные файлы и управление сертификатами значительно различаются. Форматы файлов, такие как PEM, и их трактовка тоже могут варьироваться, что приводит к проблемам совместимости.

Пример

В представленном случае, eapol_test на Linux успешно проходит аутентификацию, в то время как на Windows возникают проблемы, связанные с обработкой сертификатов. Лог Windows клиента указывает на ошибку в нахождении окончания PEM сертификата, обозначенного как -----END CERTIFICATE-----. Это может говорить о проблеме с форматом сертификата или его обработкой на Windows.

Дополнительно, в логе Windows указывается на необходимость ввода пароля для закрытого ключа, что также может свидетельствовать о неправильно сконфигурированной TLS-сессии или проблемах с соответствием приватного ключа и сертификата.

Применение

Вот несколько шагов, которые могут помочь в решении проблемы:

  1. Проверка формата сертификатов и ключей: Убедитесь, что используемые сертификаты и ключи соответствуют формату PEM и содержат все необходимые обозначения (например, -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----). Попробуйте открыть файлы в текстовом редакторе, чтобы убедиться в их корректности.

  2. Сравнение библиотек: Проверьте, какая библиотека используется для SSL/TLS на Windows и поддерживает ли она все нужные вам функции. Возможно, потребуется установить дополнительные библиотеки или компоненты, если dапол_test на Windows использует их для работы с TLS.

  3. Конфигурация клиента: Перепроверьте конфигурационный файл supplicant.conf. Несмотря на то, что он аналогичен в обеих системах, несовпадение в декларации параметров может привести к отказу в работе на Windows. Например, попробуйте упростить конфигурацию, уделив особое внимание полям сертификатов и ключей.

  4. Дебаггинг и логирование: Увеличьте уровень логирования для получения более детализированного вывода о том, где именно происходит сбой. Это возможно сделать, изменив конфигурацию eapol_test для генерации расширенных логов.

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

  6. Проверка интерфейсов: Проверьте, идентичен ли способ подключения (проводное или беспроводное) и его настройки.

  7. Поддержка формата файлов: Попробуйте конвертировать сертификаты в другой поддерживаемый формат, если проблема может быть связана с конкретной реализацией поддержки файлов в формате PEM на Windows.

Следуя этим шагам, вы скорее всего сможете либо выявить источник проблемы, либо обойти её. Важно помнить, что успешность дебаггинга сильно зависит от доступа к детальной информации о работе системы и возможностей её изменения. Если проблема не будет решена, следует обратиться к документации Microsoft по работе с EAP-TLS или на специализированные форумы для получения более конкретных советов и решений.

Оцените материал
Добавить комментарий

Капча загружается...