-
-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid large download and informing the server of the list of installed application #64
Comments
Only installed applications analysed by Exodus and installed from Google Play download report and may be known by the server. Each time a random number of apps are add to make some noise for the server. What you propose is good for privacy, for the processing time this will be long. And the large amount of data will always be there in some times if it's not already there. Each new report (new analysis on a new version of an app) add an extra amount of data and download many report not related to the user make the amount of useless data grow significantly. Our app is not for tech guy that fully understand how to configure exactly their privacy so the length configuration for the api is not in my opinion an option to add to the app.The app should stay very simple for all users. And in fact, i think that if we really want to know what app you have on your phone, this not protect as much as you want. We can guess what you have with the hash + the probability of the app you may have install by using the download number of these apps and with the other app you may have downloaded. it will not be as accurate as we can do if we want, and we don't want to know what you have on your phone. |
In both cases, "the probability of the app you may have install" can be used. So it's a real gain in terms of privacy With my proposal, if necessary, the client can send fake beginning of hash to confuse the server even more. And when I say "the client", I am not talking only of this android client, but anybody who wants to build one. It's better to offer the possibility, but I agree, for this android app, we don't need to show the configuration "length of the hash", we just need to choose one that both respect the privacy and avoid downloading the entire database! |
This seems to be a nice model to me (close to some differential privacy if I remember well my lectures) Maybe the easiest way of deciding would be to create a nice table with all the possibilities so we can decide ? |
Side question, is there a risk that hashes are not evenly spread, leading to some specific ones failing on the privacy (eg. |
That's what I want to check with the current DB. Maybe tonight. |
OR, we could make it so the entire exodus database gets uploaded to multiple file hosts every month, and then offer the option to download it locally to the users who As of writing this, exodus says that it has "261180 reports for 127692 applications". An empty report is 394 characters, 394 x 261180 = 102,904,920 bytes = 98.1377792 Mebibytes #85 is also a valid option that doesn't require any servers, besides the initial download of the code and network signatures. |
Today the Application fetch two things:
The list of all applications known by exodus:
exodus-android-app/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/manager/NetworkManager.java
Line 216 in 5c7e021
https://reports.exodus-privacy.eu.org/api/applications
For each installed application on the phone, the list of reports:
exodus-android-app/app/src/main/java/org/eu/exodus_privacy/exodusprivacy/manager/NetworkManager.java
Line 271 in 5c7e021
https://reports.exodus-privacy.eu.org/api/search/org.eu.exodus_privacy.exodusprivacy
This has two drawback:
These two dowload could be combined, to reduce the size of the download while protecting the privacy:
A single entry point:
https://reports.exodus-privacy.eu.org/api/search/<SHA256>
Where
<SHA256>
is the beginning (4 char for example) of the SHA256 of the app id (org.eu.exodus_privacy.exodusprivacy)The server answer with all application (with reports) that match the begining of that checksum:
The application could decide the length of the beginning of the checksum, to balance download size vs privacy: a length of 1 will strongly protect the privacy but will download 3% of the database. The full length will download only one application but will reveal it to the server. A length corresponding to 10-100 applications could be reasonable, and configurable by the user.
The text was updated successfully, but these errors were encountered: