fix(app): an Apple device's keychain gives the keys only while it is unlocked
The reading of the full reading's fixes found that first_unlock_this_device left the account's private keys readable on a locked phone once it had been unlocked after starting, which is what forensic tools extract from a stolen one; and that, the accessibility being part of every keychain lookup, an entry kept with another class stayed unseen and made the next write fail as a duplicate, so that person couldn't finish signing in on that device. As the developer decided, the keys are kept unlocked_this_device (still never in a backup nor in iCloud Keychain); nothing decrypts with them while the device is locked. Keeping keys deletes the entry first, which a delete finds whatever its class. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
fac9a000a1
commit
9348504163
1 changed files with 78 additions and 13 deletions
|
|
@ -65,8 +65,9 @@ Written as the apps are: Dart 3.13's primary constructors, Material from
|
|||
sodium's are views of memory freed with the isolate that made them) and an
|
||||
`AccountKeyStore` (`SecureAccountKeyStore`: the account's unlocked keys in
|
||||
the system's keyring, per instance and person, gone once another person
|
||||
signs in or nobody; on iOS and macOS `first_unlock_this_device`, so never
|
||||
in a backup restored elsewhere nor in iCloud Keychain). Signing in (SRP's M2 checked and the keys opened before
|
||||
signs in or nobody; on iOS and macOS `unlocked_this_device`, so readable
|
||||
only while the device is unlocked, never in a backup restored elsewhere nor
|
||||
in iCloud Keychain, each write deleting the entry before it). Signing in (SRP's M2 checked and the keys opened before
|
||||
anything is trusted), signing up (the recovery phrase shown once and three of
|
||||
its words typed back before anything reaches the instance), a setup never
|
||||
finished, the authenticators (QR codes drawn with pub.dev's `qr`), recovery
|
||||
|
|
|
|||
Loading…
Reference in a new issue