Comment by palata
2 days ago
> However, GOS's threat model very specifically treats the user as a thing to defend against
Can you elaborate?
GOS mostly honours the Android security model, which many alternatives don't do (many times they don't have a choice because the device doesn't allow them to relock the bootloader, so they just defeat the whole security model from the moment you install).
There is absolutely nothing that can be done on a Stock Android and that I cannot do on GrapheneOS. Or at least I haven't found it.
[flagged]
That doesn't come across as steelmanning our position at all but rather the opposite. It omits the most important points.
Providing app accessible root in the OS greatly reduces security without people ever using it. It gives root access to a huge portion of the OS by having it around as a feature even if it's never used. It fundamentally breaks a large portion of the security model for verified boot, which can no longer defend against attackers maintaining privileged access after a compromise
In addition to the inherent reduction in security from providing it, nearly all apps built around using full unconstrained root access don't need anywhere close to that. In nearly all cases, it's used as a shortcut instead of doing things securely. Following the principle of least privilege by only granting the required privileges is a core part of security. For example, an app for managing low-level firewall rules only needs an API for doing so in netd and netd only needs CAP_NET_ADMIN rather than full root. Doing this by giving full root access to a graphical application which is not properly integrated into the standard firewall management is not a secure approach. Giving full root access to a large portion of the rest of the OS in a way that can be hijacked in many attack vectors to make it possible to dynamically grant it makes it a lot worse.
GrapheneOS does have user-accessible root access in userdebug builds. Those aren't the main production builds of the OS but people who believe they know better and want to have it can build, sign and use those instead. Building the OS also gives an opportunity to include safe implementations of features instead of insecure hacks.
Every app can be backed up as part of the baseline. Apps can exclude specific data but are nearly all doing so because that data is a cache or can't be used elsewhere. For example, Signal encrypts their database with the hardware keystore and bypassing them excluding it from backups to back up all the files for it will not result in the data being possible to restore elsewhere.
> And that's actually a perfectly valid argument; handing root access to apps does break their security model, but if the user doesn't have root then I'd contest the idea that the user is in control.
First, "protecting against an app running with user permissions" does not mean "considering that the human owning the device is malevolent", right?
The idea is that if the human installs a malware, we don't want that malware to own the system. I think it is completely fair, and for most people it is the better deal.
Second, your complaint about GOS is that you want root access, and they don't provide it. You want a feature they don't provide, sure, but that happens. And that's probably a good reason to use an alternative system. But turning "I want feature X" into "if you don't provide the feature I want, then you are not free software" is manipulative IMO. GrapheneOS is as open source as it gets, you can fork it and install it on your Pixel. It is free software. Maybe not the software you want (that's okay, different people have different preferences), but free software nonetheless.
Since we're steelmanning, I would like to add a bit more.
GrapheneOS will never be closed source/proprietary because they believe code freedom (and user freedom by extension) is paramount. They have repeatedly said they don't have the resources to build a ChromeOS-esque firmware authentication and warning flow for ephemeral user-accessible root and support those builds alongside the existing production environment. They have NOT said it is something they have no interest in even discussing. They have also repeatedly said that where the utility is clearly demonstrated and can be architected in a maintainable way, they are open to contributions (and continued maintenance) that properly enable functions that people unnecessarily need to abuse root privileges for.
The main goal of their project is a system that can protect your personal thoughts, associations and memories to the best of its ability (against thieves, attackers, surveillance etc.) while preserving your interaction with the world. Current OSes (including GrapheneOS and iOS) are already far behind where they should be given the wealth of privacy enhancing technology, computer hardware security, systems engineering and OS design knowledge that has existed for decades- so their work is cut out for them and they are putting everything they have into leading the industry. Their hands are already full. For clear use cases the path of least resistance would be to contribute and commit to maintaining features everyone would benefit from.
If it is a feature/function someone understands they would benefit from personally but do not see the value to impose on others, we can circle back to the original fact which is that GrapheneOS is open source and can be bent/built to your will.