hgot07 Hotspot Blog

主に無線LANや認証連携などの技術についてまとめるブログです。ネコは見る専。

Android 11からは無線LANのサーバ証明書の検証を無効にできない / 対策は?

Android 11の2020年12月のアップデートより、802.1xを使う無線LANの設定で、CA証明書を「検証しない」設定ができなくなりました。eduroam方面から悲鳴が聞こえてきそうです。状況と対策を説明します。

通称1X認証 (Passpointでも使用) では、セキュリティ確保のために、サーバ証明書の検証を有効にすることが強く推奨されていました。この件については、以前の記事に書きました。

hgot07.hatenablog.com

サーバ証明書の検証を行わなかったとしても、PEAPなどではMSCHAPv2のチャレンジ・レスポンス方式によって、"そこそこの"セキュリティはありました。そこに甘んじるのは止めようということです。

 

状況

まずは、事前に出た情報から。

www.reddit.com

www.securew2.com

eduroam方面では、Jiscからもアドバイザリが出ています。

community.ja.net

こんなこともあろうかとPixel 3を入手しておいたので、Android 11をアップデートしてみます。まずはアップデート前のビルドRP1Aでスクリーンショットを確保。

Android 11 RP1A

Android 11 RP1A

「検証しない」の選択肢がありますね。

では、アップデート後のビルドRQ1Aの様子を。

Android 11 RQ1A

Android 11 RQ1A

おうふ……、選択肢が無くなっています。これではRADIUSサーバを立てた初心者がおおいに困りそうです。

(個人的には、いくらセキュリティ向上のためとはいえ、試験&トラブルシューティングできる選択肢まで潰してしまうのは、やりすぎな気がしています。最近のGoogleさんは加減を知らないような)

 

利用者側の対応

無線LANサービスの利用者としては、サービス提供者の指示通りに設定するしかありません。無線LANのプロファイルの設定方法は様々ですが、概ね以下の方法があるでしょう。

  • サービス提供者のウェブサイトなどからダウンロードしたプロファイルを用いて自動設定。(eduroam CATやPasspoint、OpenRoamingなど)
  • SSIDを手動選択して、ID/パスワードを手入力。

前者では、検証に必要なCA証明書の情報が自動的に設定され、必要に応じてCA証明書の安全なダウンロードまで実行されます。利用者が注意すべきところは、プロファイルをダウンロードするサイトの正しさだけです。

後者では、これまで「検証しない」を選択できていたところで、いずれかのCA証明書を選択し、ドメイン名を入力する必要があります。端末に組み込まれていないCA証明書が必要な場合は、サービス提供者から何らかの安全な方法でCA証明書を入手して、端末にインストールする必要があります。面倒ですね……。

というわけで、eduroamではeduroam CAT (Configuration Assistant Tool, 🐈) の利用が推奨されています。

 

事業者側の対応

認証に使うRADIUSサーバ(IdP)に、正規のサーバ証明書を導入する必要があります。正規のといっても、広く利用されている認証局(CA)から取得した証明書ばかりではなく、事業者の自己署名によるCA証明書でもよくて、要するに、RADIUSサーバに付属するサンプル証明書などではダメということです。期限切れはもちろんアウトです。

eduroam JPならば、UPKIの証明書も利用できて、多くの端末で「システム証明書を使用」を選択するだけで済むでしょう。利用者には、ドメイン名としてSANを通知する必要があります

注: 公的なCAの証明書を用いる場合、サーバのEAP-TLSの設定には十分な注意が必要です (FreeRADIUSの説明を参照)。EAP-TLSを使わないなら、無効にしておく必要があります。

eduroamの場合は、eduroam CATの利用が推奨されています。

公衆無線LANや社内無線LANでは、プロファイルを利用した自動設定の仕組みを用意するのが好ましいでしょう。

(LEの証明書も使えるはず……ボソ)

 

[2021/1/5追記] 新記事です↓

www.xda-developers.com

 

おわり