世界を動かす技術を、日本語で。

エア・カナダの機内ネットワーク制限を回避する話

概要

  • カナダから香港へのAir Canada便での 機内WiFi制限突破 実験の記録
  • 無料テキスト通信 のみ許可されたWiFi環境下でのWebアクセス挑戦
  • DNS通信の抜け道 を利用したプロキシ接続の実現
  • 失敗と成功事例 を交えた技術的アプローチの紹介
  • ネットワーク制限回避の 実践的手法 とその限界の考察

機内WiFi制限突破チャレンジ

  • カナダから香港行きのAir Canada便で WiFiサービス を利用
  • 無料では テキストメッセージアプリ(WhatsApp, Snapchat, WeChat) のみ利用可能
  • Webブラウジングや動画視聴 は有料(30.75カナダドル~)
  • 長時間フライトで 無料範囲を拡張できないか を検討
  • WeChat経由でネットワーク専門のルームメイト と協力し、実験開始

アプローチ1:ドメイン偽装による突破

  • acwifi.com はアクセス可能、github.comは不可
  • /etc/hostsでDNSを書き換え、acwifi.comに自前サーバーのIPを割り当てる案を検証
  • pingによる接続テスト でIP自体が到達不可と判明
    • Cloudflare等の有名IPも同様にブロック
  • ICMPだけでなくTLS接続も不可 (curlでのSSLハンドシェイク失敗)
  • IPホワイトリスト方式 の可能性が高いと判断し、この方法は断念

アプローチ2:DNSポートの利用

  • DNS通信(UDP/53) は許可されていることをdigコマンドで確認
  • 任意のDNSサーバー (例:40.115.144.198)への問い合わせも成功
  • TCPベースのDNS通信 も許可されていることを確認
  • DNSポート(53番)でプロキシサーバーを公開 する作戦に切り替え
    • xrayを用いて VLESSプロトコルのプロキシ を設定
    • クライアント側でxrayを用い、 SOCKS5プロキシ経由でWebアクセス を試行
  • github.comへのcurlアクセスが成功 し、実際に制限突破を実現
  • DNSポートを利用したプロキシ が有効な抜け道であることを証明

究極の手法:DNSトンネル

  • ゲートウェイが DNSパケット内容まで検査 する場合、単純なポート偽装は無効化
  • 本物のDNSリクエスト(例:TXTレコード) にデータを埋め込む「DNSトンネル」が理論上有効
  • DNSトンネルクライアント が手元になかったため、今回は実践未確認
  • より厳重なネットワーク制限への 理論的アプローチ として紹介

まとめ

  • 約4時間かけて機内ネットワーク制限突破 を実現
  • DNSポートの緩さ を突いたプロキシ接続が有効であることを実証
  • 協力したネットワーク専門家の知識とサポート が成功の鍵
  • ネットワーク制限には さまざまな抜け道 が存在するものの、 さらに強固な制御 も理論上可能
  • 実験を通じて得られた知見 とネットワークの仕組みへの理解深化

注記 :本記事の内容は技術的検証を目的としたものであり、実際の利用規約や法律に違反する行為を推奨するものではありません。

Hackerたちの意見

ヨウ素は何年もこれをやってきたよ。 https://github.com/yarrick/iodine

ヨウ素は使ったことないけど、こっちの方がシンプルそうだね。ヨウ素は実際のDNSリクエストでリクエストをラップするんだ。でも今回はそれが必要なかった。ポート53は全くフィルタリングされてなかったから、ポート53でシンプルなプロキシがあれば十分だったんだ。

ダン・カミンスキーが2007年から2008年頃にこれを広めたんだ。もちろん、以前から存在していたけど、彼が最初の公共のDNSトンネル(ozyman)を作ったかもしれないね。彼はiodineや他の人たちに影響を与えて、かなり有名な人だった。ダンは2021年に亡くなった、安らかに。探してみると見つけるのが難しいよ。彼のブログはもうダメだし(彼は亡くなったから...)、多くの企業や人が彼の名前で話してトラフィックを増やそうとしていたから(ハイ、デュオセック...)、インターネットがどうやって歴史を忘れたり再発見したり書き換えたりするかがわかるよ。

そうそう、デルタのフライトでIodineを使って無料Wi-Fiを利用してたって言おうと思ってたんだ。

「このプロジェクト全体で、関連するすべての規制とサービス条件を厳守することを確認します。ただし、支払いを回避して意図されていない方法でサービスを利用した場合、ほぼ間違いなく“厳守”していないことになりますよね?」

うん、こういう投稿にはちょっと混乱するよね。法律を破った自慢みたいなもんだし。数ヶ月前には、子供がモンスターの社員研修サイトをハッキングして、内部のメディアを投稿でシェアしてた特にひどいのがあったんだ。どうして彼らが法執行機関と本当に面倒なトラブルに巻き込まれないのか理解できないよ。今調べたら、その投稿は削除されてた。たぶん、彼はトラブルに巻き込まれたんだろうね。 https://news.ycombinator.com/item?id=44997145

カナダから香港行きの飛行機に乗っていると仮定したら(適当な例だけど)、どこの国の法律が適用されるんだろう?飛行機が登録されている国?

反論:誰が気にするの?こういう無害なコンピュータ遊びで本当にトラブルになる人が出たら教えてよ。それまでは…誰も気にしないでしょ?

「唯一の欠点は、ネットワーク制限を突破してどんなウェブサイトにもアクセスできたものの、飛行機の帯域幅が極端に制限されていて、ウェブブラウジングがかなり苦痛だったことです。残念ながら、これが支払いの欠点でもあります。何度もインターネットにお金を払ったのに、使えないほどひどかったことがありました。まあ、正直に言うと、先日エアカナダで横断飛行したときはWi-Fiは問題なかったけど。」

これはおそらく、彼らが突破できなかったもう一つのセキュリティ層だね。チャットアプリが大量の帯域幅を消費しないように、通常は支払うまで接続が厳しく制限されるんだ。もしそうじゃなかったら、誰かがチャットアプリから映画をストリーミングできちゃうからね。

僕は、支払って遅くてほとんど使えない速度を我慢した不運な人だったよ。でも、それはStarlinkの時代の前の話だからね。WiFiにお金を払うなら、フライトがStarlinkに対応してるか確認する価値はあるよ。

空の上に消費者の権利は存在するのかな?本気の質問だよ!

Hacker Newsで議論の続きを見る