ahupowerdns / covid-backend

Backend for privacy preserving corona contact tracing
25 stars 1 forks source link

Alternative methods to implement a contact tracing protocol #13

Open spycrowsoft opened 4 years ago

spycrowsoft commented 4 years ago

Suppose that the standard proposed by Apple and Google is not released, or will not be released in time. Could this protocol be implemented without their support?

Short answer: Yes, but we'd still have some problems on iOS.

Long answer: Yes, we can use the iBeacon protocol and set the UUIDs to the relevant RPIs and implement their proposed protocol this way. This means the app would be responsible for updating UUIDs every 10 to 20 minutes. It's a hassle but it can be done. It's also interoperable between both platforms.

For android systems this library exists to implement iBeacon support: https://github.com/AltBeacon/android-beacon-library

I have done some very basic preliminary testing with the Beacon Simulator Android-app, which uses this library. I've also tested against an iPhone 7 with this app: Beacon Simulator: https://apps.apple.com/us/app/beacon-simulator/id1098267039

Another issue we run into, is that a lot of testing is required, because if we want to get effective distance measurements, we need to add radio-calibration to this file in the android beacon library.

This requires a party with a lab with RF-testing equipment (TNO, NXP and ASML for example) and a party which has a large variety of common types of android smartphones (like an app-development company), to bundle their efforts and get this done.

Since this is a vital part of getting accurate distance-measurements and this effort is probably beyond the scope of what a single app-development company can achieve, it seems to be better to wait for the official release of the Apple/Google protocol.

But it's good to know that we can do this without their support if this is required.

vhiribarren commented 4 years ago

Author of Beacon Simulator here: it does not use the AltBeacon library to scan & broadcast. It is only used to parse Eddystone URL format.

I do not want to work on it anymore, but please note the source code is free: https://github.com/vhiribarren/beacon-simulator-android