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 モバイルアプリケーションセキュリティ検証標準。iOS と Android のモバイルアプリ向けの検証可能なセキュリティ要件の基盤。
- identity-access№ 458
FIDO2
FIDO アライアンスの開かれた認証規格で、WebAuthn(ブラウザ API)と CTAP(認証器プロトコル)を組み合わせ、フィッシング耐性のあるパスワードレスサインインを実現する。
- cloud-security№ 1300
TEE(Trusted Execution Environment)
プロセッサ内の安全で隔離された実行環境。コードとデータは、ホスト OS やハイパーバイザーからも機密性・完全性が守られる。
- identity-access№ 112
生体認証
指紋・顔・虹彩・声紋など、個人固有の身体的・生理的特徴によって本人確認を行う認証方式。