Client-side filtering of private data is a bad idea
mjg59.dreamwidth.org
mjg59.dreamwidth.org
1) that it is effectively impossible to reverse engineer binary code and understand it (particularly so if it is obfuscated in any way at all, as the security claims made by the people who develop such tools are often absurd).
2) that it is additionally possible to prevent the hacker from getting access to even their binary, as it is encrypted by the app store and might require jailbreaking the device; either way, it is akin to piracy and thereby illegal.
3) that it is possible to add further mitigations to prevent people from analyzing your app, such as certificate pinning for all of your network requests, or trying to verify the device is "authentic" and not running a jailbroken OS.
Now, "obviously", all these beliefs are all false; but the problem is that, in some sense, they also are not entirely wrong, and so they stick: I am extremely competent at reverse engineering, but I am going to groan given the task of reverse engineering an iPhone app if I find myself forced by certificate pinning to work around some obfuscated network checks after stealing a copy of the app using a jailbroken phone... like, these mitigations actually do make it a lot more annoying for me to do any of this work, and I certainly am not going to that much effort in a casual drive-by fashion.
Meanwhile, client-side security is also a thing the industry relies on in other ways: developers want to limit denial of service attacks or limit piracy of their product or limit external access to private user data stored on the device, and these techniques that "don't work" can certainly raise the bar for an attacker, and so aren't considered dumb in the general case.
I think the real core education is that people don't understand how to determine what kind of credential should be required to access what kind of information, and that different pieces of interoperating software might all possess different credentials, and the limits on those credentials need to be honored.
This also comes up with things like with tokens for various services: people will sign up for a service, and then store the with token in the app so they can make API calls from the client... but now, I have their auth token, right? They don't get that, and part of the reason is that a lot of services kind of encourage that model. And like, with your OpenAI key, at least the damage is probably "just" monetary; but, if it is your AWS key, suddenly it is super serious.
So, yeah: I think developers will, in fact, say stuff like client-side filtering "isn't that bad", or that "it might be justifiable under some circumstances"; and they might even be sort of almost right at times for certain kinds of checks (not with other user's data, of course ;P) under certain kinds of tradeoffs... but then misapply the boundary in a way that is flat-out incorrect.
Now, is this article the article that would explain this or convince the developer that these cases are wrong? I don't know... it isn't even clear to me that that's their audience, as opposed to being more of a portfolio piece that the author does understand this issue and thereby is competent at one or both of security engineering or website development (and, FWIW, I think it is sufficiently successful at that).
This has the benefit that it allows you to give clear and timely feedback to your client and potentially to your users.
As for the problem outlined here: If you can reach any private, for-your-users-eyes-only endpoint without authentification you suck at what you do and you should probably change into a profession where you can deal less damage.
You cannot rely on anything from the client.
In systems with frontend UX validation and backend functional validation, errors from the backend tend to be aimed at devs. I.e. might expose the reflex that's known good over having nice words for the approximate test done in the frontend.
The article is mostly about the resulting security by obscurity being broken.
This is just neglect rather than a technical problem, any decent server implementation lets you authorise on a per field basis.
Incredibly common in my experience in the security field.
So they’ve removed the server from the filtering process but made the privacy implications far worse.
The idea that dating app could prevent your preferences from being collected seems unlikely to me too. If people are posting profiles and messaging each other on a platform, that platform is going to have no problem learning what their interests are. They don't need to know what you're searching for, as long as they know who you're finding.
But what you don't expect is that any other user of that service has access to your data. That is a completely different level of privacy breach. And it's also one that people using a dating app in particular have much more reason to worry about than the more nebulous threat from above. Especially when they're not out in their community about their romantic and/or sexual preferences, and are told by the app that it hides this information.
These expectations are very different in the desktop computer world. When I use a website or a program, neither the various people who made the components in my computer nor the people who made my OS learn anything at all.
So it's reasonable, at least on the surface, for some people to develop similar expectations on eg mobile devices.
If you're running a Linux, you're probably much more protected, but even then, on Ubuntu and most other popular distros, you probably download all or most of your apps with apt or rpm from their own official repos, so they probably can get a pretty good idea of what you're running.
The situation is generally better than on mobile, but unless you're taking significant pains, you're still a pretty open book to your OS manufacturer. Whether they're reading this book or not is a separate matter.
Yes, but not when nor whether you are actually using the apps you have installed. Nor any data created at runtime.
Yes, these groups might overlap, particularly the users and those with unauthorized access to the service provider's devices and data (as demonstrated in the article). But identifying this as a concern I don't think is much of a revelation. Like yeah, unauthorized access is a privacy concern, who woulda known.
The people who use dating apps want to share their information with some people, and not others.
BTW if some user of a dating service is concerned about his/her own searches... More than beings scared about "potential client-side leaks other dating service user might harvest" try to concentrate on how much personal dating interests the service can harvest and eventually re-sell, if not "the service" just some working for it and having some side business...
Now, laws in this area are woefully inadequate, even in the best places like Europe's GDPR or California's regulaitons, so in practice I do agree that at the moment shared with a third party == shared with the whole world, to some extent. But this just means we need harsher laws, explicit controls, probably agencies that conduct periodic inspections like the FDA for restaurants etc.
If your car crash onto a school group on a trip you might state "I've try braking and steering but the car does not respond" (for the rare all-by-wire models who start to appear) beside car logs and third party cam you have nothing to prove you are right. That's because the car it's not really yours but under the control of the OEM at a much deeper access than the limited you have. No laws can protect you except mandating FLOSS cars in their owner hands as he/she wish. Modern cars are services on wheels, you are a slave not knowing of your position.
If your emails are on GMail GDPR/HIPAA etc state you have some right, but gives no means to materially verify if Alphabet do not do something from training LLMs to analyses you messages for ads and so on. You are not on their servers and you have no right to inspection their infra. Even if you suspect something and file a complaint a Judge might command Google to share with a third party technician a certain set of infos, but no one can be sure they are true. Even an USA Judge inside USA, so in the same country of Alphabet can't do much to really know what happen on their servers, as you can't know what happen in your CPU, it's a closed source black box.
You can be "sure enough" only in technical terms "hey, my computer is not connected, It's composed of hw from different manufactures, running a FLOSS OS I know, ... maybe my files on it's storage are just mine", "the drive in my pocket it's mine, it can't leak data around being not connected with the rest of the world", but not more. If you give some data to a third party no one can really tell you what happen to your data.
You're speaking from an absurdly low level of trust in instituions. The fact is that banks work, they shield their clients from mass amounts of fraud, and do so reliably over decades. The vast majority of people have never lost a single cent to a bank mistake. Google employees don't have routine access to your emails, and if some group do and use that power and Google gets sued, it will very likely be found out at trial, because most ordinary employees don't perjure themselves to protect colleagues for obvious ilegalities (outside the police, but that's a different discussion). Of course, the chance of actually successfully pursuing a suit against Google is small for a mere mortal, but that's a different issue that has to do with corruption in the system and not a fundamental inability to achieve this.
Since I can't prove unlawful handling of "my" data, I can't complaint because I can't even prove such unlawful use exists. Sometimes, here and there we read some scandals about "this coming out of an LLM", "this coming out from a leak" etc, but there is no real proof.
One of my past banks at a certain point in time have chosen to suppress the RSA OTP for a mobile crapplication that do soft-token and many more, I've sent a classic GDPR Nightmare Letter to them with many detailed complaint, they answer politely:
- we need speaker permissions because you can call customer service from the app, so you can see and act on the screen while talking
- we need camera permissions because there are many QR-based payments systems we support
- we need precise location and location history because with them we can try to prevent potential misuse of the app
- we demand contacts reading and writing to allow you easy transfers, quickly call the right number if you lost your card, ....
Essentially 100% is formally justified BUT the app does not run on an emulator or on rooted phones, there is no source code and formally reverse engineer it is forbidden. So essentially I can't prove they access some sensors and data ONLY for the purpose they declare or not. If I can't prove illicit use I can't use my country laws about my privacy.
The article is exclusively(!) about the technological enforcement of that, not legal, so there really wasn't any need to exercise those apparently weak political correctness muscles of yours in the first place.