Ответ
- HTTPS – базовый уровень, шифрование трафика через SSL/TLS. Обязательно использовать валидные сертификаты и pinning (CertificatePinning/PublicKeyPinning).
- Токены доступа – JWT/OAuth с ограниченным сроком жизни + refresh-токены. Хранить в SecureSharedPreferences/EncryptedSharedPreferences.
- Подпись запросов – хеширование параметров с секретным ключом (HMAC) для верификации на сервере.
- Защита от MITM – реализация CertificatePinning через OkHttp:
val certificatePinner = CertificatePinner.Builder()
.add("api.example.com", "sha256/AAAAAAAA...")
.build()
val client = OkHttpClient.Builder()
.certificatePinner(certificatePinner)
.build()
- Шифрование данных – AES/GCM для чувствительных данных перед отправкой.
- Заголовки безопасности –
Strict-Transport-Security,Content-Security-Policyна сервере.
Дополнительно: obfuscation (ProGuard/R8), защита от реверс-инжиниринга.