Этап 0 п.3: безопасность-минимум (trust-all off в release, шифрование пароля, allowBackup, ревокация)

1. trust-all TLS отключён в release: гейт if(!BuildConfig.DEBUG) в UnsafeSsl +
   OfficeWebViewClient + TalkCallActivity; чекбокс скрыт в release. buildConfig
   включён в core:network и feature:talk.
2. allowBackup=false (tools:replace поверх vendor true).
3. app password шифруется в покое AndroidKeystore AES-256-GCM (KeystoreCrypto),
   AuthStore мигрирует legacy-plaintext при первом load. Биометрия — отдельная
   задача (ломает фоновые push/звонки, нужен кэш в памяти).
4. Ревокация app password при logout (AppPasswordRevoker, DELETE core/apppassword,
   best-effort).

Проверено: assembleRelease 53 МБ, подпись v2+v3, allowBackup=false в манифесте OK.
This commit is contained in:
b-dev-mobile
2026-07-07 19:51:23 +00:00
parent c259936e82
commit 51fd1bf936
12 changed files with 167 additions and 20 deletions
+1
View File
@@ -14,6 +14,7 @@ android {
}
buildFeatures {
compose true
buildConfig true // BuildConfig.DEBUG — гейт trust-all TLS в WebView звонка (только debug)
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
@@ -333,7 +333,8 @@ class TalkCallActivity : ComponentActivity() {
handler: SslErrorHandler?,
error: SslError?,
) {
if (launch.trustAllCerts) {
// trust-all TLS — только debug (см. UnsafeSsl); в release штатная проверка.
if (launch.trustAllCerts && BuildConfig.DEBUG) {
handler?.proceed()
} else {
super.onReceivedSslError(view, handler, error)