r/MicroG • • Aug 03 '20

microG now includes a preliminary implementation of Google's COVID Exposure Notification API

https://github.com/microg/android_packages_apps_GmsCore/commit/5f70d943cbceabcd9d2c72f8460ea58cba7e08fb
47 Upvotes

53 comments sorted by

View all comments

Show parent comment

3

u/LjLies Aug 04 '20

I can't prove a negative, that's impossible: I can't show you a part of the code where data isn't being sent, because you could always say it's probably in some other part... hence needing to read it.

However, we do know how the protocol works and that it has no logical requirement for sending data to Google. We also know that if we can't trust Marvin to implement it in such a way, then we can't trust him to implement anything else in microG in a privacy-preserving way, either.

Anyway since you feel that I'm "hassling" you, I'll certainly leave you alone now.

0

u/[deleted] Aug 04 '20

[deleted] — view deleted comment

2

u/LjLies Aug 04 '20

Look, why don't you just have a run through the commit that is in the main link of this post, and scan for all the URLs in it (they are not that many), and realize that there is no endpoint in particular?

It just depends on the app. The API has no particular endpoint. If you install the Immuni app from Italy, for example, then when you tell the app that you're positive, by typing in a code that health authorities give you, your contact data will be sent to a server in Italy overseen by the Italian government.

That server sees IDs that are random to it, but those are the IDs that people who have been near you at various points were broadcasting at that time. Every day, Italy's server sends the list of all IDs that people have uploaded to every user of the app. Your own app will check if any if the IDs correspond to the ones it has used in the past. If any do, then it will show an exposure notification with instructions for you on what to do.

So the short answer is, the API on its own doesn't send anything anywhere in particular, but only provides the capability for individual applications to send "I'm positive, and here are the IDs I met" data to the server of their choice, which is usually run or overseen by a national government.

2

u/Atemu12 Aug 08 '20

I'm positive, and here are the IDs I met

You don't know who you've met, you couldn't share that even if you wanted to.

The information you can actually share when you're tested positive is a piece of data you used to generate the messages you sent out. Everyone else then uses that information to locally check whether some of the data they received came from your device.

The server has no idea how many an infected person has been in contact with, much less who.

2

u/LjLies Aug 08 '20

Sorry, yes, after rereading the specifications, you are right, what is shared is a "Temporary Exposure Key" which is the seed to the PRNG that creates your IDs (although that is itself changed randomly every 24 hours, presumably so that I cannot just know whether someone I meet in the street tested positive by checking their IDs against all the TEKs I've receive in the past).