web-dev-qa-db-ja.com

EAP-TLSを使用するiwdが「<pem>のロードに失敗しました」で失敗する

iwdを使用してEAP-TLSアクセスポイントに接続したいのですが、クライアントキーを開けないようです。

# iwctl
[iwd]# station wlan0 connect foo
Not configured

iwdさんのコメント:

src/network.c:network_connect() 
src/network.c:network_connect_8021x() 
Failed to load /var/lib/wireless/skybert.pem

私のカーネルは最新の安定版で、CONFIG_PKCS8_PRIVATE_KEY_PARSERを有効にしています:

# uname -r
5.2.1
# lsmod | grep pkcs8_key_parser
pkcs8_key_parser       16384  0

iwd

# /usr/libexec/iwd --version
0.18
# export IWD_TLS_DEBUG=1
# /usr/libexec/iwd -d
[..]
src/network.c:network_connect() 
src/network.c:network_connect_8021x() 
Failed to load /var/lib/wireless/skybert.pem

/var/lib/iwd/foo.8021x

[Security]
EAP-Method=TLS
EAP-TLS-ClientCert=/var/lib/wirelss/skybert.pem
EAP-TLS-ClientKey=/var/lib/wireless/skybert.des3.key 
EAP-TLS-ClientKeyPassphrase=youwish
EAP-Identity=skybert

対応する機能するwpa_supplicantブロックは次のとおりです。

network={
   ssid="foo"
   key_mgmt=WPA-EAP
   proto=WPA2
   eap=TLS
   identity="skybert"
   client_cert="/var/lib/wireless/skybert.pem"
   private_key="/var/lib/wireless/skybert.des3.key"
   private_key_passwd="youwish"
}

OS

❯ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 10 (buster)
Release:        10
Codename:       buster

(しようとする)ソースを読む

私の知る限りでは、証明書を読み込めないのはell/ell/pem.ciwd/src/eap-tls-common.cから呼び出されたもの)ですが、これは私の知る限りです。パスが存在する場合も存在しない場合も、エラーメッセージは同じです。

どんな助けでも大歓迎です。

5
skybert

ファイルから pem.c 、321行目


C言語についての私の限られた理解から、コメントから推測することしかできません。

/**
 * l_pem_load_private_key
 * @filename: path string to the PEM file to load
 * @passphrase: private key encryption passphrase or NULL for unencrypted
 * @encrypted: receives indication whether the file was encrypted if non-NULL
 *
 * Load the PEM encoded RSA Private Key file at @filename.  If it is an
 * encrypted private key and @passphrase was non-NULL, the file is
 * decrypted.  If it's unencrypted @passphrase is ignored.  @encrypted
 * stores information of whether the file was encrypted, both in a
 * success case and on error when NULL is returned.  This can be used to
 * check if a passphrase is required without prior information.
 *
 * Returns: An l_key object to be freed with an l_key_free* function,
 * or NULL.
 **/

RSA抜粋

PEMエンコードされたRSA秘密鍵ファイルをロードします。


それで、3DESはもうありません(?)

NIST 2017から判断すると トリプルDESは2017年にNISTで非推奨になりました 、それが原因である可能性があります。

1