わふうの人が書いてます。

iOSアプリケーション開発、BLEのファームウェアとハードウェア試作のフリーランスエンジニア。

濃厚暴露のインストール状況の簡便なモニタリング方法

これは

Apple/Googleは、COVID-19対策として、濃厚暴露通知の仕組みを提供しています。この仕組みは、それぞれの国の健康保健を担当する省庁がアプリケーションを開発して、そのアプリが1国あたり1アプリのみ承認されて、活用されています。

その濃厚暴露のアプリケーションのインストール率を、iOSデバイスで簡易に見る方法の紹介です。

手順

iPhone/iPad touch/iPadなどの、iOSデバイスを用意します。iOSのバージョンは、今の時点で最新iOSは13.5ですが、動いているiOSのバージョンが”13.5よりも古いもの”を使います。iOS13.5以降では、濃厚暴露のBLEアドバタイジングパケットは、iOSアプリケーションからは見えなくなります。

用意するもの: iOS13.5以前のiOSデバイス(iPhone/ iPod touch / iPadなど)。iOS13.5以降では、この方法は使えません。

まず、nRF Connectというアプリケーションをインストールします。これはBLEのSoC開発で有名なNordic Semi.社が提供している、BLEデバイス開発によく使われる無償iOSアプリケーションです。

https://apps.apple.com/jp/app/nrf-connect/id1054362403

まずアプリケーションを起動します。この状態で、画面上部のナビテーションの右ボタンにある”Scan”ボタンを押せば、BLEアドバタイジングパケットの収集が始まります。

この収集は、”Stop Scan”を押せば停止します。またアプリの設定にある収集時間が経過すれば、自動的にスキャンは停止します。収集時間は、画面下右にある設定画面で変更できます。デフォルト値は2分ですから、デフォルト値のまま使えばいいでしょう。

“スキャン”を押すと、濃厚曝露のパケット以外にも多数のBLEアドバタジングパケットが表示されます。目的とするパケットがあまりに多いと見づらいので、フィルタリングを設定します。

画面上部に”Filtering Active”というテキスト表示が出ているはずです。その右にある上向き矢印のボタンを押します。フィルタ設定が出てくるので、”Services”という項目を設定します。プルダウン入力を押すと、いくつか選択が出てきますから”Exposure Notification Service”を選択します。そして、このフィルタリングが有効になるように、その右にあるトグルスイッチを、オンにします。

もしも”Exposure Notification Service”という項目が表示されていない場合は、どこか濃厚暴露のパケットが出ているところで、スキャンをして、そういうサービスがあるんだよとアプリに検出させてみてください。

フィルタリングを有効にした画面が、これになります。

スキャンしている間、濃厚暴露のパケットが検出した順でテーブル表示に出てきます。画面上の数値(この画像だと、4/89)は、前の数値(画像だと4)が検出した濃厚暴露の数を、後ろの数値(89)は、多分検出したBLEパケットの総数を表示しています(もしかしたら、濃厚暴露のパケットは引き算してあるのかもしれないけど、わかんないです)

たいていのスマートホンは、BLEアドバタイジングをしているので、この89がスマートホンの台数、そして4つは濃厚暴露のアプリが起動していて周囲にアドバタイジングをしていると、わかります。

仕組み

濃厚暴露は、BLEアドバタイジングを利用した仕組みです。あとは、省略。

濃厚暴露のパケットは、200~300ミリ秒周期と、かなりの頻度で送信されていますから、道端に立ってモニタリングしていれば、通過する車それぞれからのパケットを拾ってカウントできます。

注意点

BLEアドバタイジングをするのは、スマホだけではありません。ウエアラブル機器やパソコンあるいはカーナビ、場合によってはマウスやペンシルなどの周辺機器も、アドバタイジングをします。そのため、デバイスの総数がスマートホンとは限らず、見かけ多めに出てしまうかもしれません。

スキャン時間をやたらと長くすると、本当の端末の数と、このアプリの表示の数が、ズレてきます。2分くらいスキャンすれば、スマートホンと濃厚暴露の検出には、もう十分です。

スマートホンは、セキュリティとプライバシーを保護するために、BLEアドバタイジングのMACアドレスを10分か15分くらいの周期で変更します。ですから例えば30分もスキャンすれば、端末が一台しかなくても、アドレスが変更するたびに異なる発信源としてカウントしてしまうので、アプリでは三台くらいに見えてしまいます。

また、濃厚曝露通知のアドバタイジングパケットも、プライバシー保護のために、同じようにパケットの内容を変更します。そのために、長時間スキャンをしていると、見かけで濃厚暴露のアプリをインストールしている端末数が、増えていきます。