Have you ever wondered why #GrapheneOS has a separate PDF viewer?

Well that answer is pretty obvious, it is more secure to have a separate hardened, sandboxed utility designed for that instead of sharing such a responsibility with a much larger app with greater attack surface like a web browser or office suite. It is trivial for some threat actors to deliver weaponized, malicious PDF files to their targets.

If we know all of this, the next step for some may be to wonder "Why is the GrapheneOS PDF viewer secure?", for you, I will explain some of the most important details:

The GrapheneOS PDF Viewer app requires absolutely no user-facing permissions to run, it doesn't ask for any, nor does it need them. Without permissions the app is completely contained in the Android app sandbox and the security access model is far greater.

How the viewer opens a file is through making a false request to Localhost from the WebView and then intercepting that request with a stream of the PDF data. The benefits to this include:

1. We don't needing files access in the WebView (both setAllowFileAccess and setAllowContentAccess are set to false).

2. Allowing us to intercept headers into the request like CSP, Permissions Policy for hardening the sandboxing done via the WebView With CSP, all dynamic and inline CSS and JS is disabled. The only scripts loaded are those used for the viewer itself.

3. In addition to using WebView for PDF Viewer, Vanadium takes the place for the WebView on GrapheneOS, meaning GrapheneOS users take advantage of the exploit protections used in Vanadium.

Even with all of this, the PDF Viewer still has a fair amount of room for improvement when it comes to quality of life features and usability enhancements.

If we zap your account does that support the #GrapheneOS project?

Reply to this note

Please Login to reply.

Discussion

This is my personal account and I've been stacking sats prior to being a mod on GrapheneOS on places like SN. This doesn't link to any of their wallets and the project doesn't accept lightning due to security constraints at the moment. Any sats I make involving GrapheneOS support I send back to the project by myself because I imagine people would want that.

I do keep a small amount, but that only goes to sending sats back or to fund something that keeps my work going. Prior to GrapheneOS the sats I made were enough to get a domain name and I do want to create content in the future. It's definitely helped.

The best place for donations is always the GrapheneOS donate page, but I am aware some people will not use anything but Lightning. If I can't send BTC back then I send equivalents in something else. I will post such donations.

nostr:nevent1qqsgskjjlglh965xpj0vxerp3vxf8uhw3pjd92eysljvsujg02na38qpz3mhxue69uhhyetvv9ujuerpd46hxtnfdupzqxqlxdx5d78vv90lztqvnpc9tt5dcqp6rzt8ypd6a6e86s070k0nqvzqqqqqqy6c2jwr