#8 add app lock with passcode and biometric unlock
- Gate every layer behind AppLockView when the lock is enabled and lock on launch and on backgrounding; the passcode lives only in the Keychain (AppLockVault) and the enable state defaults to off. - Add the lock section to Settings: enable/setup, change passcode and disable all require the current passcode via a shared passcode sheet; Face ID / Touch ID unlock prompts automatically and can be toggled with passcode confirmation. - Add NSFaceIDUsageDescription to both app targets, cover the passcode policy with tests, guard the feature in verify.sh and document it in SECURITY.md.
This commit is contained in:
1 parent
b0eb44d7a7
commit
0d78e02d2b
13 files changed
+663
-21
No files matched your search
+3
-5
@@ -7,6 +7,9 @@
|
||||
- TLS trust оценивается системным Apple Security framework как сертификат
|
||||
сервера (`SecPolicyCreateSSL(true, ...)`) для домена из JID; hostname и цепочка
|
||||
доверия обязательны даже при ручном адресе подключения.
|
||||
- Приложение можно заблокировать паролем (хранится в Keychain, выключено по
|
||||
умолчанию): блокировка срабатывает при запуске и при уходе в фон, а
|
||||
разблокировка возможна по Face ID/Touch ID.
|
||||
- Пароль для SCRAM нормализуется по RFC 4013 (SASLprep), чтобы совпадать с
|
||||
серверной нормализацией; для PLAIN пароль отправляется как введён.
|
||||
- SCRAM доступен в вариантах SHA-512 (предпочтительный, реализация Luma),
|
||||
@@ -14,11 +17,6 @@
|
||||
- Канал шифруется STARTTLS/direct TLS через SecureTransport с уровнем
|
||||
`negotiatedSSL` (исключает TLS ниже 1.2) и ALPN «xmpp-client»; на системах
|
||||
с поддержкой SecureTransport договаривается TLS 1.3.
|
||||
- SCRAM доступен в вариантах SHA-512 (предпочтительный, реализация Luma),
|
||||
SHA-256 и SHA-1 (Martin); механизм выбирается по рекламе сервера.
|
||||
- Канал шифруется STARTTLS/direct TLS через SecureTransport с уровнем
|
||||
`negotiatedSSL` (исключает TLS ниже 1.2) и ALPN «xmpp-client»; на системах
|
||||
с поддержкой SecureTransport договаривается TLS 1.3.
|
||||
- Когда OMEMO включено глобально или для конкретного чата, исходящие сообщения
|
||||
не откатываются на plaintext при ошибке: ошибка показывается пользователю.
|
||||
- Пользователь может осознанно отключить OMEMO глобально или для отдельного
|
||||
|
||||
Reference in new issue
Block a user