strongSwan 5.9.10 がリリースされ、アップデートしたところ、クライアント証明書による認証が失敗するようになりました。 ここら辺の設定はどうもしっくりしていなかったのですが、私の設定が間違っていたのでしょうか? 何か見落としがあるのでしょうか?

切り分け

以下の切り分けにより、クライアント証明書による認証まわりの設定ミス、あるいは strongSwan 側のバグの可能性(現状は全く根拠なし)も視野に入れています。

  • 過去バージョンへダウングレードすると、正常に認証され、通信可能。
  • strongSwan 5.9.10 で、クライアント証明書による認証をやめ、パスワード認証に切り替えると、正常に認証され、通信可能。

クライアント証明書は strongSwan で作成していますが、よく言われている点について確認していますが、改善していません。

  • 証明書は RSA ではなく ECDSA にする
    → RSA2048から ECDSA384 に変更しましたが、変化がありません。過去バージョンでは、RSA2048 で問題なく認証できています。
  • (構成プロファイルで)「EAPを使用する」はチェックしない
    → チェックしないと、そもそもプロファイルをインストールする時にエラーが出てインストールが完了しません。「 ‘VPNサービス’ペイロードをインストールできませんでした。VPNサービスを作成できませんでした」と表示されます。
  • (サーバ側の設定で)proposals を指定する
    指定しましたが、変化なしです。パスワード認証では、デフォルトの設定で正常に通信可能です。

当面の対応

strongSwan 5.9.10 には、CVE-2023-26463 に対する修正が含まれるため、ダウングレードして運用を続けるのはやめた方がいいでしょう。セキュリティ的には弱くなりますが、パスワードによる認証に切り替えます。強力なパスワードを設定しておけば、大きな問題にはなりません(ダウングレードして使い続ける方が危険)。

現在、ちょっとお手上げの状態です。

2023-05-07 追記

strongSwan 側のバグで確定しました。

iOS connection failure since Strongswan 5.9.10

Yes, there is regression in the eap-tls plugin. You can find a fix in the eap-tls-fix branch.

バージョン 5.9.11で 修正予定と見られます(5.9.11dr3 で取り込み済み)。パッチ当ててもいいのですが、当面はパスワード認証で逃げられるので、リリースを待つことにします。