살아 남기 : 백그라운드 추적 및 NHS COVID-19 앱
- NHS COVID-19 앱은 호주 COVIDSafe 앱과 달리 iOS 기기에서 백그라운드에서 실행할 때 올바르게 작동하는 것으로 보입니다.
- 이 앱은 사용자에게 참조 코드가있는 증상을 제공하여 잘못된 보고서를 방지합니다.이 코드는 조치를 취하기 전에 공식 테스트 결과와 연결
- NHS COVID-19는 PPE를 착용하는 동안 의료 종사자에게 장치에서 Bluetooth를 끄도록 지시합니다.
- 5 월 7 일 업데이트 0925 BST :“앱이 백그라운드에서 효과적으로 유지되는 방법은 무엇입니까?”를 추가했습니다. 아래 섹션, Android 기기와 통신 할 때 앱이 어떻게 살아남는지를 설명하고 iOS-iOS 통신에 대한 몇 가지 과제와 기술을 다루고 있습니다.
- 업데이트 1145 BST 5 월 7 일 : "앱이 개인 데이터를 수집하고 내 신원을 공개합니까?"를 추가했습니다. 아래 섹션.
앱이 화면에 표시되지 않을 때 연락처 추적 문제
앱 개발자는 앱이 사용자 기기의 중앙에 있지 않을 때 앱을 "활성화"상태로 유지할 수있는 옵션이 거의 없습니다. Apple은 이러한 옵션을 신중하게 관리하여 앱이 사용자 개인 정보를 침해하거나 사용자 배터리를 과도하게 사용하지 않도록합니다. 특히 앱에 포커스 가 있는지 여부, 즉 구별이 가능합니다. 화면에 표시되거나 배경에서 실행 중입니다. 최근 iOS 업데이트로 인해 개발자가 백그라운드에있는 동안 데이터에 액세스 할 수있는 능력 이 제한 되었습니다. 예를 들어, 백그라운드 수집을 효과적으로 제한하기 전에 Uber는 운전실에 있지 않아도 사용자의 움직임 을 추적 할 수있었습니다.
백그라운드에서 의미있는 의미로 실행하려면 앱의 게시자가 App Store에 제출할 때 " Background Modes "로 표시하여 Apple의 허가를 받아야합니다. 이러한 백그라운드 모드는 한 장치에서 다른 장치로 비디오를 전송할 때, 위치 업데이트를 수집하거나, 전화로 작동하거나, Bluetooth를 사용할 때 사용하기 위해 제한됩니다. 예를 들어, 이러한 모드는 휴대 전화가 백그라운드에서 AirPlay를 실행하고, Spotify가 항상 표시되지 않은 상태에서 음악을 재생하고, WhatsApp을 사용하여 누군가에게 전화를 걸고, 백그라운드에 놓거나 Strava에서 달리기를 추적하는 모드입니다.
그러나 이러한 모드는 제한되어 있으며 사용자는 백그라운드에서 앱이 사용자의 위치에 액세스 할 수 있는지 묻는 iPhone 알림에 익숙 할 수 있습니다. 사용자가 이러한 권한을 부여하더라도 전화기는 이것이 옳은 일이라는 확인 을 계속 요청할 수 있습니다.
컨택트 추적 앱은 간단히 BLE (Bluetooth Low-Energy)를 사용하여 구축되므로 장치가 서로를 인식 할 수 있습니다. 이론적으로 Apple의 "Bluetooth LE 액세서리 사용"및 "Bluetooth LE 액세서리로 작동"모드가 이상적이며 백그라운드에서 BLE를 사용할 수 있습니다. 그러나 이러한 모드를 사용하는 백그라운드 응용 프로그램은 이미 통신중인 BLE 장치 (예 : Bluetooth 스마트 잠금)와 계속 통신 할 수 있지만 장치를 폴링하기위한 브로드 캐스트 속도를 제어 할 수는 없습니다. 전에 보지 못한 것. 배경 지식이 있으면 새로운 기기의 표시를 찾고, 의미있게 통신하고, 특히 Apple 이외의 기기를 식별하기가 더 어려워집니다. 오히려 백그라운드에서 지속적으로 실행되어야하는 추적 앱과의 접촉을 방해합니다.
모든 서비스 UUID [...]는 명시 적으로 스캔하는 iOS 장치에서만 검색 할 수 있습니다. 광고하는 앱이 백그라운드에 있고 주변 장치가 광고 패킷을 보내는 빈도가 감소 할 수 있습니다.
추적을위한 대안 및 대안
물론 이것은 개발자에게 새로운 도전이 아닙니다. 개발자들은 오랫동안 앱이 백그라운드를 유지하고 데이터를 추적 하는 제한을 수집하는 방법을 찾고있었습니다. 오픈 소스 AltBeacon 과 같은 프레임 워크는이를 해결하기 위해 등장했으며, 장치가 지속적으로 새로운 장치를 찾아야하는 접촉 추적에는 적합하지 않습니다. 호주에서 ABC가 발견 한 것처럼, 국가 COVIDSafe 앱을 볼 때 실용적인 해결책은 없었습니다. 응용 프로그램을 오디오 플레이어로 등록하고 음악을 재생하는 것과 같이 일시적으로 유용 할 수있는 몇 가지 악용이 존재하지만 이러한 악용 및 기타 악용은 Apple에 의해 생겨난 것이며 사용자에게 불편을 끼쳐 드려 죄송합니다. 앱 스토어.
그동안 Apple은 현재 베타 버전으로 제공되는 iOS 13.5 출시를 준비하고 있습니다. Apple은 이러한 방식으로 추적하기에 유리한 자체 시스템을 변경할 수 있습니다. 13.5는 마스크를 착용 한 사용자 를 위한 FaceID 지원 또는 패스 코드 입력을위한보다 빠른 경로와 같은보다 명백한 여러 기능과 컨택을 수행 할 수있는 ExposureNotification
프레임 워크와 같은 덜 눈에 띄는 기능을 소개합니다. 추적 앱이 필요합니다. 물론 완벽한 시스템은 아닙니다 .iPhone 6 (2015)과 같은 장치는 iOS 13을 실행할 수 없으므로 모든 사용자가이를 활용할 수있는 것은 아닙니다. 애플의 시스템은 글로벌 표준을 사용하지만 식별자,이를 구현하는 각 국가는 개별 국가 데이터베이스를 사용합니다. 따라서 한 국가의 감염된 유럽인이 다른 유럽 국가의 시민에게 노출되면 연락 추적을 통해 발견하지 못합니다 .
Apple의 COVID-19 ExposureNotification
은 여기에 필요한 솔루션을 제공하지만주의해야 할 점이 있습니다. 가장 중요한 것은 Apple은 다른 사람이 기술을 오용하는 것을 막기 위해 자신의 앱만 사용할 수 있다는 점을 지적했습니다.
NHS는 COVID-19 앱을 어떻게 사용합니까?
그러면 영국 NHS COVID-19는“잠들지”않고 (기술적으로“일시 중단”) 효과가없는 백그라운드에서 새로운 장치를 효과적으로 추적 할 수 있습니까? “NHS COVID-19”앱 버전 1.0.1b341
을 사용한 테스트에서 실제로 백그라운드에서 효과적으로 통신하는 것을 볼 수 있습니다. 이것은 keepalives와 알림을 사용하여 일련의 영리한 해결 방법을 사용하여 수행 된 것으로 보입니다. 앱을 강제 종료하면 백그라운드 추적이 중지되지만 대신 휴대 전화의 전원을 껐다가 다시 켜면 백그라운드에서 계속 제대로 통신합니다. 이 해결 방법은 Apple에 해를 끼치거나 떨어 뜨리지 않을 수도 있지만 현재 공개되지 않았으며 Apple은 지금까지 본 앱 빌드를 승인했습니다.
우리는 이것을 계속 조사하고 있으며, 상황이 발전함에 따라 더 자세하게 출판 할 것입니다.
NHS COVID-19 앱이 민감한 데이터를 저장합니까?
아니요.이 앱은 합리적 보안 관행을 사용하고 불필요한 데이터를 저장하지 않고 잘 정리 된 것 같습니다. 앱을 설치할 때마다 생성되는 linkingId
를 중심으로 진행됩니다. 이 ID는 앱을 설치하는 동안 유지되므로 제거하고 다시 설치해도 식별자가 재설정되지 않습니다.
uk.nhs.nhsx.sonar
경로에서 iPhone Backup Extractor를 사용하여 앱의 데이터를 살펴보면 Google Firebase에 연결된 일련의 파일과 앱의 나머지 부분에 대한 작은 Plist (구성 파일) 모음이 있음을 알 수 있습니다. 데이터.
사용자가 COVID-19를 가지고 있다고 잘못보고 할 수 있습니까?
사용자가 증상을보고하면 앱은 참조 코드와 함께 테스트를 주선하기 위해 전화 번호를 제공합니다. 아이디어는 테스트 결과가 사용자의 참조 코드와 연관되어 있다는 것입니다. 사용자가 증상을 잘못보고하면 NHS가 사용자의 코드와 일치하도록 테스트 결과를 업데이트하지 않으면 확인이 이루어지지 않습니다.
앱이 위치 권한을 요청합니까?
아니 그렇지 않아.
NHS는 대중에게 Google API 사용에 대해 오도 했습니까?
아니요. NHS COVID-19 앱은 데이터 저장 및 관리를 위해 Google의 업계 표준 Firebase API 와 긴밀하게 통합되어 있습니다. NHS는 Google 또는 Apple의 연락처 추적 프레임 워크를 사용하지 않습니다. 다른 것 외에는 iOS 13.5가 출시 될 때까지 사용할 수 없습니다.
앱이 어떤 서비스와 통신합니까?
Android 앱과 마찬가지로 모든 자재 커뮤니케이션은 *.covid19.nhs.uk
에서 호스팅되는 NHS의 COVID19 API를 통해 실행됩니다. 이 앱은 Microsoft의 AppCenter 서비스 사용의 결과로 몇 가지 다른 요청을하지만 중요하거나 민감한 요청은 없습니다.
NHS 직원이 앱을 사용하면 오 탐지로 이어지지 않습니까?
PPE를 착용 한 상태에서 의료 종사자에게 장치에서 Bluetooth를 비활성화하라는 메시지가 표시됩니다.
NHS의 COVID-19 앱에 대해 자세히 알아 보게되어 기쁩니다. 기능에 대해 많은 추측이 있었지만 우리가 본 것은 잘 구축되고 안전한 앱입니다. 백그라운드 추적은 여전히 효과적 일지 여부에 대한 Apple의 통제력이 남아 있지만 여전히 효과적입니다. 결과적으로, COVID-19에 대한 영국의 대응 효과는 이제 애플의 통제에 달려 있습니다.
혼자 가거나 Apple의 프레임 워크를 사용하는 것은 어려운 일이었습니다. 애플의 주도권을 따르는 것은 논란의 여지가없는 선택이었을 것이다. 그러나 iOS 13.5는 아직 출시되지 않은 반면 영국 앱은 내일 베타 버전으로 출시되며 영국이 후속 업데이트에서 애플을 따라 이동하는 것을 막을 수는 없습니다. 그 렌즈를 통해 본 — 아일 오브와이트에서 시험을 먼저 보내지 않겠습니까?
앱이 백그라운드에서 어떻게 효과적으로 유지됩니까?
5 월 7 일에이 답변 0925 BST를 추가하여 살아있는 앱의 특성에 대한 질문에 답변했습니다. NHSX는 몇 가지 스마트 한 기술을 사용하여 더 나은 결과를 얻었습니다.
썬 은 지난 밤이 앱이 프라이빗 블루투스 API를 사용한다고 보고 했지만, 이에 대한 조짐은 보이지 않았으며,이 주장을 철회하기 위해 그들의 이야기를 수정했다. NHS COVID-19 앱은 iOS에서 공개 블루투스 API를 사용하며 특별한 권한을 활용하지 않는 것으로 보입니다. 대신 몇 가지 영리한 기술이 있습니다.
첫 번째 기술은 일시 중단 된 앱에 대한 iOS의 Bluetooth 동작에 대한 응답입니다. Apple은 일시 중단 된 경우 앱이 새 장치를 검색 할 수있는 방법을 변경합니다. 일시 중단 된 앱은 이전에 보지 못한 장치를 올바르게 인식 할 수 없습니다. 위에서 언급했듯이“새로운 장치의 표시를 찾고, 의미있게 통신하고, 특히 Apple 이외의 장치를 식별하는 것이 더 어렵습니다.”
NHSX는 Apple 이외의 기기 문제에 대한 다른 방법으로 접근했습니다 .iOS가 이와 관련하여 수행중인 작업에 영향을 줄 수 없다는 것을 깨닫고 Android 앱에 배경을 사용하는 제한된 Apple 관련 메시지를 인식하기 위해 똑똑한 물건을 만들었습니다. iOS 기기에서 전송합니다. 이를 통해 Android 기기는 iOS 기기와 통신 할 수있는 충분한 정보를 제공하여 다시 통신 할 수있는 상태로 깨 웁니다.
iOS가없는 상황은 약간 다릅니다. NHS COVID-19 앱이 일정 시간 동안 백그라운드에 남아있을 때 조용한 상태가 될 수 있는 임계 값이 있으며 장치 로그에 이에 대한 예가 표시됩니다. 이 경우 앱이 백그라운드로 푸시되었지만 한 시간 반 동안 계속 스캔 (기술적으로 "브로드 캐스트") 할 수 있습니다. Bluetooth를 사용하는 다른 앱을 포함하여 전화기의 다른 이벤트가이를 확장 할 수 있습니다.
세션 uk.nhs.nhsx.sonar-peripheral-11919-319는 6240 초 동안 백그라운드에서 광고 할 수 있습니다.
결과적으로, "X 기간 후 iOS-iOS 통신에서 앱이 효과가 없게 될 것"이라고 말할 수는 없습니다. 다른 블루투스 사용, Android 기기의 존재 및 알림의 효과를 포함하여이 창을 확장시킵니다.
시스템의 메모리가 부족한 경우와 같이 iOS가 백그라운드 앱을 완전히 일시 중지하려고 시도하는 경우는 드물다. 이 경우 서비스의 안정성에 영향을 미칩니다. 앱은 사용자에게 앱을 다시 열도록 요청하는 푸시 알림을 트리거하여이 문제를 해결하려고 시도하지만 장치의 상태에 따라 항상 작동하지는 않습니다. 테스트에서 앱을 실행 한 iOS 기기는 백그라운드 서비스를 밤새 계속 실행했습니다.
앱이 개인 데이터를 수집하고 내 신원을 공개합니까?
앱의 데이터 수집 및 전송에 대한 질문에 답변하기 위해이 답변 1145 BST, 5 월 7 일을 추가했습니다.
iOS 앱은 데이터를 거의 캡처하지 linkingId
. 모든 것이 linkingId
입니다. 증상을보고하고 해당 ID를 사용하여 NHS에 대한 시험을 준비한 경우에만 사람에게 연결될 수 있습니다.
ID에 대해 코딩 된 긍정적 인 테스트 결과는 추적 경보를 효과적으로 설정하는 것입니다. 문제는 NHS가 시험 당시 수집 된 개인 정보를 해당 ID 와 함께 중앙에 저장할지 여부입니다. 앱이 작동하는 데 필요하지 않으며 앱에 고유하지 않습니다. 앞에서 언급했듯이 앱은 사용자 우편 번호의 처음 몇 자리 숫자 이상으로 위치 데이터에 액세스 할 수 없습니다 (설정시 사용자가 입력하고 유효성을 검사하지는 않음).
여기서 질문은 앱이 무엇을 저장하는지에 관한 것이 아니라 테스트를 예약 할 때 NHS가 요청하는 정보와 해당 정보가 저장되는 방법에 관한 것입니다.
사용자가 증상을보고하고 시험을 주선하지 않으면 (또는 ID를 제공하지 않고 시험을 주선하는 경우) 두 가지 유형의 정보를 연결할 방법이 절대 없을 것입니다. 물론이 극단적 인 시나리오에서는 사용자에게 COVID-19가있는 경우 앱이 경고하지 못하게됩니다.
우리는 이것을 계속 조사하고 있으며, 상황이 발전함에 따라 더 자세하게 출판 할 것입니다.
으로 richard atterbury
I am on IOW. The app does require Location Services. Very surprised as every description, including yours, says that it does not
답장하다: Reincubate Support
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.