ソフトウェア

イタリア政府が作った新型コロナウイルスの感染追跡アプリ「Immuni」の全ソースコードがGitHubにて公開中、詳細な解説ドキュメント付き


AppleとGoogleが開発した新型コロナウイルス感染症(COVID-19)接触追跡システム用のAPIがiOS 13.5で正式に実装されるなど、AppleとGoogleの接触追跡APIを利用したアプリケーションの開発環境が着々と整っています。イタリア政府もAppleとGoogleのAPIを利用したアプリ「Immuni」を開発し、その全ソースコードを解説ドキュメントとともにGitHubに公開しています。

GitHub - immuni-app/immuni-documentation: Repo for Immuni's documentation.
https://github.com/immuni-app/immuni-documentation

Immuniは、新型コロナウイルス感染症による緊急事態に対応するため、政府が保健省および技術革新・デジタル化省と共同で実現した濃厚接触通知システムとのこと。Immuniは国内の公共インフラのみを使用しており、イタリア産業復興公社によって設立された公企業であるSogeiが管理。ソースコードはBending Spoonsが開発し、ライセンスはGNU Affero General Public License バージョン3に基づいてリリースされています。

・目次
◆要約
◆ビジョンと目標
◆6つの原則
◆アプリについて
◆分析
◆プライバシー
◆対応すべき点

◆要約
Immuniは、iOSとAndroidのスマートフォンアプリを中心とした技術的なソリューションとのこと。ウイルスに感染している恐れのあるユーザーに可能な限り早期に通知することで、ユーザーはたとえ無症状であっても、他の人への感染拡大を避けるために自己隔離したり、医学的なアドバイスを求めたりして、新型コロナウイルス感染症の拡大防止に努めることができます。

Immuniの設計と開発は、「実用性」「アクセシビリティ」「正確性」「プライバシー」「スケーラビリティ」「透明性」という6つの主要な原則に基づき、Bluetooth Low Energy(BLE)が技術的な基盤であるとのこと。2人のユーザーが接近した状態が一定期間続くと、デバイスで生成される識別子である「Rolling proximity identifier(RPI)」を互いにデバイス内に記録します。RPIは、1時間に複数回「Temporary exposure key」から生成され、Temporary exposure keyは1日ごとにランダムに生成されます。ユーザーが新型コロナウイルスの検査で陽性と判定された場合、医療従事者の検証を通して、ユーザーがデバイスのTemporary exposure keyをサーバーにアップロード。他のユーザーのアプリは定期的にサーバーのTemporary exposure keyをダウンロードし、感染したユーザーの最近のRPIを導き出します。そして、デバイスに保存されたRPIと照合し、濃厚接触者に該当する場合はユーザーに通知する仕組みであると説明されています。

AppleとGoogleが「新型コロナウイルス追跡システム」をiOSとAndroidに組み込む - GIGAZINE
https://gigazine.net/news/20200411-google-apple-coronavirus-tracing-system/


Immuniは、GPSデータを含む位置情報を一切使用しません。そのため、感染の可能性のあるユーザーとの接触がどこで行われたのか、また関係者の身元を特定することはできません。接触追跡機能を実装するために、ImmuniはAppleとGoogleの接触追跡フレームワークを活用しており、高い信頼性を有しているとのこと。Temporary exposure keyの他に、Immuniはサーバーに疫学的情報や運用情報が含まれた分析データを送信し、国民医療サービスのユーザーに対する効果的な支援を促しているそう。Immuniはユーザーのプライバシーに細心の注意を払いながら開発されており、プライバシー保護のために多くの措置が取られているとのこと。例えば、ユーザーの氏名、年齢、住所、メールアドレス、電話番号など、ユーザーの身元を明らかにするような個人情報は一切収集していません。

◆ビジョンと目標
感染の疑いがあるユーザーに、たとえ無症状であっても可能な限り早期に通知し、自己隔離を促すことを目的としています。これにより、人々がいち早く日常を取り戻せると同時に、ウイルスの拡散を最小限に抑えることができるとのこと。早期に通知を受けることで、医師にアドバイスを求めたり、重篤な健康被害のリスクを減らしたりすることもできます。Immuniは新型コロナウイルス感染症の危機に対処するように設計されましたが、その背後にあるビジョンは、将来発生する可能性のある他の感染症の脅威に対処できる準備を整えることだと語られています。


◆6つの原則
1.実用性:Immuniは、プロジェクトのビジョンと目標を達成するために、感染症の危機にさらされている可能な限り多くの人に対して、可能な限り早期に通知することが重要とのこと。これが最も重要な原則だと説明されています。
2.アクセシビリティ:公平性を確保し、広く利用されるために、Immuniを使いたいと考えるすべての人々が利用できるようにしなければならないとのこと。この原則は、ユーザーエクスペリエンス、デザイン、地域化、技術を含む、すべての面における意思決定に影響を与えているそうです。
3.正確さ:Immuniは、ウイルス感染のリスクが高いユーザーのみに通知することを目指しています。これは、感染した可能性があることを通知されることで、余計な心理的な負担がかかるため。また、誤検出率が高すぎると、ユーザーはアプリへの信頼を失い、アプリを使用しなくなります。さらに、アプリの精度が高ければ高いほど、国民医療サービスはより効率的にユーザーの治療を行うことができ、リスクの高い人から優先して対応することができるようになると説明されています。
4.プライバシー:ユーザーのプライバシーは保護しなければなりません。ユーザーの信頼を獲得し、維持することは非常に重要であり、それができなければ、広く利用される可能性は低くなります。
5.スケーラビリティ:Immuniの全国的な利用を実現するためには、システムを技術的にうまく拡張し、国民医療サービスに負担をかける可能性のある運用上の問題を管理できるようにする必要があります。
6.透明性:誰もがImmuniのすべてと、最も重要な設計決定の背後にある根拠を説明した文書へアクセス可能であるべきとのこと。また、アプリをオープンソースにすることで、ユーザーはアプリが文書通りに動作することを確認でき、コミュニティはアプリの改善を支援することができると語られています。

◆アプリについて
対応言語はイタリア語、ドイツ語、英語の3言語。スマートフォンの言語設定がこれらの言語に含まれていない場合は、英語が使用されるとのこと。また、iOSやGoogle Playサービスが接触追跡APIに対応していない場合は、アップデート方法とともに通知され、アップデートが完了すれば通知が消える仕組みとのこと。


アプリを開くと、まずはアプリの有用性と動作の仕組みを説明する画面が表示されるとのこと。個人にとってもコミュニティにとってもメリットがあることや、BLEによる識別子の交換の仕組みを知ることが可能。BLEにより、高い精度や低消費電力、位置情報なしでの追跡が可能になっているとのこと。


プライバシー保護の仕組みについても、説明を通して知ることができます。アプリが収集もしくは処理しない位置情報や連絡先といった個人情報の項目がリストアップされるとのこと。また、ユーザーのプライバシーを保護する方法や、収集および共有するデータとその目的も記載されています。

続いて居住地域を選択する画面に移動します。居住地域は地域に応じた案内を行うために使用されると説明されており、アプリ上でも明記されているとのこと。


アプリの権限については、接触追跡APIを利用するためにユーザーの許可が必要とのこと。また、Bluetoothが無効になっている場合はユーザーに通知し、有効化する方法についての簡単な説明があります。プッシュ通知の権限も必要です。


ホーム画面では、アプリが正常に動作しているかどうかをカードで通知します。ユーザーが先ほど設定したアプリの権限を取り消すなど、アプリの動作に支障が生じた場合は、正常に動作していない旨を通知から知ることができるとのこと。


Immuniでは、新型コロナウイルス感染症から身を守るための一般的なアドバイスをしてくれるとのこと。濃厚接触の疑いがある場合は通知があり、どうすればよいかのアドバイスを受けることができるとのこと。アドバイスの内容は濃厚接触の性質やユーザーの居住地域によって異なり、必要に応じて国民医療サービスへの連絡を促すと説明されています。


設定画面では、プライバシーに関するお知らせと利用規約を確認することができるとのこと。また、トラブルシューティングに役立つアプリのバージョンの確認や、居住地域の変更も設定画面から行うことができます。


新型コロナウイルスの検査結果が陽性の場合は、医療従事者の指示に従いデータをアップロードします。設定画面の「データのアップロード」に移動すると、アプリ上にランダムな10桁の文字列が表示されます。ユーザーは医療従事者に文字列を伝え、医療従事者はウェブ画面から文字列を入力。医療従事者の要求に応じて、ユーザーはデータのアップロードとその理由を確認し、データをアップロードします。


連絡先追跡機能を実装するために、ImmuniはAppleとGoogleの接触追跡フレームワークを利用しています。これにより、Immuniは技術的な制限を克服することができ、高い信頼性を実現しているとのこと。詳細はAppleのドキュメントGoogleのドキュメントを参照してほしいと説明されています。

◆分析
Temporary exposure keyのほかに、疫学的情報や運営情報もサーバーに送信されます。これらのデータは、濃厚接触通知の有効性を高めたり、利用者に最適な医療支援を提供したりするためするほかに、国民医療サービスがシステムを効果的に管理するために重要とのこと。医療政策、資源、能力や感染症拡大の度合いは地域によって異なります。そのため、疫学的情報と運用情報から得られる最適化は、地域レベルで実施することが最も効果的であると考えられるとのこと。これらのデータはユーザーから提供されたユーザーの居住地域とともに送信されます。

◆プライバシー
Immuniが収集する疫学的データは「接触が発生した日」「接触が続いた時間」「接触した2人のユーザの距離を推定するために使用されるデバイスからの信号の減衰情報」「症状が発生した日に基づいて、接触が発生したときに感染者がどの程度の感染力を持っているかに関する推定情報」とのこと。アプリは、Temporary exposure keyをアップロードした場合にのみ、疫学情報をサーバーに送信することがあると説明されています。医療従事者が新型コロナウイルス検査で陽性の場合は、医療従事者の承認を受け、ユーザーがアプリによって過去14日間の利用可能な疫学情報をアップロードする設計とのこと。


利用者のプライバシーを保護するために、アップロードされるデータには一定の制限があるとのこと。例えば、接触の時間は5分単位で測定され、すべての記録時間の合計が30分に制限されています。さらにImmuniは、同じ感染者から何度も接触があったというような、感染者と接触を関連付ける方法を持っていません。また、通信を分析してユーザーの機密情報を傍受されるリスクを軽減するために、定期的にダミーのアップロードを実行しているとのこと。

これらのデータを収集することで、国民医療サービスはアプリのリスクモデルを最適化することができます。疫学的情報が、最終的にユーザーが新型コロナウイルスで陽性反応を示したこととどのように相関するかを知ることで、アプリのリスクモデルを改善し、その精度を高めることが可能とのこと。なお、リスクの評価は常にユーザーのデバイス上で行われますが、最新のモデルはサーバーから取得することができると説明されています。

◆対応すべき点
攻撃者が通信を分析することで得られる情報を最小限に抑えるため、ダミー・アップロードの改良を進めているとのこと。また、ユーザーに認証を求めず、ユーザーの識別子やデバイスの識別子を使用せずに収集を行うことで、ユーザーのプライバシーを最大限に守りながら、必要な運用情報を収集できる可能性を模索していますが、攻撃者が偽のアップロードでデータを汚染するのを防ぐことが難しくなるという障壁もあるそうです。そうした障壁を乗り越える有望なソリューションはすでに考案されており、ドキュメンテーションと開発が進行中とのこと。

なお、日本国内においてもCode for JapanがAppleとGoogleの接触通知APIを利用したアプリを開発していましたが、厚生労働省はアプリの採用を見送り独自に開発を進めると報じられています。厚労省による採用見送りを受け、Code for Japanは開発していた追跡アプリのソースコードをGitHub上に公開しています。

まもりあいJapan · GitHub
https://github.com/mamori-i-japan

この記事のタイトルとURLをコピーする

・関連記事
AppleとGoogleが「新型コロナウイルス追跡システム」をiOSとAndroidに組み込む - GIGAZINE

AppleとGoogleが共同発表した「新型コロナウイルス追跡システム」に対して浮かぶセキュリティおよびプライバシーに関する疑問への回答 - GIGAZINE

AppleとGoogleが技術提供した新型コロナウイルス感染追跡アプリ「COVIDSafe」が公開、どのようなシステムなのか? - GIGAZINE

AppleとGoogleによる「新型コロナウイルス追跡システム」がOSにどんな風に組み込まれるかわかるスクリーンショットが公開 - GIGAZINE

新型コロナウイルスの接触追跡アプリに100万人のデータが流出リスクにさらされる欠陥があったと判明 - GIGAZINE

in ソフトウェア, Posted by log1n_yi

You can read the machine translated English article here.