全2063文字
PR

 米アップル(Apple)と米グーグル(Google)が2020年4月10日(米国時間)に共同開発を発表した「Contact Tracing」(関連記事1関連記事2)。これは新型コロナウイルスに感染した患者と濃厚接触した疑いのある利用者に対してスマートフォンで通知する仕組みで、同年5月にも各国の公衆衛生当局向けに第1弾の機能の提供を始める。Bluetooth Low Energy(BLE)によってユーザー同士の接触歴を記録し、その中から感染者が出た場合に通知を送ることができるという。

 この仕組みに対して、気になるのがプライバシーだ。AppleやGoogleにユーザーの行動履歴が捕捉されないか。第3者にストーキングをされないか――。そこで、AppleとGoogleが公開した文書から、プライバシー保護の仕組みを調べてみた。

行動履歴の追跡を防ぐ2つの仕組み

 Contact Tracingの動作を簡略化すると、次のようになる。まず各スマホは、BLEのビーコン発信器兼ビーコン受信機として動作する。つまりスマホはBLEを使って自身のIDを外部にブロードキャストするとともに、他のスマホから「ブロードキャストされたID」、「それを受け取った日時」、「その信号強度」をローカルに記録する。信号強度はユーザーの間の距離を割り出すのに使われる。

 例えば、ユーザーの1人がPCR検査などによって新型コロナウイルスの陽性反応が出た場合、本人の同意を得た上で、クラウドサービスにこのIDを通知する。するとこのIDはクラウドサービスを通じて他のユーザーのスマートフォンに配信される。各スマートフォンのアプリは、配信されたIDとスマートフォンに記録されているIDとを照合し、感染者の近くにいたことがあったかを割り出す。

 ただし、このような単純な仕組みのままだと、その利用者の行動履歴が筒抜けになる可能性がある。具体的には、スマホのBluetoothチップのMACアドレスまたはビーコンのIDとユーザーの個人情報のひも付けが判明した場合、そのユーザーが今どこにいるか他のスマホで割り出すことができるようになってしまう。そこで、Contact Tracingでは、2つの仕組みによって個人の行動履歴をトラッキングできないようにしている。「BluetoothのMACアドレスのランダム化」と、「ブロードキャストするIDの変更」である。

 Contact Tracingでは、10分~20分ごとにMACアドレスとブロードキャストIDを同時に新しく生成して発信する。ある一定時間内に発信されたMACアドレスおよびブロードキャストIDと、ユーザーの個人情報がなんらかの原因でひも付いたとしても、長くても20分後には全く別のデータ列に変わるため、そこからの追跡は難しくなる。

 変化するブロードキャストIDのことを「Rolling Proximity Identifier(RPI)」と呼ぶ。これは毎日変わる鍵である「Daily Tracing Key(DTK)」と、1日の時間を初めから10分ごとに区切った値「Time Interval Number(TIN)」(0~143)をハッシュ関数に通したものである。ハッシュ関数に通して得られるハッシュ値からは、入力した値は推定できない。なお、DTKは、スマートフォンでソフトウエアを初めて起動したときに作られる永続的な「Trace Key(TK)」と日付を入力値として得られたハッシュ値である。

変化するブロードキャストID(RPI)はDaily Tracing Key(DTK)から生成される
変化するブロードキャストID(RPI)はDaily Tracing Key(DTK)から生成される
(出所:アップル、グーグル)
[画像のクリックで拡大表示]
ID(RPI)をブロードキャストまでのスマホ内での処理
ID(RPI)をブロードキャストまでのスマホ内での処理
(出所:アップル、グーグル)
[画像のクリックで拡大表示]