Android 14 blocks all modification of system certificates, even as root?
httptoolkit.com
httptoolkit.com
The title is, and forever will be wrong. When we say you're root in Android, you're actually root. You can actually do whatever you want [1]. Magisk (the now modern "root" for Android) now includes stuff to even "edit" Java code, so even if it's hidden deep somewhere, you should still be able to access it. (Even if somehow it moves from Java to native code, we'll still find ways, don't worry)
The fact that the author didn't manage to do it doesn't mean it's not possible. I could guess what's the author issue (I have two ideas in mind: 1. it requires stop;start to restart zygote, because zygote cached CAs, 2. it needs to switch to correct mount namespace before doing the commands), but I won't try it, I got tired of working on closed-source Android stuff.
> More investigation is required and it's hard to know the full implications of that now, but for the many forks of Android like GrapheneOS & LineageOS, and for advanced device configuration tools like Magisk and its many modules, it probably spells trouble.
I just don't understand this. GrapheneOS and LineageOS team have full source-code access. They can do whatever they please with it. (The limitation being that Google breaks stuff at an incredible rate, and following is a bit annoying)
Anyway, I hope that Android becoming more and more user-hostile (and more specifically in this case power-user-hostile) will move more and more people to custom ROMs. (In my dreams I make a "OwnerDroid", an Android fork where the security model doesn't have the first line saying "the user is an enemy", but even though I developed some tiny bricks of it, the overall project would take a huge amount of work)
[1] Except for some kernel-level protections, but GKI reduces that risk.
> this new approach reads certificates from /apex/com.android.conscrypt/cacerts, when it exists.
Much like the how the current work arounds for safetynet, hiding root, and hiding magisk work, it should be possible to hide /apex/com.android.conscrypt/cacerts from select processes as needed to make it fail over to the old way.
Now, you can't do that.
Of course, with full source code access anything is _possible_. You can absolutely build your own Android system images from scratch disabling all these modules to work around this, and it's certainly possible for GrapheneOS/LineageOS to handle that too - but it will create a bunch of new work, and diverging from Android's implementations of core components may mean more work in future. And for most affected users "first, build your own system image" is significantly beyond their comfort zone and level of time commitment.
There will be other solutions eventually - it may be possible by digging through the namespacing and modifying the mounts of target processes individually to disable this, or there might be a way to somehow build & install your own APEX modules in a way that Android will trust, to replace the system module and thereby modify this directory, or who knows what else. There will certainly be per-process fixes possible with Frida, with hooks targeted to individual applications. More ideas welcome too :-D
Despite all that though, it's still going to be a major problem that makes it harder for users to fully control their own devices.
Yes, and that was used for some horrifying security/privacy breaches that made this whole site preach about buying iPhones.
It's one thing for the OS to put dangerous things behind warnings, flags and prompts. It is another to cripple the OS.
Developers hate piracy, ad blocking and most of all users.
If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and taking the intended spirit of the site more to heart, we'd be grateful.
But not aware that you can modify the core root certificates.
"Just by writing to disk" omits the part where you needed to unlock the bootloader (wiping data), flash a custom recovery, install a superuser implementation and remount /system as writable (or used an overlay do fake it). The only thing that seems to be changing is where and how these certs are stored, so the procedure will be exactly the same apart from the last step, which was never the hard part. By the time you set up a phone for root access, needing one extra app or overlay to add CAs is barely an inconvenience.
Zero root setup required in those cases, until now. Create the emulator, adb shell, su, mount tmpfs, write your CA certificates.
You can script it and do the whole process in <1 second on a fresh device.
Much like any user could fork Chrome in principle and scratch their particular itch, but the sheer pain makes that not worth it except for motivated, organized teams
I'm not sure reverse-engineering some Java bytecode is even the rate-limiting step at this point, I'm more demotivated by the knowledge that everything will break again with energy-sapping frequency
What about people who kinda gave up tinkering with custom ROMs because the state of the stuff that matters (root checks by your mandatory banking app, some Google stuff) is either not documented (good luck finding an overlap of "phone model" + "your local bank app" + custom ROM" as a tested and known-good thing).
I'm all for freedom and choice, but I don't think unless you're willing to go through a couple of phones, a couple of days of work, or are a specialist in the first place, this is a reasonable way of action for average phone users. I know you said "power users", but I'm a power user with computers, my phones could be a lot dumber if I had my way - but it won't happen if we have to increasingly use them as MFA devices or be at the whim of corporations with a better lever (i.e. banks, I'm not changing my bank account 3 times until I find one with an app that works on a rooted phone...)
European banks are forced by EU's Payment Services Directive 2 (PSD2) to authenticate using MFA for any payment over 50 EUR.
So what is the second factor? Your phone. Once you pair the app in your phone with your account, you can authenticate your actions using that phone, even if you are otherwise banking using the web app on your computer. Most banks also insist on using their apps, they don't allow generic second factors. Since their apps require Android with SafeNet or iOS, they pretty much enforce the Google/Apple duopoly.
For now, there are other ways -- sms, which the banks are trying to phase out.
So I imagine situation elsewhere will be very similar.
edit: with cardTAN you get a OTP/TAN 'calculator' into which you put your smartcard to generate TANs on the fly.
I use it because to me this feels more like a real second factor, when I use my mobile for banking.
And there will likely be a time when the bank simply cuts access to the cardTAN system and only allow their apps. Screw them because that means I have to use a smartphone, which I really do not want. The cardTAN system has been very good so far in preventing fraud, once the phone is the token it suddenly gets a lot more complicated and less secure.
For those wondering about 2FA with these apps, factor 1 is "something you own" namely that particular phone/sim, and factor 2 is "something you know", your PIN.
You can still use cardTAN, but the app is way more convenient, especially with QR.
https://www.onespan.com/products/transaction-signing/cronto/...
This. My bank in France, BNP, does that. Every so often, when I connect to the app on the phone, it says something similar to "in accordance with <some regulation> a strong authentication must be made every <number> of sign-ins". You're presented with only one button that says something like "ok". You press it, and you're in business.
This is after requiring me to type in my pin, which must be precisely 6 digits, and some sequences are forbidden, so you can't type 1234 or similar. It doesn't seem to interact with the secure enclave in any way.
If this number of sign-ins is reached while I'm on a PC (which is the most likely), it'll send a confirmation request on the phone, so at least it works there. When paying online, I'll also get a confirmation request on the phone app.
On my professional account, with the same bank, the situation used to be exactly the same. But a few months ago, they switched away from that to sending a confirmation code via SMS for bank transfers. Credit card payments still have the app confirmation request.
> "don't ever run the front-end and the second factor on the same device"
This is required in some cases, probably unless you apply for the physical hardware token generator which costs extra. You must apply for the 2FA-app initialization through the banking app that you are supposed to run on the same phone. In both cases, it is basically impossible to have a backup. Also, the banking app and the banking key app are supposed to have a separate PIN/ short password or a biometric login. Of course, the biometric approach has all kinds of problems in legal challenges (e.g. something you know is protected differently to something you are). Also, something you know cannot be easily obtained while you are asleep. Also, you probably don't want to use your password manager on your mobile phone - so there you are, typing a generated password to log into the key/ 2FA app for security theater. If there wasn't the banking app right next to the key app, the bank could probably just use something like FreeOTP+ or Google Authenticator without reinventing the wheel, also enabling backups in the process and skipping sending physical mail with the initial setup tokens. But that would be too straight forward and not "enterprise" security or whatever. The situation in Czechia is more or less similar. The banks tend to belong to the same banking groups so the underlying infrastructure might be similar even though Czechia still does not have the Euro/ SEPA.
Of course they do. But they need to balance security with end user experience.
And since security for a bank is about risk management they can offset this risk in other areas to compensate e.g. additional processes for activities involving larger amounts of money.
That is positively insane. So if you don't use vanilla Android or iOS, you can't use a credit card for more than 50EUR? No phone, dumb phone, too bad?
Just over a month ago, a proposal to prevent that was posted here: https://news.ycombinator.com/item?id=36875940
We distribute LOB banking apps as PWAs to our customers. In no reality would I consider incorporating this into our tech stack. We use PWAs and avoid native apps precisely to maximize compatibility across arbitrary IT policies in our various customer installs.
I don't know if our customers want to use linux, windows, android or apple. I don't WANT to know anymore. I just want to target a common API (HTML5), add some bandaids for iOS/Safari (usually after WWDC each year) and move on with life. Throwing DRM and platform constraints into the mix sounds like I might as well go back to native (I won't).
We are one of the few vendors that will actually get into a heated argument and push back against customers over FUD security crap like this. If a prospect insists that we add some draconian DRM to our product stack, I would make it very clear to leadership that I do not think we should do business with that customer on technical grounds.
If you find yourself in a situation where you need to trust the client implicitly, then you have catastrophically failed in the rest of your design.
Up until about a year ago one major core provider had been using the password 'money' for all their client accounts, many of which were domain admins since that is a 'just make it work' button and they cannot actually tell you what privs their service accounts need. When we asked the clients to press them on it, we determined via cracking that they had changed it to 'monet' as a workaround. The standards for excellence are SO LOW.
> The standards for excellence are SO LOW.
I'm 99% sure I know which vendor you are referring to.
Almost everything in fintech is a hacky mess. This is our competitive advantage. Doing the barest-acceptable thing makes us look like rockstars compared to every other vendor in the space.
1. Discovered that emergency calls would crash the phone (during an emergency)
2. The LineageOS April Fools prank.
Removing it requires updating to another build or rebooting into recovery and changing a setting using terminal via setprop .
instructions: Okay I finally managed to solve the LineageOS Settings"You might be a victim of counterfeiting" april fools joke. Here are the steps to how I solved it 1. Boot in to TWRP-recovery 2. Open Terminal under the advanced tap 3. Type the following "setprop persist.lineage.nofool true" in the terminal 4. Reboot the phone and voila :)
When I used a custom ROM, I never received the notification, IIRC. Even carrying the relevant bits from the official ROM didn’t matter. It never worked, crippling tons of things at the end.
If used or reflashed the stock ROM, things have returned to normal.
Such people should consider GNU/Linux phones, Librem 5 and Pinephone as an investment in the future.
I 100% share your desire but this is wishful thinking imo. People tend to comply when given no other options.
Or even ditch closed platforms for good. In other words: "Oh, PinePhone 2, where art thou?"
Indeed, Android 5.0 has been that release for me. The redesign left the UI in a state of inconsistent mess, took away dark mode, made my otherwise perfectly performant Nexus 4 sluggish, broke apps...
Custom ROMs were unfortunately not the answer, at least not for me - and TBH I doubt less technical users will appreciate the trade-offs. I've tried SailfishOS, been on Cyanongen/Lineage for a while, but ultimately if you want a device that just works, and works well...
Everything is a compromise, might as well choose Apple.
I never owned a phone supported by any of the custom ROMs I investigated.
Samsung Galaxy S2, Sony Xperia X Compact, Samsung A40.
Except the first one, which was huge by the time and tiny nowadays, I buy the smallest phone I can find. Apparently no ROM developer is interested in those phones.
You can run custom ROM on it (the suupport is provided by Sony themselves), though maybe you need to actually build it yourself (which yeah not great, but you don't have to write the drivers, the build scripts and everything related yourself)
> Samsung A40.
You can run custom ROM on it (using Generic System Images)
> I buy the smallest phone I can find. Apparently no ROM developer is interested in those phones.
Well, I am interested in those phones :P. I currently daily driver Asus Zenfone 9 (compact in nowadays standards, but not really compact), and Qin 3 Ultra (actually compact, usable one-handed). And I definitely run custom ROMs on it.
That's a strategy to keep the competition busy just keeping up: https://www.joelonsoftware.com/2002/01/06/fire-and-motion/
If you ask "what competition (from Android forks)?", that means it's working.
Android has so thoroughly defeated itself, that I feel crazy to say I'm thankful that microsoft doesn't run the PC world like google runs the smartphone world.
Windows itself is a bastion of stability and sanity compared to android. Things do not need to be upgraded prior to the hardware actually breaking of old age.
Beyond that, just like google, microsoft doesnt control the entire hardware-software pipeline. But just like google, microsoft is in a place of power where they could have made it incredibly inconvenient to own your PC, by dictating norms through a store, or discouraging any deviation of environment by safetynet.
My memory is bad here, but did this sort of thing ever end in antitrust lawsuits for microsoft in the past? And, when can we look forward to the same for google?
Microsoft has also added tons of DRM to Windows (which they later broke). Remote attestation is built into the OS as well.
Google has inconvenienced Android developers by altering the Android internals you weren't supposed to rely on anyway; Microsoft does this all the time as well.
We may need to wait a few weeks for an updated Magisk module. Honestly, it's really notm that bad. Just don't click the update button on the five or six devices that will receive Android 14 before then.
Why? Because I can't set my prefered GPU with uefi enabled (which is required for secure boot), and I occasionally passthrough my windows disk to a VM when I'm dual booted into my Linux OS (so naturally windows can't use the tpm).
Well yes, that windows was basically a direct competition to android (or tried to). Not sure what has TPM to do with anything really, but regardless;
I am not saying that Microsoft is pure hearted angel that would never dare to restrict client's freedom. Obviously they did it before many times and certainly will in the future.
What I am saying though, is that for now, Android is on completely different plane of user restriction then Windows (in it's main version) is. And even if Windows is constantly looking for opportunities to tigthen it's grip, none of the restrictions that are implemented right now can justify the conclusion, as if Windows is becoming so restrictive that it's reasonable to compare it to Android. Criticize them all you want, I will as well. But let's not bend the reality just so it's easier to say 'all corpos bad', rather then putting a small ammount of effort to distinguish between the levels of opression
Presumably, they’ll just factory/ota install the malicious certificates.
At least until WEI becomes mandatory, this isn't really a serious problem, since these braindead measures are all easily bypassed. However, I am interested if there is any potential legal avenue to pursue given that Chase is a bank. My first guess would be ADA compliance, but I'm not sure. At this point, I'm so fed up that I am not sure if it is an empty threat anymore to say that I'm interested in filing lawsuits over this.
(I realize this is a tangent, but it's relevant because it underscores yet another facet of how leaving the oligopoly of mobile phone operating systems is damn near impossible. Android will just keep getting worse, probably even if the Linux phone niche miraculously grows to a couple percentage points; we need something.)
We are going to have an age of digital serfdom. You will use a device provided to you by some "benevolent" corporation. They will own every aspect of that device and you will only be allowed to drive it if you give them money (pay your access fee today!).
They will lock down most other avenues, general computing will be reserved for "corporate" use only, and while there will be a "free web", it will be fairly technical and user hostile, and the vast majority of marketplaces (ex: anything that touches money) will avoid it like the plague.
I just don't think it will matter. There is too much money on the table, and too much pressure on the "security" front to get most of the people implementing this to just... stop. They have rational reasons for doing the things they're doing, and they're sitting in the "corporate developer" spot, which will still get the goodies like a real server that can run real code.
I'd like to see some real government regulation... my basic stance is - if I own the device, I should get a key to EVERY fucking lock it has, including all the digital ones. Which seems very sane, and completely mirrors the same stance for ownership of things like houses and cars (the owner gets all the keys).
But the government (at least in the US) has lodged the corporate phallus SO far down its fucking throat it's literally choking to death. So I don't expect any miracles.
This highly successful paradigm is now replicated by John Deere, and Tesla. WiFi radios are being locked down.
I remember folks on HN warning of the slippery slope a decade ago, universally shot down. Security!
It's also why I've chosen to do things like selfhost my own services, run my own computing hardware (literally sitting in my basement), contribute to and fund open source initiatives, and continue arguing that the government should regulate this behavior.
Because frankly... I agree with you: it's a highly successful paradigm. If left alone and unregulated, companies that don't abuse their customers in this manner will become less and less prevalent.
I call it "the little green man" paradigm: They have a literal enforcer sitting inside your phone who only answers to them. They use that little green man to extort rent from you for services and goods that shouldn't require any sort of ongoing or recurring expense, but will... because rents * * cough * * excuse me, "subscriptions" are just wonderfully profitable.
I'm just not an optimist on this front.
This is a complete cop out, and a misunderstanding about how this works.
This is a principle that works right up to "Can I feed my kids" and then it doesn't work at all.
Principles are flexible. Some are more flexible than others. You NEED food in a way that you don't need general purpose computing. If you are forced to choose, I know which one people will pick.
They will just put a finger on the scale to make it more and more difficult to choose an open solution. You will start losing things like income, job opportunities, government access, etc.
They don't have to make you switch... they just have to make an environment where you are less fit. Make your life harder at every step, limit your opportunities, and wait for you to go extinct. And... you will.
I personally do not have a problem with these serfdoms, as they meet a real, functional need. It does suck that there aren't as many easy alternatives for smartphones as there are for laptop computing.
I can build a computer from scratch from existing knowledge I have stored in my head. Computing that I'm in control of really can't really be taken away from me on a basic level.
I don't disagree though, the web itself is becoming a hellscape and I expect it to be completely and totally locked down within my lifetime. I don't think the web most people know is savable anymore.
You can run your toy rpi hobby server, but you won't be able to buy goods, check your bank statements, file your taxes, buy your insurance, pay your rent, check your email or message your mom.
Doing any of those things will require getting permission from the gatekeepers of those services, and your device won't get it if you have root.
In the BEST case: the government heavily regulates what those gatekeepers can do. In the worst... they "convenience fee" away absolutely all surplus productivity so a very small group of people holding digital keys gets to be stunningly rich.
I don't see how we aren't already at this point.
I can be locked out of my banking tomorrow for any reason by the bank or government, banking apps won't run on rooted phones or even many browsers, I can be banned from email providers and I can't reasonably host my own as big providers won't accept messages from my server, etc.
That's not even touching on how companies like CloudFlare are effectively already the gatekeepers of traffic to any service you would want to use.
From my perspective the future you're scared of is here already and only getting worse.
There are very few OSS hardware vendors that are in a position to pick up supporting the whole ecosystem enchilada. System76 is the only one that comes to mind. They seem to understand to some degree where the puck is heading.
While 'general computing' can't be taken away, what an individual or small company can support won't be able to compete with the locked down systems, especially if the upstream efforts are spread across multiple open source fronts.
This is a very pessimistic view.
IBM never designed the PC to be future proof. It just happened to pick up.
RISC-V standardization extends to the boot process and the platform, facilitating a standard PC that's cleaner, simpler and better than the current incidental IBM PC derived platform, which has accumulated much baggage since 1981.
The platform standard being open and simple minimizes the effort the software side (esp. the OS) needs to spend on supporting the hardware.
Unless we have different ideas of what 'from scratch' means.
I guess I'm being kind of pedantic, but I think there's a meaningful difference between being able to freely compute and being able to freely interact with systems run by other parties which is what is actually threatened.
FOSS is falling farther and farther behind commercial tech, and people actively don't want feature parity with commercial apps, they want faithfulness to an interesting technical vision, and they want things that stay out of the way and are made of modular pieces, rather than things that do as much as possible and come with their own opinionated workflow you just learn and use.
But, I do have a bigger problem: where do I go to signal that I care? "Anywhere" is an answer, but is it a good one? Who can I trust to not do this?
And in addition, if I'm going to leave over it, I'm going to at least make noise first.
Find a local credit union. They are better in literally every conceivable way. They have stronger financial controls, better service, better fees for all their financial products, and basically every credit union is part of the STAR network which is the largest ATM network in the world.
I've seen the exact complaint of yours a few times over several social networks in the past couple weeks, so the word is definitely out there. Chase is shit, but we all knew that already. Time to move your money, and stop supporting these crooks. It's actually super simple. It takes maybe an hour to convert everything from Chase to a credit union. Open the account with the credit union first, and they'll give you everything you need to transfer everything over, even credit cards that aren't fully paid off etc. Then you walk into a Chase branch for the last time ever, and move it all.
Sadly I think Google has killed the open web with this. It was getting boring anyway. But it's annoying how much harder it is to live without a phone/"approved" browser, etc. now.
On iOS, the process of trusting a root CA is (rightfully) tricky, requiring you to install a profile and jump through some hoops with some scary warnings, but in my experience most apps will trust it unless they're using pinning.
[1]: https://android-developers.googleblog.com/2016/07/changes-to...
On iOS it's shockingly easy to subvert your HTTPS privacy for years after you've let someone borrow your phone for five minutes.
I would love the option to actually trust CA certificates I install (especially Firefox, a fucking web browser, doesn't even opt into user certificates without a secret tap combo and hidden settings), but I don't think this feature is important enough for the dozens of techies using them day to day considering the risk to every other Android user on the planet.
In this case there's no evil Google conspiracy to thwart the plans of your local IT department, this is just a side effect of Google's excellent sandboxing improvement and long overdue CA store update mechanism.
I'm sure Magisk modules will appear to work around this problem. The existing Magisk modules will be broken for a while but that's par for the course after major Android updates. I'll write a module myself if I have to.
Firefox uses it's own CA store and installing your own is trivial. Ever tried to just open URL with your cert? The ui for certs isn't nice, but you can still view them in 'about:certificate'
Installing into system store and then configuring Firefox to use system store is the hard way, on all supported systems.
Not on Firefox for Android, it just makes me download the file. You can do it of course; just go to Settings > About Firefox > Tap the Firefox logo seven times > Go back > Secret Settings > Toggle "Use third party CA certificates".
about:certificate shows me a bunch of buttons to export certificates, but there's no disabling or importing from that screen.
That's... interesting. I did import my ca cert exactly this way, so they must have changed it... bummer.
In the about:certificate I can see the ca cert that was imported this way and inspect it.
In my opinion, Firefox shouldn't need to keep a separate store for user imported certificates at all. The operating system already has this built in, with a dedicated API to listing and importing these certificates, and Firefox actually uses that if you use the secret setting to enable it (not in about:config, you're not allowed to touch about:config unless you run Beta or Nightly).
I think Firefox tries to be simple and easy like Chrome is, but just fails to in edge cases. I still can't paste an IPv6 IP address (i.e. http://[2000::5677]/) into the address bar and just visit it like I can on every other browser I've tried, and to me that's indicative of Mozilla's struggles to keep up with the mobile browser market.
> On iOS it's shockingly easy to subvert your HTTPS privacy for years after you've let someone borrow your phone for five minutes.
You need a passcode to install certificates. And people casually handing over their phones would be a much bigger problem if that really is widespread behavior.
Second, can we stop using "techies" as some kind of magic word to make any technical concerns go away?
Shared mounts might be useful here. Not sure. I'd need to take a closer look at what is going on here.
But I would say this result is probably a byproduct of whatever namespacing/containerisation Google is doing, rather than an intentional effort to prevent users from changing the root CAs even as root.
Yes, I think in practice that's true. The end result is still a big problem though!
> Isn't this just how mounts work? If you have a something mounted to /apex/whatever and each app has a separate mount namespace, then mounting over /apex/whatever in your namespace wouldn't change anything in any other mount namespace.
The latter 'separate mount namespace' here is the surprising bit. Previously, you could open a shell, mount things into the filesystem (or just modify it directly) and apps would happily read files from those mounts.
Now, for these cacert files, that's not the case, and additionally with the new approach direct modification is impossible.
Before this change, I wasn't even aware that Android apps were using their own mount namespaces! There's very little documentation on exactly how that works and I'm not sure if there's been a case where its been clearly visible until now.
Technology is very convenient when it's complex enough to find an excuse to fit your business objective (see manifest v3).
Hi! I'm the guy who wrote the blog post about updatable certs in Android 14 that your article linked. Not sure if you're aware, but there's actually a system property you can set to bypass reading from the APEX cert directory.
system.certs.enabled=true
From: https://android-review.googlesource.com/c/platform/framework...
That's useful for automated testing (which appears to be why they've added it) or for toggling settings between debug/prod builds, but not so much if you want to globally trust a CA certificate on your device. Of course, if you know a way to externally set such a property so that it applies to every app, that would indeed work great, and I'd love to hear about it!
(I'm the author btw, and I don't see any such reply on Twitter? Classic 2023 Twitter ofc)
What happens in 2-3 years when this version of Android is abandoned? You pray the hardcoded certificates will last you a couple more years?
> Android 14 makes root certificates updatable via Google Play
> Android's root store used to require an OTA update to add or remove root certificates. That won't be the case in Android 14.
TIL there's a workaround though [0]:
> If you use Android 7.0 or earlier, you may need to take action to ensure you can still access websites secured by Let’s Encrypt certificates. We recommend installing and using Firefox Mobile, which uses its own trust store instead of the Android OS trust store, and therefore trusts ISRG Root X1.
[0] https://letsencrypt.org/2023/07/10/cross-sign-expiration.htm...
[1] https://www.xda-developers.com/android-14-root-certificates-...
https://arstechnica.com/gadgets/2023/08/google-kills-two-yea...
Random example that even has pixel in it. Not to mention the other randomly canceled services.
The current situation is that the CA bundle doesn't receive any updates from Google. If your manufacturer repackages their CA bundle and still updates your device, you'll receive a new CA bundle, but I don't believe this is guaranteed.
Furthermore, if you're still running Android 14 after six years, your issue is with the manufacturer of your device. The latest version of the CA bundle will still work of course, but you should really be at least four or five Android versions higher at that point.
I had to install a Let's Encrypt certificate to get my self-hosted password manager working because Google's updates are missing an intermediate certificate Let's Encrypt uses. This is not a hypothetical down the road issue but an issue present right now. Why should Google be the final arbiter of who I trust? They clearly have their gaps.
And let's not even get started on the existing approved certificate providers that you shouldn't really be trusting since they've been shown to provide certificates to people and organizations that shouldn't have them.
Apple folk, can I get an honest opinion here: I've been using macOS lately and I hate it because it fails at really basic user experience things that've been common on windows/linux for decades. Like finder, it's just the worst.
If I were to get an iphone next generation instead of an android, would I have the same negative reaction to iOS? Would you say that iOS is a more complete, useful UX than macOS, for the smartphone use case? I think I want to make the jump, but I also don't want to waste my time/money.
For context this is also someone in the midst of dumping macOS for Linux as well
I NEED to be able to add my root cert to the list of certified authorities.
I don't need to change anything to the system provided list. I just need to add mine. It's my device, I'd like to be able to change anything if I want to.
Browsers opt in, or in the case of Firefox, can be configured through hidden settings to opt in. Many other apps don't, though.
If you're trying to intercept traffic or use apps that should opt in but don't, the system store could be altered with root access so that these apps still trusted the certificates you're trying to inject. However, most apps worth their salt implement certificate pinning, so that's hardly reliable anymore. It's Arnold workaround that works on some apps but not on most.
Furthermore, Google Chrome and derivatives require certificates to be logged publicly so malicious CAs can't mess with random domains. Your private CA isn't logged in the public record, so adding the certificate to the system store actually breaks HTTPS for many browsers. You can add the cert to both stores to make it work, but it's kind of a hack.
On iOS loading certificates is easier, but you'll still need to work around certificate pinning if you want to intercept HTTPS traffic.
What is unlikely to work is installing your own CA and using it to intercept traffic between apps and the app-makers' servers. That sucks - you should be able to inspect what your own device is doing - but your use case of using a private PKI for your self-hosted software is definitely supported.
It's insecure. If you are a bank app you doesn't want other people to be able to steal the users password by installing a new certificate.
Not all banks allow desktop usage. Some banks restrict certain functionality from the web interface since it is less secure.
Then I realized, the reason they try to hide is maybe those APIs are abomination /s
(1) What effect does this have on user-installed credentials, such as a certificate for OpenVPN? I used to be able to install those myself, with a few taps. They did produce the ominous message about someone monitoring my network activity, of course.
(2) Will users still be able to disable CAs in preferences? I routinely go through the list of CAs and disable anything I don't trust, mainly based on country of origin, so China, Russia, Turkey get shut off, et. al. Will this functionality still be available in Android 14?
2. Yes - you can still manually soft-remove CAs through the Settings UI
- by default, using the system installed CAs
- if specified in the app manifest, it can trust the user installed CAs
- included with the app, also in the manifest, it can trust any CA the author of the app decided to trust
[1] https://developer.android.com/training/articles/security-con...
That's covered in the article - no, you can't do this. If you entirely unmount the apex module from the filesystem from a root shell, so the CA certificates aren't visible anywhere on the filesystem, apps will still read them successfully. And the OS blocks RW mounting of APEX modules so you can't delete the cacerts directory within the module either.
It looks like apps have separate namespaced mounts, managed by the OS itself from boot. Effectively they're containerized, and as part of launching all applications the OS is mounting the certs directly into the process's view of the world.
If you can find a way to modify the filesystem the apps see from a root shell, that would be great! I'd love to hear about it. But believe me that I've tried quite a few of the obvious things already.
LineageOS is only way how to keep many devices up to date by security patches. Ability to have newer version of Android is just a bonus... or... uh wait.
Currently CA management was very dangerous because it was not updated (as stated in the article).
New CA were not added so if you kept your phone long enough you would see insecure warning popping up. People would take the habits of accepting without thinking: very problematic behaviour. One solution is to used Firefox which doesn't use the system CA unlike Chrome.
Another more problematic one: untrusted CA were not removed (the author give the example of TrustCor but they were other examples in the past like DigiNotar). Who knows what happens to private key of old untrusted CA ? If they end up in the wrong hands people could get MITM. (Personally, I had to remove DigiNotar for my old phone.)
And of course as the author said: it's also problematic for new certificate authority like Let's Encrypt which at a time needed the complex cross sign certificate to ensure the certificates work for everyone. [1][2]
[1] https://letsencrypt.org/2020/11/06/own-two-feet.html [2] https://letsencrypt.org/2020/09/17/new-root-and-intermediate...
Of course it'll only keep being this easy temporarily. Here's a scene from 2026 for your imaginative pleasure:
Door: You need to scan your COVID25 vaccine QR code to open this door.
QR App: This app will only run on a HW attested device
------
Shopkeeper: We only accept WhatsApp pay at this store.
Payment App: This app will only run on a HW attested device
------
Your friend: We can only talk on this one messaging app that everybody uses.
Messaging app: This app will only run on a HW attested device. Oh, but we promise that this encrypted blob of executable code that you can't disable is here just to ensure the safety of your E2E encryption.
------
Your custom ROM rooted Android 18 phone: Running a secure messaging app that was banned from the Play Store and has only like 2 other active users in the world.
The police: Papers please. Phone touches the scanner. Scanner beeps and turns red.
The law: You have violated the Digital Safety Act. Daily driving a non-licensed general purpose computer is illegal as this may endanger "our children".
The law: You have violated the Public Health and Safety Act. Daily driving a non-licensed general purpose computer is illegal as this may be used to circumvent your quarantine and vaccination control status checks.
------
I can go on and on. I think you get the gist of it. Once we have HW attestation fully figured out, these laws will come. Cash will go away. Your agency will go away. Etc.
... And the punchline of the ghost story? The guys coding this stuff up? They're here with us reading this thread. Commenting about the virtues of locked bootloaders for your security.
It's bad. It's especially bad on platforms where you don't get to choose which browser you run, but we should protest it everywhere.
[1] https://www.xda-developers.com/android-q-apex-biggest-thing-... [2] https://www.xda-developers.com/android-10-custom-boot-animat...
If Google actively prevents "rollback" to a previous version, then how does a computer owner try out the new version. Once installed, there is no going back. Even if the owner discovers the new version is unsuitable. It's Amazon with no returns. A new car without a test drive.
Reading source changes might be an easier way to review the new version than running it in an emulator and trying to figure out what changed. Is it not possible.
Well now what?
And damn, that hardware keyboard layout was fire.
> PureOS is developed by paid and volunteer members of the Purism community, and benefits from the work of its extended communities and projects.
But if you move away from a "certified" ROM then you start to fail SafetyNet (or its successors) and many apps will refuse to work. Those apps want to make sure that the user isn't in control of their devices, they want to make sure Google or a "trusted party" is.
They say this is to ensure the security of your device that logs into your bank or whatever, but I guarantee that my LineageOS updated this week is more secure than my stock Google ROM that got its last update 3 years ago. If Google really wanted to prove security with SafetyNet they would stop attesting devices that haven't been updated. But it isn't about device security, it is about ensuring that the device is controlled by a big corporation, not the user.
That being said, I have a separate phone just for bank apps and turn it on only when I need to use it for banking.
Well, that's exacly why Google has proposed WEI - to make sure they no longer do, and the user is practically forced to have a device that has bundled Google spyware.
Link so people don't need to go looking: https://news.ycombinator.com/item?id=36875940
And, loans aside, if I had money in a bank that forced me to change the way I live my life just to store money, I would move to a different bank and tell them that's why they lost a customer.
Most people these days.
I use bank web site most of the time. But if not at home, it is really useful to use phone. It isn’t like banking is complicated that need computer and browser. Bank web sites tend to be awful on smaller screens, I don’t use it on iPad. Also, there are a lot of people that only have phone.
No? It can wait for me to return home. Before wireless internet existed this wasn't an issue, so how has that changed things?
> If US, have you ever mobile deposited a check?
I admit this was literally the only time I used banking apps, but nobody uses checks anymore. I haven't needed to do this in years.
> If rest of world, have you ever sent money?
Yup, paypal website. Don't even need the app. Works better than venmo etc because it works internationally and various competitors that are app-only only work in 1 country anyway.
What smartphone OS are you referring to? Sounds interesting.
Not that I have a solution to the problem. Just saying the current and foreseeable future state is that smartphones are past their glory days, and the platform defeated itself.
Unfortunately to participate in modern society you basically need iOS or Android, and iOS is far worse for user freedom. So I have taken the best option I could.
I also help "with my wallet" by preferring websites for everything that has no need to be an app. But I am sure that I am the minority.
Also, SafetyNet makes alternatives to Google Cloud e.g. for Backups non-viable, so win-win for Google I guess.
The last phone I used that supported taking a backup image of the entire phone was a 2013 BlackberryOS 10 device.
You are totally right in that there are basically no useful backups on android whatsoever. The closest thing is "adb backup" when you have root and developer settings enabled, which is saying a lot.
It starts creating an image of a couple of GB (takes a couple of hours, lol) and then just bugs out and stops. There's no error checking or anything and when it bugs out it means you have start all over again.
LineageOS with MicroG will run some of these apps and show a map using OpenStreetMap tiles provided by MapBox, but the functionality may still be broken because the MicroG’s maps support is not a full replacement.
Because security consultants slapped that on some checklist and Heathrow will now bugger contractors that build Android app to implement root checks.
Enterprise apps are full of this bs. I partially blame Google because it made checking for integrity so easy that every app owner now things it needs to use it.
Those are two entirely different threat models. The second clause of your sentence is about vulnerability to exploits, something that Lineage or other ROMs are at least better positioned to do than a vendor that has EOLed the device (though the amount of binary junk required by those distros puts a pretty firm cap on that promise -- they can only fix what they can patch!).
The first clause talks about the need for back end service providers to be sure that no entity is interposted between them and their users/customers. It's a desire that no extra app can sit there and sniff interaction or prompt for passwords/tokens/secrets/etc... Third party open ROMs not only fail to address this need, they actively hurt. You can trivially make a "We're Totally Your Bank We Swear" app and deploy it to a LineageOS phone that steals the money from any account that authenticates with it.
Is that a "good" security model or a "bad" one? There are arguments to be had. But prompt application of bug patches isn't one of them.
No, you don't.
>For example users by default aren't even allowed to access app's "private" data.
Which is already what Android's security model specifies. It means that other apps or other people using your phone won't be able to steal data like your 2FA app's private key.
>Those apps want to make sure that the user isn't in control of their devices, they want to make sure Google or a "trusted party" is.
Their app may benefit, or even rely on the android security model. Unverified devices have the possibility of having that security model broken.
>If Google really wanted to prove security with SafetyNet they would stop attesting devices that haven't been updated
I agree, but there is a trade off where you will cut out old devices. This is why at first Google lets app developers choose if they want to avoid devices that can just be spoofed.
Which means removing user control over that data.
> Unverified devices have the possibility of having that security model broken.
Again, this "security model" implies removing user control. The apps protect user's data from that user..
There is no way for the phone to know who owns the device, nor would it be able to know that when ownership is transferred to not show sensitive information to the new owner.
Nothing about any of that requires the user to cede control of their own device as a "solution".
The big differentiator, though, is your social network. Having iMessages and FaceTime is about 95% of the value of the phone/tablet for me because my friends heavily, heavily use them.
Otherwise the apps define most of the UI. Android is basically an app launcher to me.
That's the reason I use an iPhone. I don't need a bunch of customization and homescreen tinkering, I just want a thing that gets the job done and is easy to troubleshoot.
At this point apple or anyone else would have to beat the cheap android handily for me to consider switching and that seems like a tough market to beat. I'm always impressed by how well cheap androids work when compared to their 3-4x more expensive counterparts.
They can support multiple ESim's now which I've had fantastic experience with when travelling abroad. Apps like Ubigi make it super easy to switch to a local sim.
I don't feel like I own my devices anymore.
1. Save The Children
2. Save The Planet
3. Save the Tax revenue
4. Anti-Terrorism
Show companies that there's money to be made by buying devices to your liking or you'll be subject to design decisions made for the vast majority of customers. Why should companies care about your specific wishes over everyone else's if you're not putting your money where your mouth is? They exist to make money, they're no government or charity.
Everybody has been screaming at Google about how Google can't keep Android up to date since Android 2.1 launched. The geneewl comsensus is that if you wqnt updates and security, you need to buy an iPhone. They're finally fixing this problem but every step along the way the percentage of a percentage complains that they're the victim of Google's conspiracy.
So the groundwork is being prepared for coming things like Online Safety Bill here in the UK, where all communication will likely be under surveillance and so you won't be able to mod your phone to "opt out".
It's a shame that such resourceful company like Google bends over to some control-freak right wing governments like we have.
Why wouldn't they? They obviously see an opportunity to grab even more control over the Internet than they already have.
This change just moves the bar for modification to be controlling the remote update source. I'm sure it will still be possible to alter that and therefore gain control. This would be similar to how you handle DNS.
Every OS except Android receives regular CA updates, including them various Linuxes. Android devices are still trusting known bad actors like Startcom exactly because there's no way to update just the CA store (and cheap Chinese brands definitely won't release full system updates for this after dropping support a year after the phone came out).
You can disable the toggle for every system CA in your phone's settings if you want. That is, unless you think the big bad UK government bugged your phone to hide the CA that's been planted there, but if that's part of your threat model, the government certificate may be hidden on your phone already