とかくIoT(Internet of Things)というと、センサーネットワークだとかビッグデータとかいったキーワードで語られ、サーバー側のセキュリティに目が向きがちだ。もちろんそちらも重要だし、実際デバイスとサービスの通信の安全性をどう担保するかという課題は大きい。一方でIoTは構成要素が多い分、気をつけるべきポイントが多岐にわたる。サーバー、ネットワーク、ゲートウエイ、デバイスといったすべてのポイントでセキュリティを担保しなければならない。カバー範囲が広く、企業のIT部門にとってはなじみがない分野もあるので、見落としがありそうだ。

 実感したのは、遅々として進んでいない個人的IoTプロジェクトを進行させたため。中身は本論からはずれるので紹介しないが、基本的な構成はこんな感じだ。Bluetooth Low Energy(BLE)を使ってデバイスがスマホに状態を伝え、スマホがその情報とネットから取得した情報を合わせて、制御情報をBLEでデバイスに送る。それでデバイスのアクチュエーターを動かすといったことを考えている。

BLEデバイスは結構丸見え

 実際に手を動かしてわかったのは、まずBLEが危ういこと。一般的にサンプルプログラムなどで公開されているBLEの利用方法だと、基本的に誰でもデバイスに接続できてしまう。

 例えば、BLEを利用した位置情報サービスの「iBeacon」に対応したデバイスは、「アドバタイズメント」と呼ばれるパケットを発信している。このパケットは基本的にどんな端末でも受け取れる。実はBLEで通信するデバイスは、すべてアドバタイズメントパケットを送信する。この特性を利用して位置情報サービスにBLEを使ったのがiBeaconだと言えるのだが、逆に言えばデバイスの存在が常に明らかにされていることになる。この公開情報をたどって接続を試みることができる。

図1●BLEでアドバタイズメントパケットを発行しているデバイスの一覧
図1●BLEでアドバタイズメントパケットを発行しているデバイスの一覧
[画像のクリックで拡大表示]
図2●デバイスに接続したところ
図2●デバイスに接続したところ
[画像のクリックで拡大表示]