
検証結果:高木浩光氏がご立腹の「WiFiシェア」、暗号化してるはずのWi-Fiパスワードを平文で保存してた
日本のクラウドファウンディングサービス「Makuake」で160万円もの資金を調達した、『WiFiシェア』が9月18日にiOS/Androidアプリをリリースしてサービスを開始しました。
余らせている通信回線(通信量)を他者に売ったり買ったりすることで、余っているときはシェアをする、足りないときはシェアされるという形で通信の販売自由化を目指しているそうです。

具体的にはシェアしたい場合は、自身がアクセスすることができる(パスワードを知っている)SSIDとパスワードと位置情報を登録します。すると、近くにいるシェアされたい人はパスワードを知らずにそのアクセスポイントを利用することが可能になります。しかも通信はWiFiシェアのVPN(仮想プライベートネットワーク)を通るので保護されるという説明です。
セキュリティ的な懸念が
しかしこのサービス、ネットセキュリティの専門家である高木浩光氏(@HiromitsuTakagi)が苦言を呈しています。
iOS版の場合、構成プロファイルのWi-Fiペイロードに提供者の「パスワード」(事前共有鍵)を入れて配るように見えるけど、これ、普通に平文なんじゃないの?
http://t.co/tCNA1VASzb pic.twitter.com/D2eqhTBaoh
— Hiromitsu Takagi (@HiromitsuTakagi) 2015, 9月 21
WiFiシェアについては5月17日に書いていた通りで、「パスワード」(というか事前共有鍵と言うべきものだが)が相手方に知られるのを前提とした運用しかありえない。
https://t.co/dYZxTx7D6o
https://t.co/BQUmxulasj
— Hiromitsu Takagi (@HiromitsuTakagi) 2015, 9月 21
安全でないものを「安全です」と誤解させて(騙して)危険にさらさせるサービスは許されない。
— Hiromitsu Takagi (@HiromitsuTakagi) 2015, 9月 21
つまり、Wi-Fiのパスワードは利用者(シェアしてもらう側)に丸見えになるから、そういうことを前提とした運用であることをもっと示しなさい。
現在は「安全」と書かれているが、安全じゃないし安全だと誤解したままサービスを使うことは危険だから許されないよ。というような感じだと思います。
実際に試してみた
ということで、本当に平文でパスワードが確認できるのか、サービスの仕組みを把握するついでに試してみました。
検証ではシェアする側にAndroidアプリ(Xperia Z4/Android 5.0.2)を、シェアされる側にiOSアプリ(iPhone 5s/iOS 9.0)を使用しました。画像にはありませんが、どちらも位置情報の取得を許可する必要があります。
WiFiシェアでシェアしてみる

テスト用にSSID:YAZAWi-Fi、パスワード:Pass=LoveLiveというWi-Fiを新たに設定してみました。普段使っていないものなので、検証に使ったiPhone 5sとXperia Z4にはどちらのパスワードも保存されていません。


WiFiシェアの起動画面は「シェアされる」側として利用するか、「シェアする」側として利用するかとシンプルで分かりやすい作りです。
Android側ではシェアする設定を行うので、[自分のWi-Fiをシェアする]を選択します。そして、シェアしたいWi-Fiを選びます。


そしてアプリにWi-Fiのパスワードを設定します。
この時間違ったパスワードを入力すると、「間違っています」と表示されるので、正しいものかもチェックされているようです。
パスワードは弊社サーバーに暗号化の上保存し、利用者にも暗号化して連絡 と記載があります。


利用規約とプライバシーポリシーに同意するとシェアを開始することができます。
利用規約にはRoot化、Jailbreakn等によってWiFiシェア社と他者のデータにアクセスすることやID、パスワードを不正に使用する行為を禁じると書かれています。
今回の検証はRoot化もJailbreakもしていないスマートフォンを使って、自身のパスワードが見えるかの検証なのでセーフですよね。。。

これでYAZAWi-Fiをシェアすることに成功しました。
WiFiシェアでシェアされてみる
続いてシェアされる側の設定です。


iOSも起動画面もAndroid同様です。こちら側では、[周りのWi-Fiを利用(シェアされる)]を選択します。既にYAZAWi-Fiのシェア設定が完了しているため、シェアWi-Fiに表示されました。


初回起動時にはiTunesにサインインしてユーザ認証を行います。


おそらくリリース記念キャンペーンとしてやっている無料で使えることを指していると思われます。


利用規約とプライバシーポリシーに同意して、利用するボタンをタップすると構成プロファイルのインストールが始まります。


iOSデバイスでは通信設定を構成プロファイルという形で扱っています。
このファイル内に通信に関する様々な情報が記録されているということです。


これでシェアWi-Fiを利用する設定が完了しました。
接続情報が確認できる「確認くん」にアクセスしてみると、本来はWiMAX回線であるYAZAWi-Fiがsakura.ne.jpというホストから通信をしていることが分かります。これがVPNですね。
これでスマートフォンを使ったシェアの設定が一通り終わりました。
Wi-Fiパスワードを探してみる
iPhone側では一切Wi-Fiのパスワードを設定するタイミングがありませんでしたが保存されているのでしょうか。
インストールした構成プロファイルの中身を見られればいいのですが、iPhoneだけで構成プロファイルの内容を参照することはできません。
ということで、iTunesを使ってPCにiPhoneのデータごとバックアップしてみます。構成プロファイルだけバックアップということもできないので全てバックアップです。

iTunesを使ってPCにバックアップすると、Users\{ユーザー名}\AppData\Roaming\AppleComputer\MobileSync\Backup内にバックアップごとにフォルダが生成されて保存されます。

Windowsコマンドプロンプトのgrep的なコマンドfindstrを使って、このフォルダ内に「YAZAWi-Fi」が含まれているファイルと箇所を探り、その結果を.logファイルに出力。

綺麗なxmlファイルの状態で見ることはできませんが、SSIDのYAZAWi-Fiの文字が幾つもあり、パスワードのPass=LoveLiveが平文のまま保存されていることが確認できました!
まとめ
iPhoneの構成プロファイルは簡易的に作ると内部に平文でパスワードを記載せざるを得ないものです。高木氏の指摘通り、このWiFiシェアのプロファイルにも平文でパスワードが記載されていました。
今回の検証では予めパスワードを知っており、探すのが比較的容易でしたがパターンを掴むか綺麗な形で構成プロファイルを参照すれば平文のパスワードをみることができるかと思います。
つまり、シェアしていると知らずのうちにパスワードが入手されて通信を利用されるだけでなく、ネットワーク内に入られてしまうことも考えられます。現状では、WiFiシェアを利用したい場合は高木氏が指摘する通り、ネットワークを分離したSSIDを別途用意して提供するべきでしょう。

サーバに暗号化の上保存しているWi-Fiのパスワードを暗号化されたまま端末にインストール
サービスサイトにはこのように書かれているのに、実際はこうだと安全性に関する誤解は生まれてしまいます。
クラウドファウンディングで160万円もの資金を集めたということは、それだけサービスに賛同している人が居るということなので、セキュリティなどの面もしっかりして盤石なサービスにしていって欲しいですね。
WiFiシェア様からコメントをいただきました。
Webページ修正のお知らせとアプリについて対策を実施するとのことです。
Webページには以下の文言が追加されております。
※悪意あるユーザがあなたのWi-Fiの周りにいる事を考え、複数あるWi-Fi名の内、普段使っていないWi-Fi名をシェアすることをお勧めします
また、以下の文言が変更されています。
修正前:
※パスワードは弊社サーバに暗号化の上保存し、利用者にも暗号化して連絡するので利用者及び他の人はパスワードは分かりません
修正後:
※パスワードは弊社サーバに暗号化の上保存し、利用時にはシステム的に連携することで漏洩を防止しています
こちらもおすすめ
あわせて読みたい
いま、注目の記事
Geeklesの最新記事
Geekles(ギークルズ)をフォロー
Geeklesはたくさんのガジェット好き(=ギーク)が集まり、ガジェットやオーディオ、アプリ、カメラに関する情報を発信するメディアです。