錦です。
厚生労働省の新型コロナウイルス感染症対策テックチームは、接触確認アプリとそのシステムに関わる仕様を公開しました。
https://cio.go.jp/sites/default/files/uploads/documents/techteam_20200526_01.pdf
アプリの概要
このアプリは、新型コロナ感染者と一定時間接近していたとき、その感染者が感染していることが発覚した場合、通知されるというものです。かんたんに言うと、感染経路不明をへらすためのアプリです。
日本で提供されるアプリでは「15分以上継続して、1m以内の距離で近接状態が続いた」場合接触したとカウントされます。
アプリは、GoogleとAppleのAPI(Exposure Notification API)(以下 AGF)を採用しているとのことで、端末のBluetooth機能を利用して感染者を追跡します。
仕組み
仕組みをかんたんに解説すると、アプリをインストールしたユーザーのうち、前述の「15分以上継続して、1m以内の距離で近接状態が続いた」ユーザーすべてを端末に匿名で保存します。
アプリをインストールすると、日次キーと言われる毎日ランダムに生成されるキーと、日次キーを基に10分ごとに生成される接触符号(RPI)というキーが付与されます。15分以上継続して1m以内の近接状態が続いた場合、近接していた人物の接触符号が自分の端末に保存されます。同様に、自分の接触符号は相手の端末に保存されます。接触符号のみを保存するため、名前やその他の個人情報は一切保存されませんし、保存されたキーから個人を特定することはできません。
キーとは、ある種の識別番号のようなもので、数字などの羅列になっています。
保存された他人の接触符号は端末に14日間保存されます。
感染した事が判明した場合、日次キーと時刻を基に診断キーが発行され、14日間通知サーバーに保存され、診断キーが全ユーザーに提供されます。端末では、日次キーから接触符号を導出し、その接触符号が端末に保存された接触符号に一致する物があれば通知、そうでなければ、非通知となります。
プロセスでいうと、アプリをインストールした状態で
- 日次キーを1日一回生成する
- 日次キーを基に接触符号を10分に1回生成する
接近した場合
- 「15分以上継続して、1m以内の距離で近接状態が続いた」すべての他人の接触符号を端末に保存
そして、感染者が出た場合
- 感染者側の端末で日次キーと時刻を元にした「診断キー」が発行される
- 診断キーが全端末に送信される
- 端末で診断キーを基に日次キーを導出
- 日次キーを元に接触符号を導出
- 導出した接触符号が端末に保存されている他人の接触符号と一致すれば通知
こういう流れになります。
プライバシーの懸念
おそらく、国が監視するのではないかという心配をされている方もいると思います。このアプリは、プライバシー保護のためにプロセスがかなり複雑化されている上、接触符号や日次キーを利用し、ユーザーを暗号で識別することで、収集する情報を最小に血止めています。
もし、感染者と接近したと通知された場合でも、誰と接近したという情報は出ないので、どこ経由で感染したのかというのはわからなくなります。
また、アプリのインストール自体は、任意であり義務ではない上、Bluetoothなどのアクセスはシステムによりユーザーの認証が必要になります。iOSの場合、設定のプライバシーの部分から操作できます。
互換性
互換性ですが、以下のとおりです。
Exposure Notification APIに対応したOSは以下の通り
また、クラウドサービスを利用する旨が記載されていますが、どのクラウドを利用するかは不明で、AWSか国内の事業者かと思われます。こちらわかり次第お伝えします。
今後の流れ
このアプリの提供は、AppleとGoogleが計画するコロナ感染拡大防止策のフェーズ1になります。
フェーズ2では、このアプリの機能が実際にiOSやAndroidのOSレベルの機能になります。その場合、この機能を使うかどうかについては任意になります。