> App Sandbox is an access control technology provided in macOS, enforced at the kernel level.
https://developer.apple.com/library/archive/documentation/Se...
The App Sandbox enforces the sandbox rules that are a signed component of the app. The App Store ensures that the entitlements that an app has are valid, necessary, and safe.
If you remove the App Store, a binary can have any entitlements or policies it would like, including not to have one. For example the Facebook, TikTok, or Google apps can give themselves the appropriate permissions to access all your data. The kernel will enforce those sandbox rules, and ensure that the app never accesses more than all of your data.
WTF good is a sandbox if this is the level of sandboxing it does? The app store is not great at catching things before they get released to the public, so this seems like a good reason to not trust apple exclusively if they're the only line of defense.
Why can't the calls to internal APIs still require auth'ing? Sandbox running software from accessing data outside of a specific internal API (via socket, etc), and require a handshake process or something before it returns data via that channel. The user can still get an OS-level prompt to approve use of API. You can literally still require a signed key in this step to identify apps. If an app tries to go around that... sandbox keeps it from seeing the rest of the system.
How do you think the kernel knows what an application is allowed to do? Seriously, I want you to think of a way that the kernel of any platform could know what facilities an app should have access to.
A realistic example: today if your iOS app wants to track users, it must go through AppTrackingTransparency.framework, which allows the user to opt-out, and use the device’s advertising identifier which the user may reset.
Of course this cannot be enforced by the kernel; it's enforced by App Store review. Sideloaded apps would presumably not be subject to this rule.
Apple claims that security would be impacted. They implied that sandbox=app store. Its all FUD marketing, of course, but they heavily implied that the app store review was the safety method for customers.
> if your iOS app wants to track users, it must go through AppTrackingTransparency.framework, which allows the user to opt-out, and use the device’s advertising identifier which the user may reset.
No reason you can't make access to the ATT DeviceID a call to OS. It'd return 000000 in generic case, and prompt the user at OS level to approve. If no approval, then it'd return 0 to app. You can't guarantee what they're doing with the number in-app, but apple barely does that now with review so probably not much loss. Sure some apps could try to access restricted memory or file paths that they aren't supposed to... but thats what the sandbox is for. BUT maybe apple should just kill DeviceId for everyone since im sure most people opted out.
The real loss to apple is that first party apps may have to play by their rules, and lose access to privileged APIs, or open them up to sideloaded apps (since the trust boundary is moved from source of app, to OS calls). They don't want to have to play by their own rules.
Even if you do want to do that, what do you ask the user? Even the basic entitlements often require some amount of knowledge a regular user simply doesn't have. Then the law itself has rules prohibiting restrictions, and I would bet someone will claim dialog based security counts as a restriction.
The law even makes it hard (impossible?) for a platform to protect even a modicum of user privacy. Section 2 (b) 3&4 explicitly prohibits a platform owner from placing restrictions on collection and use of user data.
And once again, that's on Apple to implement. If they choose to continue to keep entitlements in the same format, that's on them to explain it to the user. See Android, they handle permissions fine.
That section doesn't place restrictions on the generation of user data, only access to generated data. So don't generate it. In my opinion that's to prevent the platform holder from getting an unfair advantage by keeping the data for themselves. If the user doesn't give permission, the device doesn't generate the data, you're not restricting access to data because it doesn't exist.
As for the second bit, the "generated information" is things like device ids, location, etc. The stuff that is necessary for a phone.
But clearly you're of the view that requiring malware, people having to give CC information to innumerable other companies, is a good thing, so I doubt we're ever going to agree on this.
I would rather not have to worry about software installing a persistent crypto miner in the background, and not having to worry about software invading my privacy, than installing whatever mysterious apps aren't currently permitted on the App Store, but you do you.
Exactly that's your choice. You can choose to continue being on Apple's App Store where they do check for all of these if you want. No one is forcing you to install give that credit card info. Don't take away my choice to choose otherwise. If I want to pay for something with credit card, shouldn't I be allowed to? Or if I wanted to run background processes on my devices?
You want the android experience, but rather than getting an android, you want to force that on the people who prefer the iOS model. They like not having to worry about malware. Currently an iOS user can get all the software that they want from the iOS AppStore, and they don’t have to give random companies their CC#, they don’t have to worry about the app subverting their privacy, because they know apple kills software that does that whenever they find it. This law means they have to deal with multiple different stores, that have no incentive to maintain platform security or user privacy. In fact they’re incentivized to abuse user privacy.
As an iOS user I do not want the android experience. This law basically forces ios to have that. Malware and all.
The only things this does is reduce user security, and give scummy publishers the ability to bypass AppStore rules the protect users (like “you must make discounting if subscriptions trivial”, “you don’t get to run a cruptominer in the background”, etc).
Again, if you want to have the android experience, use android. Literally no one is stopping you.
Or epic: another company that has a novel approach to use privacy
Or Facebook
Etc, etc
The only option goes “the AppStore with its various restrictions and protections” or “miscellaneous parties with a vested interest in destroying your privacy and/or complete lack of any review”
They can have either the same level of control, less, but never more. As it stands right now, Apple and pretty much all Android manufacturers have more control (Yes, I said Android too. Good luck trying to mod the bootloader itself or gaining access to the TEE)
This would be a great thing because that way you don't force any company to modify their app plattform or change their normal user-facing software in any way, yet those who wish so can do with the device whatever they want in the same fashion the manufacturer could before (and even after) the sale.
> an iOS user can get all the software that they want from the iOS AppStore,
> apple kills software
Which is exactly the problem. That Apple has monopoly power over iOS apps.
> This law means they have to deal with multiple different stores
And in the same way I can choose Android, you can choose to use to continue to use Apple App Store only. Do you think Apple should be the only smartphone manufacturers because you don't want to deal with multiple OSes? No, because you're not being forced to use all of them.
And if they opened up to additional stores or side loading, you would have a choice to stick with only using the Apple one. That choice doesn’t go away. In fact, the vast majority of Android users aren’t installing side stores because the Play Store has what they want. This is why companies like Spotify still distribute there despite fighting Google on fees.
I think they are require to ask permission to track you using iOS API. They still track you based on what you access on Facebook.
The App Store policies ostensibly also prohibit an app from tracking a user via any other means once that user has said no to tracking.
It can't be sandboxing, as the entitlements and/or existence of sandboxing for an app is enforced by the App Store, and we've just said we're not using that.
It also removes privacy protections: Facebook is required to ask permission to track you on iOS. It's only required to by platform policy in the App Store license agreement. They're not using that any more, so goodbye opt-in tracking.