ニュース

COCOAで活用されるグーグルとアップルの「接触通知API」、初期版と現在の違いとは

 厚生労働省が、2020年6月より提供しているスマートフォンアプリ「COCOA(ココア)」は、新型コロナウイルス感染症対策のひとつとして、陽性になった人と接触した可能性を知らせてくれるアプリだ。

 これまでにダウンロード件数が約2613万件、陽性登録件数が1万1454件(どちらも3月16日時点)と一定の規模まで利用されるようになった一方で、2月にはAndroid版で通知されない不具合が発覚。さらに3月16日には毎日新聞の報道を受けて、平井卓也デジタル改革担当大臣が「厚生労働省と内閣官房IT総合戦略室の連携チームが今後を担う。最新のAPIのバージョンへ対応することは非常に重要なテーマ」と語った。

平井大臣

 世界でも早いタイミングで登場した「COCOA」は、グーグルとアップルの開発する接触通知(Exposure Notification)APIのなかでも、最初のバージョンを利用している。一方で、グーグルとアップルは、世界各国からの要望やフィードバックを得て、その後もAPIの開発を進めてきた。今回は、APIの新たなバージョンで取り入れられている機能を紹介しよう。

接触通知APIの仕組み

 2020年5月に登場した接触通知APIの基本的な仕組みは、今も同じだ。詳しくは昨年5月の本誌記事をご覧いただくとして、ざっくりと言えば「近くにいるスマホ同士で情報を交換しておき、陽性報告があればサーバーに通知。サーバーから得た情報をスマホにダウンロード。アプリで照合して陽性者と接触していたかどうかわかる」という流れだ。個人情報はもちろん、位置情報は使わない。「近くにいる」という定義は国によって異なる。

 COCOAでは、この接触通知APIのバージョン1(グーグルではレガシーv1モードと呼ぶ)を活用しているほか、感染者を把握し管理支援するシステム「HER-SYS」と連携させている。

 APIのバージョンは、iOS版ではバージョン1とバージョン2がある。Android版(Google Play開発者サービス経由で提供)ではバージョン1の登場以降、2020年7月にバージョン1.5、同年8月にバージョン1.6、同年9月にバージョン1.7、そして最近では2021年1月にバージョン1.8が公開されている。バージョン番号の違いはあれど、両社では実装する機能について合意を取って開発を進めている。ただ、Android側は「Google Play開発者サービス」という仕組みを活用することでOSのバージョンとは完全に切り離されており、よりスピーディに導入できているようだ。

接触情報の粒度をより細かく

 COCOAで用いるバージョン1のAPIと比べ、最新版での最も大きな変化は、“リスク計算機能の強化”だ。グーグルのAPIでは「Exposure Window(エクスポージャーウィンドウ)」と呼ばれるもので、Android版はAPIのv1.5で導入されている。
 グーグルのドキュメントを見ると、当初のバージョン1では、接触通知APIを通じて得られる接触情報は、1日単位となっていた。1日1回、陽性者とどれくらい接触したのか、というかたちだ。これは当初、プライバシーへ配慮し、より安全性を高めるべく採用された。

 一方、Exposure Windowは、30分あたりにどれくらいの接触があったかわかるようになり、より細かく接触数がわかることになった。つまり「接触情報の粒度」がより細かくなった。

 とはいえ時刻情報は含まれておらず、さらに起点となる時間がシャッフルされた状態で取得できる。GPSも用いていないため、「どれくらいの密度」だったかはわかるが、「いつどこで接触したか」まではわからない。

もし陽性者と接触していたら

 たとえば「1日あたり10人、陽性者と濃厚接触していた」ことが判明したとしよう。

 これがバージョン1の場合、1日単位、それも前日までの報告まででの実績がわかることになる。このかたちでも、感染していない人が通知を受ければ「あ、接触していたのか」ということはわかり、検査への意欲が高まるだろうし、その後の人との接触具合をどうするか行動へ影響を与えるだろう。当局が感染の広がり方を調べたい場合は、アプリに頼らず、患者へのヒアリングを実施することになりそうだ。

 一方、Exposure Windowであれば、当日のデータを活用でき、さらに「30分で陽性者1人と接触し、その後別の時間で3人と接触した」、あるいは「30分で10人と接触していた」といったことがわかる。公衆衛生機関(日本では厚生労働省)にとっては、クラスター(集団感染)が発生したかどうかなど、感染のあり様を自動的に判別しやすくなる可能性があるほか、リスクをどう見積もるか、判断しやすくなる。

 どちらを選ぶかは、本来であれば公衆衛生当局の判断次第だ。少なくともバージョン1.5以降であればどういった手法を選ぶのか、という選択肢そのものが増えることになる。

バージョン1、引き続きサポート

 接触通知APIの開発者向け文書のうち、グーグルが公開している文書では、「これから新たにアプリを開発する場合は、レガシーv1モードを使わないことを強く勧める」として、新たなバージョンの利用を呼びかけている。

 しかし旧バージョンの停止にまでは踏み込んでいない。むしろ、レガシーv1モード、つまりバージョン1を引き続きサポートすることもあわせて宣言している。

 グーグル広報も「厚生労働省が最新版の採用を検討されることを歓迎しますが、もちろん、初期バージョンのAPIを利用したアプリも継続的にサポートしています。Google では、引き続き厚生労働省を支援してまいります」とコメントしており、 古いAPIでも、引き続き利用できることを明言 した。

 スマートフォンのソフトウェアやアプリは、セキュリティや不具合対策から、常に最新版へのアップデートが推奨されやすい。接触通知APIも、当然ながら、バージョンが重なるごとに不具合の修正などはあるが、新たに取り入れられた機能を使うかどうかは当局の方針次第。

 APIを開発する側としては最新版を推奨するのはある意味、当然のことだろう。ただ、国や地域によって財政状況やIT技術の活用範囲には違いがある。当局の目指す方向、あるいは投入できる人的、資金的なリソースによってバージョン1を使い、そのほかの施策に注力する、といった決断もあり得るし、コストを投じて最新版を積極的に使いこなすという考え方もある。

 もっとも日本の「COCOA」は、先立ってAndroid版で通知できない不具合が長期に渡って放置されていたことが判明し、2月に開発体制の再起動が宣言されたところだ。新型コロナウイルス感染症対策のアプリとして、APIのバージョンをどうキャッチアップしていくのか、そして、どのような考え方でよりよい環境を目指すのか、今後の動きにも注目が集まる。