OpenSSL 1.1을 사용하여 wpa_supplicant에서 MD5 인증서를 활성화하는 방법은 무엇입니까?

OpenSSL 1.1을 사용하여 wpa_supplicant에서 MD5 인증서를 활성화하는 방법은 무엇입니까?

데비안 10으로 업그레이드한 이후로 연결할 수 없습니다교육 에미넴. 내 고용주는 해시 함수를 EAP-TLS사용하여 MD5서명된 클라이언트 인증서를 사용하기로 결정한 것으로 나타났습니다 .

온라인에서 찾은 바에 따르면 MD5OpenSSL 버전 1.1에서는 서명 인증서가 비활성화되어 있습니다.wpa_requester로그는 다음을 확인하는 것 같습니다.

wpa_supplicant[718]: EAP: EAP entering state RECEIVED
wpa_supplicant[718]: EAP: Received EAP-Request id=3 method=13 vendor=0 vendorMethod=0
wpa_supplicant[718]: EAP: EAP entering state GET_METHOD
wpa_supplicant[718]: wlp4s0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=13
wpa_supplicant[718]: EAP: Status notification: accept proposed method (param=TLS)
wpa_supplicant[718]: EAP: Initialize selected EAP method: vendor 0 method 13 (TLS)
wpa_supplicant[718]: TLS: using phase1 config options
wpa_supplicant[718]: TLS: Trusted root certificate(s) loaded
wpa_supplicant[718]: OpenSSL: tls_connection_client_cert - SSL_use_certificate_file failed error:140C618E:SSL routines:SSL_use_certificate:ca md too weak
wpa_supplicant[718]: TLS: Failed to set TLS connection parameters
wpa_supplicant[718]: ENGINE: engine deinit
wpa_supplicant[718]: EAP-TLS: Failed to initialize SSL.
wpa_supplicant[718]: wlp4s0: EAP: Failed to initialize EAP method: vendor 0 method 13 (TLS)

OpenSSL 1.1을 활성화하는 방법이 있습니까 MD5?wpa_requester?

답변1

후손을 위해 결국 OpenSSL과 wpa_supplicant의 소스 코드를 읽고 (부분적인) 해결책을 찾았습니다.

문제는 OpenSSL로 인해 발생합니다.기본 안전 콜백, 이는 모든 수준(인증서 서명 및 터널 암호화 제품군)에서 MD5를 (합리적으로) 비활성화합니다. 클라이언트 인증서에 대한 이 검사를 비활성화하고 싶습니다. 이는 나에게 보안 위험을 초래하지 않기 때문입니다(다른 엔드포인트에 관심을 가져야 함). 그러나 이는 안전한 콜백을 교체하지 않고서는 수행할 수 없으며 이는 깨끗한 솔루션이 아닙니다.

따라서 약한 클라이언트 인증서를 사용하는 유일한 방법은wpa_requester보안 수준을 0으로 낮추는 것입니다. 대부분의 Google 검색에서는“ca MD가 너무 약해요”마지막으로 기본값을 수정하는 것이 좋습니다.OpenSSL구성에는 다음이 포함됩니다.

openssl_conf = <section_default_conf>

[<section_default_conf>]
ssl_conf = <section_ssl_conf>

[<section_ssl_conf>]
system_default = <section_system_default>

[<section_system_default>]
MinProtocol = TLSv1
CipherString = DEFAULT@SECLEVEL=0

여기서 <section_default_conf>, <section_ssl_conf><section_system_default>는 임의의 이름이며 다음에는 적용되지 않습니다.wpa_requester, 이는 기본 구성을 재정의합니다.

보안 수준을 낮추려면wpa_requester나는 그에게 다음을 포함하는 구성 파일( /etc/wpa_supplicant/wpa_supplicant.conf)을 제공해야 합니다.

openssl_ciphers=DEFAULT@SECLEVEL=0

다음 경우에만 이 설정을 사용하십시오.wpa_requester인터페이스 매개변수( )를 사용하여 -i <interface>호출됩니다 . 대부분의 사용자와 마찬가지로 저는 wpa_supplicant를 직접 사용하지 않고 이를 수행하기 위해 NetworkManager를 사용합니다. Debian에서는 두 가지가 서비스로 실행되고 DBus(또는 Unix 소켓)를 통해 통신합니다.

~부터네트워크 관리자openssl_ciphers매개변수를 전달할 수 없습니다 .wpa_requesterwpa_supplicant.servicesystemctl edit --full wpa_supplicant.service, 이는 exec 명령이 다음에서 나오도록 모든 WiFi 연결을 수정(전달)하여 수행해야 합니다 .

ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

내용은 다음과 같습니다.

ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

wlan0(고유한) WiFi 인터페이스의 이름은 어디에 있습니까?

관련 정보