fix(security): require a fresh PIN or biometric check for sensitive actions
An unlocked phone was enough to read the 24-word recovery phrase. The phrase, backup export and import, the duress PIN, a longer auto-lock, turning off screen security, enabling biometrics and deleting the account now ask for the PIN (or biometrics with biometricOnly) every time. The duress session never shows the phrase. PIN checks outside the lock screen count towards the same failure throttle.
This commit is contained in:
+27
-1
@@ -486,5 +486,31 @@
|
||||
"profilePhotoPick": "Choose photo",
|
||||
"profilePhotoRemove": "Remove photo",
|
||||
"profilePhotoHint": "Only people you chat with will see it — end-to-end encrypted like your messages. No location or photo metadata is sent.",
|
||||
"profilePhotoFailed": "Could not set photo: {error}"
|
||||
"profilePhotoFailed": "Could not set photo: {error}",
|
||||
"reauthTitle": "Confirm it's you",
|
||||
"reauthPinRequired": "This action needs a PIN. Set one first.",
|
||||
"reauthSetPin": "Set PIN",
|
||||
"reauthReasonSeed": "Show the 24 recovery words",
|
||||
"reauthReasonBackupExport": "Export backup",
|
||||
"reauthReasonBackupImport": "Restore from backup",
|
||||
"reauthReasonDecoyPin": "Change the duress PIN",
|
||||
"reauthReasonAutoLock": "Extend the auto-lock",
|
||||
"reauthReasonScreenSecurity": "Turn off screen security",
|
||||
"reauthReasonDeleteAccount": "Delete the account and all data",
|
||||
"reauthReasonBiometrics": "Turn on biometrics",
|
||||
"contactRequestName": "{name} (unknown)",
|
||||
"pushMessageRequest": "Message request from an unknown sender",
|
||||
"requestTitle": "Message request",
|
||||
"requestBody": "“{name}” is not in your contacts. They chose the name and photo themselves, so they may not be who they claim to be. Until you accept, they can't see that you read the message and can't call you.",
|
||||
"requestLookalikeWarning": "Careful: your contact {name} has the same name. This is a different key, so a different phone or a different person. Check another way before you reply (call, meet in person).",
|
||||
"requestAccept": "Accept",
|
||||
"requestAcceptTitle": "Accept as contact",
|
||||
"requestAcceptBody": "Name the contact yourself. The name the sender chose is not taken over automatically.",
|
||||
"requestAcceptNameLabel": "Contact name",
|
||||
"requestNameEmpty": "Enter a name.",
|
||||
"requestNameTaken": "Another contact already has this (or a very similar) name. Choose one that can't be confused.",
|
||||
"noticeIdentityChanged": "The safety code of {name} has changed. A different key showed up at their address: a new phone, a reinstall, or an impostor. Verification has been removed. Compare the code again before you send anything sensitive.",
|
||||
"noticeLookalikeRequest": "An unknown sender named themselves “{claimed}”, which looks like your contact {name}. It is not this contact, the message came from a different key. You'll find it in your chats as a message request.",
|
||||
"noticeVerifyAction": "Verify code",
|
||||
"noticePreview": "Security notice"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user