Android Keystore System
Что такое Android Keystore System?
Android Keystore SystemAndroid's hardware-backed key container that confines cryptographic key material to a Trusted Execution Environment or StrongBox, exposing keys only by reference and enforcing per-key access policies such as biometric or device-credential gating.
The Android Keystore System is Android's primary API for hardware-protected key material, available via `android.security.keystore` and `KeyGenParameterSpec`. When the device supports it, keys are generated and stored inside a Trusted Execution Environment (TEE — typically ARM TrustZone) or, on devices with a discrete StrongBox security chip (e.g. Pixel Titan M), inside that chip. Application code receives only opaque key references; the actual key material never enters the Android Linux kernel or app memory. Per-key policies enforced by the keystore include user-authentication-required (biometric or device credential), validity duration after authentication, attestation-required, and unlocked-device-required. Key Attestation (`KeyMint`/`Keymaster`) lets a server verify that a given public key was generated inside a real TEE/StrongBox on a Google-attested device, which is the basis for hardware-bound mobile FIDO2 / WebAuthn passkeys. Common AppSec issues include not setting `setUserAuthenticationRequired` for sensitive keys, not setting `setInvalidatedByBiometricEnrollment(true)` (so enrolling a new fingerprint silently keeps the key valid), and bypassing the keystore entirely by holding raw keys in SharedPreferences.
● Примеры
- 01
A FIDO2 passkey app generates an EC P-256 key in StrongBox with `setUserAuthenticationRequired(true)` and presents the resulting attestation chain to its server.
- 02
A code review flags an Android app deriving an AES key with PBKDF2 at runtime and storing it in SharedPreferences, instead of generating it inside the Keystore.
● Частые вопросы
Что такое Android Keystore System?
Android's hardware-backed key container that confines cryptographic key material to a Trusted Execution Environment or StrongBox, exposing keys only by reference and enforcing per-key access policies such as biometric or device-credential gating. Относится к категории Мобильная безопасность в кибербезопасности.
Что означает Android Keystore System?
Android's hardware-backed key container that confines cryptographic key material to a Trusted Execution Environment or StrongBox, exposing keys only by reference and enforcing per-key access policies such as biometric or device-credential gating.
Как работает Android Keystore System?
The Android Keystore System is Android's primary API for hardware-protected key material, available via `android.security.keystore` and `KeyGenParameterSpec`. When the device supports it, keys are generated and stored inside a Trusted Execution Environment (TEE — typically ARM TrustZone) or, on devices with a discrete StrongBox security chip (e.g. Pixel Titan M), inside that chip. Application code receives only opaque key references; the actual key material never enters the Android Linux kernel or app memory. Per-key policies enforced by the keystore include user-authentication-required (biometric or device credential), validity duration after authentication, attestation-required, and unlocked-device-required. Key Attestation (`KeyMint`/`Keymaster`) lets a server verify that a given public key was generated inside a real TEE/StrongBox on a Google-attested device, which is the basis for hardware-bound mobile FIDO2 / WebAuthn passkeys. Common AppSec issues include not setting `setUserAuthenticationRequired` for sensitive keys, not setting `setInvalidatedByBiometricEnrollment(true)` (so enrolling a new fingerprint silently keeps the key valid), and bypassing the keystore entirely by holding raw keys in SharedPreferences.
Как защититься от Android Keystore System?
Защита от Android Keystore System обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Android Keystore System?
Распространённые альтернативные названия: AndroidKeystore, KeyStore (Android).
● Связанные термины
- mobile-security№ 612
iOS Keychain
Apple's encrypted credential store on iOS, iPadOS, and macOS, backed by the Secure Enclave and graded by per-item accessibility classes that bind decryption to device unlock, passcode, biometric, or hardware-bound state.
- mobile-security№ 772
Безопасность мобильных приложений
Практика проектирования, разработки и тестирования iOS- и Android-приложений для защиты данных пользователя, предотвращения реверс-инжиниринга и противодействия модификации во время выполнения.
- compliance№ 871
OWASP MASVS
OWASP Mobile Application Security Verification Standard — базовый набор проверяемых требований безопасности для мобильных приложений iOS и Android.
- identity-access№ 458
FIDO2
Открытый стандарт аутентификации FIDO Alliance, объединяющий WebAuthn (браузерный API) и CTAP (протокол аутентификатора) для входа без пароля с защитой от фишинга.
- cloud-security№ 1300
Доверенная среда исполнения (TEE)
Безопасный изолированный контекст выполнения внутри процессора, где код и данные защищены по конфиденциальности и целостности даже от ОС хоста и гипервизора.
- identity-access№ 112
Биометрическая аутентификация
Метод аутентификации, проверяющий личность по уникальным физическим или физиологическим признакам — отпечаткам пальцев, лицу, радужке или голосу.