スマホ(Android7.0)で家のWi-Fiに接続しようとしたら自動接続が行われず、その後インターネット側に出る前に「captive.apple.com」へ一瞬だけ自動接続しに行く時がある。
↓
最初、この挙動はルータの仕様なのかスマホの仕様なのかアプリの仕様なのか分からなかった。
調べるために、試しにパソコンのWEBブラウザでcaptive.apple.comやcaptive.apple.com/generate_204へアクセスしてみた。Successと表示された。
そしてGoogle Chrome のプライバシー ホワイトペーパーにはcaptive.apple.com/generate_204ではなく、www.gstatic.com/generate_204へリクエストを送信するという方式の「キャプティブポータル検出」方法が載っていた。
Chrome では SSL 接続のタイムアウト、証明書エラー、キャプティブ ポータル(ホテルの Wi-Fi ネットワークなど)が原因で発生するようなその他のネットワークに関する問題を検出すると、Cookie のないリクエストを http://www.gstatic.com/generate_204 に送信し、レスポンス コードを確認します。そのリクエストがリダイレクトされると、Chrome ではリダイレクト先をログイン ページと想定し、新しいタブで開きます。キャプティブ ポータルの検出ページに送信されたリクエストは記録されません。
なので家のWi-Fiに接続後、一時的に問題が有った場合には、「captive.apple.comへの接続確認(キャプティブポータル検出)」が実施されるということなんかな。
逆に家のWi-Fiに接続後、特に問題無い場合には、「captive.apple.comへの接続確認(キャプティブポータル検出)」画面は表示されない(実施されない)ということかな。
とりあえず家のルータを再起動してみた。
公衆Wi-Fi等でよくある、特定のWEB画面を強制的に表示する仕組みのことです。
観光地のWi-Fiスポットなどに接続した際に、認証したり利用規約に同意をしたりする、以下のようなWEB画面。
観光地のWi-Fiスポットに繋いだ時に表示されました。
Cisco WLCがトラフィックをインターセプトしてWEB認証画面を出す流れ。
参照サイト Cisco ワイヤレス LAN コントローラ(WLC)の Web 認証のトラブルシューティング
※WLCの設定方法は、Cisco WLCの設定方法ページに少し記載しました。
そして「キャプティブポータル検出」とは先述のホワイトペーパーの通り、特定のURLにリクエストを送信し、それが(キャプティブポータル設定している機器によって)リダイレクトされると、Chrome ではリダイレクト先をログインページと想定し新しいタブで開くということやね。
そして、StackExchangeやappleの英語Q&Aサイトを見てみると、(PCのクロームの右クリックメニューの「日本語に翻訳」で読みました。)
How do I deactivate the captive.apple.com feature?
captive.apple.comへアクセスしてSuccessが返ってくれば(=インターネットにアクセス可と認識すれば)、「キャプティブポータルでは無い無線LAN」という判定をしてるんやね。
google.comとかのgoogle関連のURLじゃなくて、androidスマホでもapple.comへアクセスしに行く(apple.comの資源/サーバを利用する)のが意外だと感じた。
そしてキャプティブポータルだと判定した後はリダイレクト先を新しいタブで開くのは分かったけど、Androidやクロームはさらに警告画面の表示やシークレットモード的な安全な通信に切り替えてくれるんかな?
そうやとしたらこの機能(キャプティブポータル検出)自体は有効のままが良いかな。
キャプティブポータルは便利さの反面やっぱり「インターセプト」(横取り/傍受)やもんね。
そこのリスクが増大する可能性を見据えたAndroidの対策なんやと推測したけど、キャプティブポータルだと判定した後に安全が強化されるかどうかは分からなかった。
安全面は強化されずに、単に新しいタブで開くだけなんかな、わざわざWEBブラウザを開いてどこかのサイトへアクセスしなくても自動でWEB画面強制移動を終えてくれるという単なる簡略化のためだけの・・・。
まぁ普通にスマホで試せば分かる範囲かもやけど・・・。