ネットワークカメラ IMILAB Home Security Camera Basicで遊ぶ その4: 通信内容を確認する

前回はXiaomiエコシステムのネットワークカメラを実際に使って見ました。

今回は番外編としてIMILAB Home Security Camera Basicの通信内容を調べてみたいと思います。

IMILAB Home Security Camera Basicとネットワーク

IMILAB Home Security Camera BasicはスマートフォンにインストールしたMi Home Appから制御することができます。これはMi Home AppとIMILAB Home Security Camera Basicがネットワークを介して通信することで行われています。

気になるのはMi Home AppとIMILAB Home Security Camera Basicがどうやって通信しているかというところです。

例えば、IMILAB Home Security Camera Basicを家の中に設置(家庭内LANに接続)し、スマートフォンをモバイルネットワークに接続しても、問題なくMi Home AppからIMILAB Home Security Camera Basicを制御することができます。家庭内LANは通常はルーター・アクセスポイントがファイヤウォールの役割をしており外部からの接続は許可されないはずです。

従って、第三の機器(クラウド)を介して接続しているのではないかと思います。

調べたい内容

果たしてどのようなクラウドを介しているのか調べてみようというのが今回の記事です。

ちなみに調査はフリーのネットワークアナライザであるWiresharkを利用しました。

セットアップ時

IMILAB Home Security Camera Basicのセットアップは、まずはスマートフォンにMi Home Appを胃ストールし、その後にIMILAB Home Security Camera Basicとペアリングします。

今回はXiaomiエコシステムのネットワークカメラIMILAB Home Security Camera Basicをセットアップしてみます。制御用のスマホアプリMi Home Appは日本語化されており、スムーズにセットアップすることができます。IMILAB Home Secirity Camera BasicをWi-Fiに接続させるのもQRコードを読み込ませるだけです。

それぞれについて調べてみました。

Mi Home Appのセットアップ

どのような相手と通信しているのかを確認するにはDNSというパケットを捕まえるのが簡単です。

DNS

DNSとはこんな感じで通信相手を問い合わせるデータです。

ただ、Mi Home Appのセットアップ中にもバックグラウンドでアプリが動いているので、Mi Home App以外のアプリの通信が含まれているのでそれは除外する必要はあります。

google・facebooなど明らかに異なる通信相手を除いた結果、次のような通信相手が残りました。

ドメインホスト名
amap.comabroad.apilocate.amap.com
apilocate.amap.com
adiu.amap.com
restapi.amap.com
xiaomi.comaccount.xiaomi.com
api.account.xiaomi.com
cdn.fds.api.xiaomi.com
data.mistat.intl.xiaomi.com
data.mistat.xiaomi.com
register.xmpush.global.xiaomi.com
xioami.netapp.chat.global.xiaomi.net
land.xiaomi.net
resolver.msg.global.xiaomi.net
mi-img.comcdn.alsgp0.fds.api.mi-img.com
cdn.awssgp0.fds.api.mi-img.com
cdn.cnbj0.fds.api.mi-img.com
mi.comg.home.mi.com
sg.api.io.mi.com
sg.home.mi.com
sts.api.io.mi.com
qq.comhkextshort.weixin.qq.com
hkminorshort.weixin.qq.com
その他mmbiz.qpic.cn
sb.scorecardresearch.com

xiaomi.com・xiaomi.net・mi-img.com・mi.comについてはXiaomiのドメインです。

Mi Home AppはXioamiのアプリですので、これは当然かもしれません。ちなみにデータ量が多いのは「cdn.fds.api.xiaomi.com」「cdn.cnbj0.fds.api.mi-img.com」「g.home.mi.com」あたりです。

なお、気になるのは中国の地図サービスと思われるamap.com(高德地図)と、中国のメッセージングサービスであるqq.comへの通信です。

私はこれらのアプリは利用していないのでこの通信はよくわかりません。

ペアリング

ペアリングとはIMILAB Home Security Camera Basicをアクセスポイントに接続し、スマホにインストールしたMi Home Appに登録する手続きです。

このペアリングの最中にIMILAB Home Security Camera Basicが通信している相手を調べてみました。

ドメインホスト名
mi.comsg.ot.io.mi.com
iotcplatform.comgm.iotcplatform.com
cm.iotcplatform.com

おそらくsg.ot.io.mi.comというのはXiaomiエコシステム用のクラウドで、このクラウドを介してMi Home Appと通信しペアリングするのだと思います。

ペアリング時の通信

一方、IMILAB Home Security Camera Basicはmi.com以外にも、iotcplatform.comというドメインに対して通信を行っています。IMILAB Home Security Camera Basicがiotcplatform.comと通信した後に、スマートフォン(Mi Home App)からもiotcplatform.comへの通信が確認できました。

ただ、このiotcplatform.comというドメインの素性はよくわかりません。調べて見るとiotcplatform.comとの通信はUDPパンチホールというFirewallを超えるテクニックに使われているようなのですが、http://iotcplatform.com/ にアクセスしてみるとこのドメインは売りに出されてます。

IMILAB Home Security Camera Basicを利用するにあたり、このiotcplatform.comへの通信が必須とだとするといずれ使えなくなるリスクもあるような気がします。

ロカールネットワークでのストリーミング

IMILAB Home Security Camera Basicとスマートフォンをローカルネットワークで接続して、スマートフォンからIMILAB Home Security Camera Basicの撮影する映像を確認してみました。ローカルネットワークといっても別々のアクセスポイントにつなげているのですが、ファイヤウォール内にあるため直接通信することができます。

ローカルネットワークでのストリーミング中にIMILAB Home Security Camera Basicが通信している相手は次の通りです。

Alibaba Cloud47.74.247.219
Kingsoft Cloud103.106.208.174
103.106.208.201
103.106.211.64
Japan Network Enabler106.73.34.128
モバイルネットワーク?10.157.248.129
ロカールネットワーク192.168.10.101

ストリーミングのときには、Xiaomi関係のドメインとは通信が確認できませんでした。

また、この表の最後の3つのIPアドレスは私のスマートフォンに割り当てられていた物です。おそらく

  • 106.73.34.128: 利用しているプロバイダのグローバルなIPアドレス(複数のユーザで共用)
  • 10.157.248.129: おそらくスマートフォンのモバイルネットワークで割り当てられたIPアドレス
  • 192.16.10.110: 家庭内LANでのスマートフォンのIPアドレス

となります。

通信内容を確認してみると、IMILAB Home Security Camera BasicはスマートフォンのIPアドレスを取得しているらしく、それぞれIPアドレスに対してUDPで定期的にデータを送ります。

接続性の確認

192.168.137.40がIMILAB Home Security Camera BasicのIPアドレスです。

このような通信を行いながら、Kingsoft Cloud に対して大きめのデータを送り続けます。

Kingsoft Cloud経由のストリーミング

おそらくこれはIMILAB Home Security Camera Basicが撮影している映像を送っているところです。

スマートフォンと直接通信できないと判断しているときには、Kingsoft Cloudを介してストリーミングをするようです。

Kingsoft Cloud経由のストリーミング

そしてスマートフォンから応答があると、応答があったIPアドレスを直接通信可能と判断するようで、その後はそのIPアドレスに対してストリーミングを開始します。

直接ストリーミングへの切替

直接ストリーミング

実際にスマートフォンを操作している状態では、Kingsoft Cloudを介したストリーミングから、直接ストリーミングに切り替わったのはわかりません。この切替はスムーズに行われています。

直接ストリーミングできればネットワークでパケットが詰まることもなく、スムーズな映像が期待できます。

別ネットワークでのストリーミング

今度はスマートフォンのWi-Fiをオフにして、スマートフォンをモバイルネットワーク接続のみにしてみました。

この状態ではIMILAB Home Security Camera Basicとスマートフォンは直接通信することができません。

別ネットワークでのストリーミング中にIMILAB Home Security Camera Basicが通信している相手は次の通りです。

Alibaba Cloud47.74.247.219
Kingsoft Cloud103.106.208.174
103.106.208.201
103.106.211.64
モバイルネットワーク?10.157.248.129
楽天モバイル?133.106.75.142

ロカールネットワークでのストリーミングと同様に、Xiaomi関係のドメインとは通信が確認できませんでした。

また、この表の下の二つはスマートフォンに関連するIPアドレスです。

ローカルネットワークでのストリーミングと同様に、IMILAB Home Security Camera BasicはスマートフォンのIPアドレスに対して何度かUDPパケットを送信します。

接続性の確認

そしてしばらくするとスマートフォンのモバイルネットワークからIMILAB Home Security Camera BasicへUDPパケットが到着します。

スマートフォンが応答

このようなやりとりを何回か繰り返した後、IMILAB Home Security Camera BasicがスマートフォンのモバイルのIPアドレスに対してストリーミングデータを送信し始めます。

直接ストリーミング

スマートフォンがモバイルネットワークにつながっている場合にはクラウド経由のストリーミングになるのかと思ったのですが、少なくても私の環境では直接モバイルネットワーク経由でストリーミングしているようです。

直接ストリーミング

IMILAB Home Security Camera Basicは盗聴されるか?

安いのネットワークカメラでときどき報告されるのが、ネットワークカメラの映像が関係の無い第三者に利用されるという事件です。

私が聞いたことがあるのは、「ネットワークカメラが勝手に動いた」とか「ネットワークカメラから外国語が聞こえてきた」という事例です。

今回ざっと調べた感じでは、セットアップ時には中国のサーバを介して通信をし、ストリーミング時は可能であれば直接スマートフォンと通信しようとしていることがわかります。

今回の調査ではストリーミング内容が暗号化されているかどうかは確認することができませんでした。

しかし、ストリーミングデータが直接スマートフォンに届いているという状況であれば、パケットの盗聴などが無い限りは第三者に見られることはないのではないかと思います。

一方、ファイヤウォールのなどのせいで直接ストリーミングできない場合は、Kingsoft Cloud経由のストリーミングになります。Kingsoft Cloudは香港にあるようですが、データが第三者のサーバーを経由しているということには留意しておく必要があります。

まとめ

今回はXiaomiエコシステムのネットワークカメラIMILAB Home Security Camera Basicの通信内容について確認してみました。

IMILAB Home Security Camera Basicは複数のストリーミング方法をサポートしており、可能であればスマホに対して直接ストリーミング(P2Pストリーミング)するようです。

次回はWindows10のアップデートではまったことを紹介したいと思います。