Earlier quoted context omitted.
on ios if one does not grant addressbook permission for the app: * telegram uses an "internal" contact list for which one can add contacts via the desktop client and then works as expected. * whatsapp let's the user freely initiate contact by phone numbers, but then only shows the number (no name). don't know about signal.
WhatsApp on iOS cripples user experience without access to OS contact list. You cannot create groups, and cannot initiate a chat with anyone, even by phone number. It works if someone else messages you first or adds you to a group.
Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
131–140 of 206 posts
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#132Every time I open the Snapchat Android app it prompts me with a Snapchat-styled (not the system) dialog to share my contacts. Every time I hit "Don't allow". Every time it prompts me again. This is an inexcusable dark pattern. Two things need to happen: 1. The operating system needs to provide a "screw you, never" option for any permissions. 2. We as engineers need to say "screw you, never" to requests to implement b…
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#133There needs to be two lists of contacts. One which I allow to be shared with apps And another which are my contacts I use with my dialer. People don't need their messenger apps knowing the phone number of their doctor
It would be much smarter if your contacts could chose to allow you to share or not share their details.
I feel it would rather be better to disconnect the more static portions of a contact (in this case the phone number) from the contact on the chat network, and use something a bit more transient. Like an email address.
And while yes, primary email addresses are even more static to our identity then phone numbers, having the option of using a single address for each chat network would disconnect this contact graph somewhat.
Going further, if each platform (iOS/Android) would have a more granular portions of the contact queryable rather than handing over the whole contact, the applications could simply just request the "chat network identity" portion of the contact (never to receive the phone number, country, home address etc etc)
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#134Every time I open the Snapchat Android app it prompts me with a Snapchat-styled (not the system) dialog to share my contacts. Every time I hit "Don't allow". Every time it prompts me again. This is an inexcusable dark pattern. Two things need to happen: 1. The operating system needs to provide a "screw you, never" option for any permissions. 2. We as engineers need to say "screw you, never" to requests to implement b…
The issue is that Snapchat (in your case, as I don't have this happen on v11.23.3.36) is told that they wont get the permission and wont be able to ask for it either.
And so they perform their own inhouse permission request to you.
There is nothing that can be done from the system's point of view for that.
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#135The authors have an implementation of an improvement on these messengers' contact discovery algorithms at https://contact-discovery.github.io/
[1] https://eprint.iacr.org/2019/517
[2] This would do partial hash matching against a database on the server (similar to HIBP) and then do an interactive session with each of the matches, basically alternating sending the next binary bit of the phone number until either party gets it wrong or the value fully matched. The todo is to check whether there are parameters that make it both scale and protect privacy.
[3] https://dro.pm/a.webm/preview (link works for 18 hours after posting) or if you've already accepted the Google terms of service: https://www.youtube.com/watch?v=4vgKHmNaAAw
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#136Earlier quoted context omitted.
Why would an app developer ever think their own app should use the method reserved for untrustworthy apps? All incentives suggest the developer should prevent using the app without full permissions being given (basically force the user into giving permission) and only implement the first method.
Because it would be easier for the users and allow some customization you can't otherwise have? Sure it can be abused, but there are also legit use cases
As Android developers, we should only be given one pipe to consume from. The system should then present the user with the ability to choose if that pipe for this particular application is going to be:
"All contacts" / "A subset of contacts" / "No contacts
And even better yet just "A subset of the values for a subset of contacts"
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#137Every time I open the Snapchat Android app it prompts me with a Snapchat-styled (not the system) dialog to share my contacts. Every time I hit "Don't allow". Every time it prompts me again. This is an inexcusable dark pattern. Two things need to happen: 1. The operating system needs to provide a "screw you, never" option for any permissions. 2. We as engineers need to say "screw you, never" to requests to implement b…
The "screw you, never" option is to delete your Snapchat and Venmo accounts, and delete those apps from your device. This is what I did.
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#138Earlier quoted context omitted.
They can just lie to the old apps. Tell them they're getting the full list when the API is called.
Privacy Guard in Cyanogenmod used to do this I think, at least to fake the list to be empty. It somehow still broke a tiny number of apps (unintentionally, i.e. the app owners didn't purposefully add code to annoy those users) so there seems to have been some flaw between 'empty list with permission granted' and 'empty list with permission not granted'. Regardless, I'm not sure why this didn't become mainline Android…
Why they didn't do this by default is anyone's guess. Maybe they like app devs more than users. More technology should lie on users' behalf.
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#139There needs to be two lists of contacts. One which I allow to be shared with apps And another which are my contacts I use with my dialer. People don't need their messenger apps knowing the phone number of their doctor
In time I expect all OSes (mobile and desktop) will provide a "give false data" option. So Sandboxed+false inputs, sort of a digital Descartes deceiver. Because you know the slimy app developers will refuse to work if you don't hand over your full contact list. and people will just accept that. So the end game is a completely adversarial relationship, even on your own device.
How much time? This has been a thing in one form or another since j2me. Some j2me platforms actually supported this kind of behavior, but that was all lost once Android and iOS came along. Same with fine-grained permissions over network access (eg, user having complete control over what networks/etc an app can access).
We /had/ all of this in the days of BlackBerry, and lost it. Nobody wants to give it back now.
Re: Large-Scale Abuse of Contact Discovery in Mobile Messengers [pdf]
#140Earlier quoted context omitted.
Matrix tools like Element is decentralised which is preferred, wire is not. The company keeps a list of all the users you contact until you delete your account. Source: https://archive.fo/ARZe4#im
It is federated, not decentralized. You need to use a server, which will have access to your contacts and the rest of the metadata such as how often you talk to them etc (and all message content that is not E2EE). You are only safe from third party if both you and people you talk to run their own servers.
But due to the usability constraints of truly decentralized systems, I think most users are better off with federation.