■Viberを使ってみたメモ
iPhone用のVoIPアプリViberを使ってみたメモ。どういう動きをしているのか大変興味深いので、いろいろ試してみた。気になるところがあったので、最後に少し書いておく。
【12/9追記】更に調査したので、こちらもどうぞ。
Viberが送信する情報のメモ
http://blog.isnext.net/issy/archives/571
■試験環境
ユーザA
iPhone 3GS SoftBank回線から接続
ユーザB
iPhone 3GS WiFi接続 SIM抜き
iPad WiFi接続 3G無し
ネットワーク
WiFiは、BフレッツでAsahi-netに接続している宅内LANに
Ethernetで接続しているiMacのAirMacインターネット共有。
iMac上でCocoaPacketAnalyzerでAirMac I/Fをdump調査。
■通話試験でわかったこと
・ViberはSMSでパスコードさえ受け取ればWiFiオンリーでも利用可能
・同じ電話番号は常にひとつのデバイスでしか利用できない
ひとつ登録した後で、別のデバイスで同じ番号を登録すると先の登録は無効に
・しばしばコールを受け取れず不在着信だけ残ることがある
・コールをフックした後音声が出ないまま切れることもしばしば発生する
・まともに着信しても音声が出るまでに数秒間がある
・最初はバッファ時間を調整しているのか遅延が0.5〜1秒ほどある
・通話している内に遅延が短くなって0.1〜0.2秒程度になっていく
・通話品質は3Gのアンテナの弱いところでも3G通話程度
・アンテナが良好な場合はPHSより少し下くらい?良い音に感じる
・iPhoneはもちろん、iPadでも利用できた
■dumpしてわかったこと
・ユーザ登録情報を管理しているサーバはAmazon EC2上にあるらしい
・日本のViber用サーバが「使えるネット」のVPS上にあるらしい
・認証関連はTCP 4244でEC2サーバに接続
・ダイアル発信時にはUDP 5243でViber用VPSサーバに接続
・3G接続側はVPSサーバに音声データ接続するらしい
3G接続側のデータはVPSサーバ経由でWiFi側に到達している
・WiFi接続側は3G接続側のIPに直接データを送っている
・そのため通話初期の短時間を除いて上りと下りの経路が違う状態となる
・認証サーバとの通信途中で通話先の電話番号が平文で送受信されている
■通話中の通信状態
上り
ユーザA(3G)→ VPSサーバ:UDP5243→ユーザB:UDP51618(WiFi)
下り
ユーザA(3G):UDP49242←ユーザB:UDP51618(WiFi)
■まとめ
EC2やVPSを活用したサービスであることがよくわかる。Viber用サーバの置き場所がこのようなクラウドサービスだとすると、その環境のネットワークやVPS利用者等のセキュリティ管理が若干心配。通信内容から電話番号が平文で拾えるということは、クラウドサービス内の環境が安全でなければ、Viberで利用可能な電話番号を比較的容易に収集できてしまうのではないかと心配になる。数回試した限りでは現状認証関連はEC2上のサーバにしかアクセスしていないので、EC2の環境次第ということか…。うーむ。
ダイアル時の認証自体は最初の12シーケンスだけなので、ぜひとも暗号化をしてもらいたいと思う…。少なくとも利用者側でできる自衛手段としては、オープンなWiFiにつないでViberで電話をかけない方がいいということか。