SECURITY.md describes a biometric key that does not exist, and the checklist is missing the rows the log says it has #66
Labels
No Label
P0
P1
P2
release-blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/Privacy-Period-Tracker#66
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What is true now. Two documents describe a
BiometricKey—core/security/.../AndroidKeyStoreMacProvider.kt:31('The biometric key in [BiometricKey] does set it, correctly...') anddocs/security/SECURITY.md:73-79('The biometric key is separate and takes the opposite policy').grep -rn BiometricKeyreturns exactly those two references and no such class. There is no biometric-bound Keystore key anywhere:BiometricUnlock.ktuses noCryptoObject, andAppLockViewModel.unlockFromBiometric()(:135-138) simply flips the session flag.Separately,
docs/history/DEVELOPMENT_LOG.md:381-385states that six device checks — a fingerprint enrolled on API 26/27, rotation and fontScale 2.0 while unlocked, a reminder action tapped while locked on hardware, an OEM biometric overlay, a FLAG_SECURE flicker on first launch, and TalkBack on the lock screen — 'are now rows in SECURITY_CHECKLIST.md rather than memory'.grep -in 'biometric|fingerprint|talkback|rotation|fontScale|flicker'over that 87-line file returns nothing. They were never added.What it costs. A security document that describes protection the code does not have is worse than one that admits the gap: the next reader trusts it. And a checklist that is missing the rows the log says it has means the release gate silently skips them.
What to do. Replace the phantom sentences with what is true — a biometric success flips the session flag and nothing else — and record the enrolment-invalidated key as a filed follow-up for the PIN-and-fingerprint mode only, where the threat (a partner enrols their own finger) is real and the degrade path to the PIN exists. Add the six promised rows to the checklist, plus rows for whatever biometric-only mode ships.
Traps. Do not 'fix' this by implementing a biometric-bound key in a mode with no PIN behind it: a key invalidated by ordinary enrolment would degrade to permanent lockout under the no-recovery policy, which
AndroidKeyStoreMacProvider's own KDoc forbids.Verify:
grep -rn BiometricKeyreturns nothing outside a follow-up note, anddocs/security/SECURITY_CHECKLIST.mdcontains a row for each of the six device checks named in DEVELOPMENT_LOG.md:381-385.