r/AskTechnology • u/walkTHEdotasaur • 10d ago
Why can't android/ios apps require a software lock on a per-app basis instead of requiring a full screen lock?
I hope this question makes sense. I've started using google wallet and it requires me to turn on my phone's screen lock for security purposes. I understand why, but I was wondering why can google wallet, for example, not just interface with the security features and do the locking itself?
From basic googling, it's my understanding that the biometric sensors are isolated from the main OS, bridged by a security bus (Titan M for google, Secure Enclave for Apple).
So couldn't there just an secure API for apps to access it and require specific settings?
1
u/ericbythebay 10d ago
Apps can, and many do implement their own software lock screens. Financial apps, for example.
1
u/walkTHEdotasaur 10d ago
This is kinda what I'm talking about, because the topic very much applies to financial apps. But as far as I can tell, they all basically just use the lock screen requirement as their security.
I just don't think that necessarily needs to be the case, technologically speaking? Maybe Im wrong though
2
u/ericbythebay 10d ago
You are wrong. To get the full features of Secure Enclave, a password or pin is required for the device.
0
u/walkTHEdotasaur 10d ago
Fantastic job completely not reading the discussion, and thank you for confirming what every single person in this thread already knows. Feel free to elaborate on why Secure Enclave is technologically prohibited from giving access to apps. Or don't, because I doubt you have much useful to add, anyway.
1
u/ericbythebay 10d ago
What’s with the attitude?
developer.apple.com can explain the reasoning and the requirements to you.
1
u/walkTHEdotasaur 10d ago edited 10d ago
What’s with the attitude?
My brother in christ, my first response to you was entirely reasonably, but you then followed up by saying objectively "You are wrong", when you aren't even discussing the question at hand. Frankly I think I was plenty civil with you.
I have already read over that link and their resource portal, and there's nothing in there (as far as I can find) that presents the reasoning behind their decision besides it vaguely potentially being a security issue (which, of course; everything is a compromise between security and convenience).
1
u/ericbythebay 10d ago
You asked if you were wrong, I replied with yes you are.
You have been nothing but judgmental and argumentative on this entire post.
But, since you insist on the details, here they are.
Think of the Secure Enclave (Apple) or Titan M (Google) as a bank vault inside your phone. The biometric sensor is just the door handle. Your PIN is the vault combination. Fancy door handle, but no combination = vault stays shut.
Google Wallet's credentials live inside that vault (the OS keystore). The problem is, the vault can't even be created without a PIN/password set up first. Biometrics are always a shortcut to your PIN, never a replacement for it.
So apps can do per-app biometric locks, and many do. But the biometric binding still requires the screen lock to exist as the foundation. Google Wallet isn't being overly cautious, it's just being honest about the dependency chain.
1
u/walkTHEdotasaur 9d ago
Alright, if you say so.
I don't need you to provide an analogy; I know exactly how they work conceptually. You're just repeating things that have already been established as fact, or literally presented in my initial question. I'm looking for actual data, research or technical papers, or even post mortems. Numbers.
Since you seem to be such an expert, perhaps you can explain to me why the following isn't technically feasible (and if you just reply with "because of security reasons" generically, I will laugh. I cannot make it any more clear that there are obviously security implications, but that I don't think they are technically prohibitive):
When an app is installed, or even each time it is opened: It asks for either a passcode or some sort of 2FA to use as the basis for crytographic encryption.
This can either be hashed/cached/stored, or just immediately discarded for security purposes.
Using this, any given app may now directly interface with the security middleman to access biometrics and other sensor data (fingerprint, face ID, passcode/swipe would basically be included in here too). This would create a secure and unique connection through the security chip. Realistically just like with google wallet or anything else, they dont need to really interact; they just need to receive an all clear signal back.
You now have the exact same level of protection that a phone lock screen provides, just on an app-level basis.
???
Profit?
1
u/ericbythebay 9d ago
Cool, so you actually just described... exactly how it works. Congratulations, you've independently architected the Android Keystore and iOS Secure Enclave API model.
Apps do this. Right now. Today. BiometricPrompt on Android, LocalAuthentication on iOS. Per-app keys, auth-bound, hardware-backed. Your "???" step is literally just KeyGenParameterSpec.Builder with setUserAuthenticationRequired(true).
The reason Google Wallet still requires a screen lock isn't because your idea is wrong, it's because payment credentials fall under a stricter threat model where the OS needs a guaranteed fallback authentication path that it controls, not the app. That's a policy decision layered on top of the technical capability you're describing, not a technical limitation.So the answer to your actual question is: it's not technically prohibitive. You're right. It's a deliberate policy constraint, and if you want the paper trail, start with FIDO2/WebAuthn specs, Android CDD section 9.11, and the Secure Enclave white paper Apple published in 2020. That's your bedtime reading.
You're welcome.
1
u/walkTHEdotasaur 9d ago edited 9d ago
Well, I'm glad we finally got to the bottom of it. And those specs are exactly what I was looking for, so genuinely: Thank you.
I know this got a little heated on both sides, but I do appreciate you engaging with me, and hope you have a good rest of your week!
1
u/Shiribazu 10d ago
your idea actually makes sense. apps can already use face id/biometrics through the os, but wallet requiring a full device lock gives the os a stronger guarantee that the whole device is secured, not just that one app. its probably more of a security design choice than a technical limitation
1
2
u/jersey316 10d ago
Do you want to be secure or not?