生き続ける:バックグラウンド追跡とNHS COVID-19アプリ

公開済み 更新しました
Cover image for: 生き続ける:バックグラウンド追跡とNHS COVID-19アプリ
  • オーストラリアのCOVIDSafeアプリとは異なり、NHS COVID-19アプリはiOSデバイスのバックグラウンドで実行すると正しく動作するように見えます
  • アプリは、ユーザーに症状を示す参照コードを提供することにより、誤ったレポートを防止します。そのコードは、アクションが実行される前に正式なテスト結果に関連付けられます
  • NHS COVID-19は、医療従事者にPPEを着用している間はデバイスのBluetoothをオフにするよう指示し、「PPEを着用しているときは、職場でのやり取りをキャプチャしないでください」
  • 更新0925 BST 5月7日 :「アプリがバックグラウンドで効果を維持するにはどうすればよいのですか?」を追加しました。以下のセクションでは、Androidデバイスとの通信時にアプリが生き続けるための管理方法を説明し、iOS間通信の課題と手法の一部を取り上げます
  • 更新1145 BST 5月7日 :「アプリは個人データを収集して私の身元を明らかにしますか?」を追加しました。以下のセクション。

アプリが画面に表示されない場合の連絡先追跡の課題

アプリの開発者がユーザーのデバイスの前に立っていないときにアプリを「生きている」状態に保つには、いくつかの選択肢があります。 Appleはこれらのオプションを慎重に管理して、アプリがユーザーのプライバシーを侵害したり、ユーザーのバッテリーを過度に消耗させたりしないようにします。特に、アプリにフォーカスがあるかどうか、つまり、画面に表示されるか、バックグラウンドで実行されています。 iOSの最近の更新により、開発者がバックグラウンドでデータにアクセスする機能制限されました 。たとえば、バックグラウンドコレクションを効果的に制限できるようになる前に、Uberはタクシーにいなくてもユーザーの動き追跡できました。

バックグラウンドで有意義に実行するには、アプリのパブリッシャーがApp Storeに送信されるときに、「 バックグラウンドモード 」のセットでマークを付けることにより、Appleから許可を得る必要があります。これらのバックグラウンドモードは、あるデバイスから別のデバイスにビデオを送信するとき、位置情報の更新を収集するとき、電話として機能するとき、またはBluetoothを使用するときの使用に制限されています。たとえば、これらのモードでは、バックグラウンドでAirPlayを実行したり、Spotifyを常に表示せずに音楽を再生したり、WhatsAppで誰かに電話をかけたり、バックグラウンドで実行したり、Stravaでの実行を追跡したりできます。

The NHS COVID-19 app
NHS COVID-19アプリ

ただし、これらのモードは制限されており、ユーザーはアプリがバックグラウンドで位置情報にアクセスすることを許可するかどうかを尋ねるiPhone通知に慣れている場合があります。ユーザーがこれらの権限を付与した場合でも、電話はこれが正しいことであることの確認を要求し続ける場合あります。

連絡先追跡アプリはBluetooth低エネルギー(BLE)を使用して構築されています。BLEは、簡単に言えば、デバイスがお互いを認識できるようにします。理論的には、アップルの「Bluetooth LEアクセサリを使用する」モードと「Bluetooth LEアクセサリとして機能する」モードがこれに最適であり、バックグラウンドでBLEを使用できます。ただし、これらのモードを使用するバックグラウンドアプリは、既に通信しているBLEデバイス(Bluetoothスマートロックなど)との通信を継続できますが、デバイスをポーリングするブロードキャストのレートを制御することはできませんそれは前に見たことがないこと。これにより、バックグラウンドになると、新しいデバイスの兆候を探したり、それらと意味のある通信を行ったり、特にApple以外のデバイスを識別したりすることが難しくなります。これは、バックグラウンドで継続的に実行する必要がある連絡先トレースアプリの妨げになります。

サービスに関する Appleのドキュメントを引用するには

すべてのサービスUUID [...]は、明示的にスキャンしているiOSデバイスでのみ検出できます。 [...そしてのために]広告しているアプリはバックグラウンドにあり、周辺機器が広告パケットを送信する頻度が減少する可能性があります

トレースの回避策と代替アプローチ

もちろん、これは開発者にとって新たな課題ではありません。開発者は、アプリがバックグラウンドを維持し、制限の 追跡データ収集するための方法を探し求めてきました。これに取り組むためにオープンソースAltBeaconsなどのフレームワークが登場しましたが、デバイスが新しいデバイスを継続的に探している必要がある連絡先の追跡には現実的ではありません。 ABCがオーストラリアで見つけたように、国のCOVIDSafeアプリを見ると、これに対する実用的な解決策はありませんでした。アプリをオーディオプレーヤーとして登録し、音楽を再生させるなど、一時的に役立つ可能性のあるいくつかのエクスプロイトが存在しますが、これらのエクスプロイトやその他のこのエクスプロイトはAppleが嫌いであり、ユーザーに不便をかけ、ほとんど承認をパスしませんApp Store。

一方、AppleはiOS 13.5をリリースする準備をしています。これは現在ベータ版で利用可能です。 Appleは、この方法で追跡するのに有利な独自のシステムに変更を加えることができます。そのようなユーザーのためのFaceIDのサポートなど- 13.5は、より多くの明白な機能を多数ご紹介しますマスクを身に着けている 、またはパスコードを入力するには、少なくとも、より迅速なルート-とのようないくつかのあまり目立たない機能、 ExposureNotificationものだけ接触を可能にフレームワークをアプリのトレースが必要です。もちろん、これは完璧なシステムにはなりません。iPhone6(2015)などのデバイスはiOS 13を実行できないため、すべてのユーザーがこれを利用できるわけではありませんが、Appleのシステムはグローバル標準を使用しています識別子、それを実装する各国はサイロ化された全国データベースを使用します。したがって、ある国からの感染したヨーロッパ人が別のヨーロッパの国からの市民にさらされた場合、彼ら連絡先の追跡を通じてそれ発見することはありません

AppleのCOVID-19 ExposureNotificationは、ここで必要なものに対するソリューションを提供しますが、注意が必要です。最も重要なのは、Appleは、他の人によるテクノロジーの誤用を防ぐために、自分のアプリだけがそれを利用できるようになることを示しています。

では、NHSはCOVID-19アプリでどのようにそれを行うのですか?

それでは、イギリスのNHS COVID-19は、「眠りに落ちる」(技術的には「中断される」)ことなく、バックグラウンドで新しいデバイスを効果的に追跡して、無効にすることができますか。 「NHS COVID-19」アプリのバージョン1.0.1b341を使用したテストから、バックグラウンドで実際に効果的に通信できることがわかります。これは、キープアライブと通知を使用した一連の巧妙な回避策を使用して行われているようです。アプリを強制終了すると、バックグラウンドトレースが停止しますが、代わりに電話の電源をオフにしてから再度オンにすると、バックグラウンドで適切に通信し続けます。この回避策はAppleに反するかもしれないし、そうでないかもしれないが、現時点では公開されておらず、Appleはこれまでに見たアプリのビルドを承認している。

これについては引き続き調査しており、状況が進展するにつれて詳細を公開する予定です。

NHS COVID-19アプリは機密データを保存しますか?

いいえ。このアプリは、賢明なセキュリティ手法を使用して、不必要なデータを保存することなく、非常にうまく組み合わされているようです。アプリのインストールごとに生成されるlinkingIdを中心に展開します。このIDはアプリのインストール後も保持されるため、アンインストールして再インストールしても識別子はリセットされません。

uk.nhs.nhsx.sonarパスの下でiPhone Backup Extractorを使用してアプリのデータを見ると、Google Firebaseに結合された一連のファイルと、アプリの残りの部分の小さなPlist(構成ファイル)のコレクションがあることがわかりますデータ。

Looking at the NHS COVID-19 app’s files in a backup
バックアップでNHS COVID-19アプリのファイルを確認する

ユーザーはCOVID-19を持っていると偽って自己申告できますか?

ユーザーが症状を報告した場合、アプリは、テストを手配するために呼び出す番号と参照コードを提供します。その結果、テスト結果はユーザーの参照コードに関連付けられます。ユーザーが誤って症状を報告した場合、NHSがユーザーのコードと一致するようにテスト結果を更新しなければ確認は行われません。

アプリは位置情報のアクセス許可を要求しますか?

いいえ、違います。

NHSはGoogle APIの使用について一般の人々に誤解を与えましたか?

いいえ。NHSCOVID-19アプリは、データの保存と管理のためにGoogleの業界標準のFirebase APIと深く統合されています。 (NHSは、GoogleまたはAppleの連絡先追跡フレームワークを使用していません。それ以外は、iOS 13.5のリリースまで使用できません。)

アプリはどのサービスと通信しますか?

Androidアプリと同様に、すべてのマテリアルコミュニケーションは、 *.covid19.nhs.ukでホストされているNHSのCOVID19 APIまで実行されます。アプリは、 MicrosoftのAppCenterサービスを使用した結果として他にいくつかの要求を行いますが 、重要なものや機密性の高いものはありません。

NHSワーカーがアプリを使用すると、誤検知が発生しませんか?

このアプリは、医療従事者がPPEを着用している間はデバイスでBluetoothを無効にするように促し、「個人用保護具を着用しているときは、職場でのやり取りをキャプチャしないでください」と述べます。

The NHS COVID-19 app's PPE Bluetooth prompt
NHS COVID-19アプリのPPE Bluetoothプロンプト


NHSのCOVID-19アプリをさらに詳しく見ていきます。その機能性について多くの憶測がありましたが、私たちが見てきたのは、しっかりと構築された安全なアプリです。バックグラウンド追跡は機能しているように見えますが、これが引き続き効果的であるかどうかについてはAppleの管理下にあります。結果として、COVID-19に対するイギリスの対応の有効性は今やAppleの管理下にある。

それを単独で使用するか、Appleのフレームワークを使用するかの選択は、困難なものでした。 Appleの先導に従うことは、議論の余地のない選択だったでしょう。ただし、iOS 13.5はまだ公開されていませんが、英国のアプリは明日ベータ版でリリースされます。その後のアップデートで英国がAppleをフォローするのを止めることは何もありません。そのレンズを通して見る—最初にワイト島で裁判を送ってみませんか?


アプリはどのようにしてバックグラウンドで効果を維持しますか?

アプリの動作を維持するための詳細について受け取った質問に答えるために、この回答0925 BST、5月7日を追加しました。 NHSXは、ここでより良い結果を得るためにいくつかのスマートな手法を使用しています。

SunはアプリがプライベートBluetooth APIを使用していることを昨夜報告しましたが、これの兆候は見られず、彼らはこの主張を撤回するために彼らの話を修正しました。 NHS COVID-19アプリはiOS内のパブリックBluetooth APIを使用しており、特別な権限を利用していないようです。代わりに、いくつかの巧妙なテクニックがあります。

最初の手法は、一時停止中のアプリに対するiOSのBluetooth動作に対応するものです。アプリが一時停止されたときにアプリが新しいデバイスをスキャンする方法をAppleが変更したことを指摘しました。一時停止されたアプリは、これまでに見たことのないデバイスを正しく認識できません。上で書いたように、「新しいデバイスの兆候を探すこと、それらと有意義に通信すること、特にApple以外のデバイスを識別すること」は困難です。

NHSXは、Apple以外のデバイスの課題に反対の方法で取り組みました。この点でiOSの動作に影響を与えることができないことに気づき、Androidアプリに巧妙なものを組み込んで、バックグラウンドのアプリであるApple固有の制限されたメッセージを認識しましたiOSデバイスで送信されます。これにより、AndroidデバイスにiOSデバイスと通信できる十分な情報が提供され、通信可能な状態に復帰します。

iOSがない状況は少し異なります。 NHS COVID-19アプリ一定期間バックグラウンドに置かれたときに静かになることができるしきい値があり、デバイスログにこの例が示されます。この場合、アプリはバックグラウンドにプッシュされていますが、スキャン(技術的には「ブロードキャスト」)を1時間半以上継続できます。 Bluetoothを使用する他のアプリを含む、電話での他のイベントはこれを拡張できます。

セッションuk.nhs.nhsx.sonar-peripheral-11919-319は6240秒間バックグラウンドでアドバタイズできます

結果として、「X時間が経過すると、アプリはiOS間通信で無効になります」とは言えません。アプリが存続しなければならない寛大な可変ウィンドウがあり、 Bluetoothの他の使用、Androidデバイスの存在、通知の効果など、このウィンドウが拡張されるのをトリガーします。

システムがメモリ不足で実行されている場合など、iOSがバックグラウンドアプリを完全に一時停止しようとする一般的ではない状況がいくつかあります。これが発生すると、サービスの信頼性が影響を受けます。アプリは、ユーザーにアプリを再度開くように求めるプッシュ通知をトリガーしてこれに対処しようとしますが、デバイスの状態によっては、これが常に機能するとは限りません。テストでは、アプリを実行したiOSデバイスは、バックグラウンドサービスを夜通し実行し続けました。


アプリは個人データを収集して私の身元を明らかにしますか?

アプリのデータの収集と送信に関して受け取った質問に回答するために、この回答1145 BST、5月7日を追加しました

iOSアプリがキャプチャするデータはごくわずかlinkingId 。すべてのデータは、 linkingIdです。人が症状を報告し、そのIDを使用してNHSでテストを手配した場合にのみ、その人と結びつくことができます。

IDに対してコード化されている肯定的なテスト結果は、事実上、トレースアラームをオフにするものです。次に問題となるのは、NHSがテスト時に収集した個人の詳細情報をそのID と一緒に一元的に保存するかどうかです。これはアプリが機能するために必要ではなく、アプリに固有のものではありません。以前に書いたように、アプリはユーザーの郵便番号の最初の数桁を超える位置データにアクセスできません(これらはセットアップ時にユーザーが入力し、検証されません)。

ここでの問題は、アプリが何を格納するかということではありません。テストを予約するときにNHSが要求する情報と、その情報の格納方法についてです。

ユーザーが症状を報告し、テストを手配しない(またはIDを提供せずにテストを手配する)場合、2つのタイプの情報をリンクする方法はまったくありません。もちろん、この極端なシナリオでは、ユーザーがCOVID-19を持っている場合にアプリがアラートを出すことも防ぎます。

これについては引き続き調査しており、状況が進展するにつれて詳細を公開する予定です。

コメント (1)

I am on IOW. The app does require Location Services. Very surprised as every description, including yours, says that it does not

Hi Richard, thanks for your comment! The way the app gets access to Bluetooth on Android is confusing; its request for access makes it appear it's also requesting location access. We detail what's going on with that here — in short, it's a limitation of Android that appears misleading.


この記事を改善できますか?

ユーザーからの連絡をお待ちしています。電子メールを送信したり、コメントを残したり、ツイートしたりしないでください。 @reincubate?

© 2008 - 2020 Reincubate Ltd. 無断複写・転載を禁じます。 イングランドとウェールズに登録 #5189175, VAT GB151788978. ReincubateおよびCamoは商標です。 個人情報保護方針 & 条項. マルチファクタ認証をお勧めします。 ロンドンで愛と建てられた。