ITmedia NEWS >
ニュース
» 2020年04月15日 23時54分 公開

AppleとGoogleの「新型コロナ感染者と接触したかも」通知がフェイク申告を防ぐ方法は?

AppleとGoogleが新型コロナ共闘で開発中の「Contact Tracing(接触追跡)」ツールについて、何がサーバに送られるのか、フェイク申告はどうやって防ぐのかなどを両社のエンジニアさんが説明してくれました。

[佐藤由紀子,ITmedia]

 米Appleと米Googleが4月10日に発表した新型コロナウイルス感染症と共闘する宣言について、AppleとGoogleのそれぞれのエンジニアさんが早口でいろいろ説明してくれた(泣)ので、分かった範囲でご紹介します。

 このプロジェクトは、感染拡大を止めるには感染者との接触を減らすのが効果的だという考えに基づいて、誰もが持ち歩いているスマートフォン同士の接触情報を使って感染者との過去の接触をユーザーに知らせ、二次感染を減らそうというもの。

 こうしたアイデアはContact Tracing(接触追跡)と呼ばれ、既に多くの国や大学や研究機関が実用化しようとしており、シンガポールはもうアプリも公開しています。Googleのエンジニアさんは世界で似たようなプロジェクトが多数進んでいて、この分でいくとフラグメンテーションが起きてしまうぞ、と危機感を持ちました。そこで、(新型コロナから世界を救いたいという)同じ志を持つAppleと協力し、寡占プラットフォーマーとして世界共通で使える仕組みを作ろうということになったそうです。

 logos 関連文書にはすべて、この2つ並んだロゴが表示されています

 何も、2社ですべてを牛耳ろうということではありません。各国の公衆衛生当局(日本だと厚生労働省?)をサポートするための仕組みです。感染したかも、と知らせるのはAppleでもGoogleでもなく、公衆衛生当局です。

 接触追跡プロジェクトの中には位置情報を含めるものもありますが、2社のはBluetoothを利用する、位置情報や個人特定ができない(はずの)システムです。さらに、ユーザー自身が使おうと思うまでは有効になりません。プライバシーと個人の意思を何より尊重するというわけです。

 新型コロナ対策はスピード勝負なので、両社は「フェーズ1」で急いで作った仕組みを5月中に提供し、その後数カ月かけてもっと簡単に普及させられる仕組みを作って「フェーズ2」として提供する計画です。

 フェーズ1ではiOSとAndroidで相互運用する接触追跡用APIを配布します。公衆衛生当局はこのAPIを組み込んだ接触追跡アプリを両社のアプリストアで公開。たしかにこれだと、よほど宣伝しないとユーザーがインストールしないかもです(でも早いのは大事)。なお、このAPIを使うにはホワイトリストに載せてもらう必要があるので、野良アプリに使われることはありません。

 フェーズ2ではOSのアップデートで機能を組み込むので、ユーザーは当局のアプリをインストールしなくても接触追跡機能をオプトインできるようになります。アップデートの際に「オプトインしてね」と表示されるかもしれません。そうすれば、かなりの人が有効にしそうです。

 大まかな仕組みについては11日のコラムに書いたのですが、よく分からなかったところが今回のブリーフィングで幾つか整理できたので、それを入れつつ改めて説明し直します。フェーズ2の場合です。

 接触追跡機能を有効にしているiPhoneユーザーのアリスとPixelユーザーのボブが公園のベンチで10分ばかり話しました。この間、2人のぽっけに入っていたiPhoneとPixelも、仲良くBluetoothの信号をやり取りしました。この信号は、15分ごとに変わる16ビットの文字列で、スマートフォン一意じゃないのでこの信号だけではスマートフォン(とその持ち主)を特定できません。

 こうしてやり取りした過去2週間分の信号の接触リストがスマートフォンに保存されます。サーバにアップロードされるわけではありません。

 bob 1

 数日後、ボブが感染したかもと思って検査を受けたところ、やっぱり陽性。医師がボブに、接触追跡機能をオンにしていることを確認し、その場で当局のアプリをインストールして陽性申告するよう指示します。陽性申告するには、例えば当局が医師に配布するQRコードをスマートフォンで読み取るなどのハードルが設けられているので、フェイク申告はできません。

 申告すると、アプリが「過去14日間のあなたの接触リストをアップロードしてもいいですか?」と聞いてきて、OKと答えるとデータがサーバにアップロードされます。このサーバは基本的には当局のものですが、キャパによってはAppleかGoogleのサーバになることもあるそうです。

 bob 2

 サーバにアップロードされたボブの接触リストは、当局管轄内の他の感染者のものと一緒にまとめられ、定期的にフェッチ(ユーザーが指示しなくてもサーバにデータを取りに行く動作)しているアリスのiPhoneに落ちてきて、アリスの接触リストと照合され、ボブとの接触が検出されます。

 bob 3

 この段階で、アリスのiPhoneに当局名義で「過去2週間に感染者と接触した可能性があります」という通知が表示され、当局のアプリをインストールするよう促されます。知らされるのは、日付と接触した時間(5分単位)のみ。どこで会った誰が感染していたのかは教えてくれません。ここでもプライバシーのために、一致したデータがサーバにアップロードされることはなく、一致したという報告だけが当局に送られます。

 bob 4

 と、こんな感じです。最初の発表段階で、フェイク申告はどうやって防ぐんだろうとか、サーバに送られるのはどんな情報なんだろうとかもやもやしていたところが少しすっきり。

 仕組みについてのもっとつっこんだテクニカルな説明に興味のある方は、Bluetoothプロトコルについての文書暗号キーのスケジューリングについての文書が公開されていますので、そちらをどうぞ(私にはちょっと難しい)。分かる人が見たら分かりそうなので、Bluetooth信号をやり取りする流れの図を転載しておきます。

 blue

 余談ですが、ブリーフィングの後に行った美容院(店長1人が1回に1人のお客を窓を開け放った店内でお互いにマスクしたままカットする方式)でこの仕組みについて店長に説明してみたところ、おおよそ理解してもらえたんですが、そのとき店長のiPhoneは本人から5メートルは離れているであろう控え室にありました。

 私たちは小一時間濃厚接触したわけですが、信号のやり取りはしなかったわけです。感染の可能性の高い接客業の方の多くも、自分のスマートフォンは仕事中は身につけていないかもしれないとのこと。スマートフォンは肌身離さず持ち歩きましょうキャンペーンが必要かもしれません。

Copyright © ITmedia, Inc. All Rights Reserved.