OpenSSL 1.1を使用してwpa_supplicantでMD5証明書を有効にする方法は?

OpenSSL 1.1を使用してwpa_supplicantでMD5証明書を有効にする方法は?

Debian 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を有効にする方法はありますかMD5wpa_requester

答え1

子孫のために、最終的にOpenSSLとwpa_supplicantのソースコードを読んで(部分的な)解決策を見つけました。

問題はOpenSSLが原因で発生します。基本的な安全コールバック、これはすべてのレベル(証明書署名およびトンネル暗号化スイート)でMD5を(合理的に)無効にします。クライアント証明書のこのチェックを無効にしたいと思います。これは私にセキュリティリスクをもたらさないからです(他のエンドポイントに興味があるはずです)。ただし、これは安全なコールバックを交換しないと実行できません。これはクリーンなソリューションではありません。

したがって、弱いクライアント証明書を使用する唯一の方法は、wpa_requesterセキュリティレベルをゼロに下げることです。ほとんどの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では、2つがサービスとして実行され、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インターフェイスの名前はどこにありますか?

関連情報