2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
Android セキュリティ機能
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
このセクションで説明する機能を使用すると、開発した Android デバイスを可能な限り安全にできます。
アプリ サンドボックス
Android プラットフォームでは、アプリのリソースの識別と隔離のために Linux ユーザーベースの保護を利用しています。これを行うために、Android は各 Android アプリに固有のユーザー ID(UID)を割り当て、独自のプロセスで実行します。Android では、この UID を使用してカーネルレベルのアプリ サンドボックスを設定します。
アプリの署名
アプリに署名することで、デベロッパーは複雑なインターフェースや権限を作成しなくてもアプリの作成者を特定し、アプリを更新できます。Android プラットフォームで実行されるすべてのアプリには、デベロッパーによる署名が必要です。
認証
Android では、暗号鍵、サービス プロバイダ、ユーザー認証システムを必要とするユーザー認証依存型の暗号鍵の概念が使用されます。
指紋認証センサーを備えたデバイスでは、ユーザーが 1 つ以上の指紋を登録してデバイスのロック解除などの操作に使用できます。ゲートキーパー サブシステムは、高信頼実行環境(TEE)でデバイスのパターン認証またはパスワード認証を実行します。
Android 9 以降には Protected の確認機能があり、ユーザーは支払いなどの重要な取引を正式に確認できます。
生体認証システム
Android 9 以降には BiometricPrompt API が含まれています。アプリ デベロッパーはこれによりデバイスやモダリティに依存しない形で生体認証をアプリに統合できます。BiometricPrompt
と統合できるのは強力な生体認証のみです。
暗号化
デバイスが暗号化されると、ユーザーが作成したすべてのデータはディスクにコミットされる前に自動的に暗号化され、すべての読み取りで呼び出しプロセスに戻す前にデータが自動的に復号されます。暗号化することにより、不正な第三者がデータにアクセスしようとしてもデータを読み取ることができません。
キーストア
Android ではハードウェア式のキーストアを利用できます。これにより、キーの生成、非対称鍵のエクスポート、未加工の対称鍵のインポート、所定のパディング モードによる非対称の暗号化と復号などができます。
Security-Enhanced Linux
Android では、Android セキュリティ モデルの一環として、Security-Enhanced Linux(SELinux)を使用し、root やスーパーユーザー権限(Linux 機能)で実行されるプロセスを含むすべてのプロセスに強制アクセス制御(MAC)を適用しています。
Trusty の高信頼実行環境(TEE)
Trusty は、Android 用の Trusted Execution Environment(TEE)を実現するセキュアなオペレーティング システム(OS)です。Trusty OS は、Android OS と同じプロセッサ上で稼働しますが、ハードウェア レベルとソフトウェア レベルの両方で、システム内の残りの部分から分離されます。
確認付きブート
確認付きブートは、攻撃者が作成したコードや破損したコードではなく、信頼できる提供元(通常はデバイスの OEM)のコードを確実に実行するための機能です。ハードウェアで保護されたルート オブ トラストからブートローダーにいたるまでのすべての部分に対する信頼が、ブート パーティションやその他の確認済みのパーティションについて確立されます。
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-26 UTC。
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2025-03-26 UTC。"],[],[],null,["# Android security features\n\nUse the features described in this section to make the Android devices you\ndevelop as secure as possible.\n\nApplication Sandbox\n-------------------\n\nThe Android platform takes advantage of the Linux user-based protection to\nidentify and isolate app resources. To do this, Android assigns a unique user ID\n(UID) to each Android app and runs it in its own process. Android uses\nthis UID to set up a kernel-level Application Sandbox.\n\nApp signing\n-----------\n\nApp signing allows developers to identify the author of the app\nand to update their app without creating complicated interfaces and\npermissions. Every app that runs on the Android platform must be\nsigned by the developer.\n\nAuthentication\n--------------\n\nAndroid has the concept of *user authenticators* that can unlock the\ndevice and perform other tasks:\n\n- The [Gatekeeper subsystem](/docs/security/features/authentication/gatekeeper) performs device pattern or password authentication in a Trusted Execution Environment (TEE).\n- The optional Weaver component performs pattern or password authentication in a separate secure element.\n- Devices with a fingerprint sensor support the use of enrolled fingerprints.\n- Devices can support face authentication.\n\nAndroid also supports hardware-backed cryptographic keys that can be used only\nif user authentication with one of these mechanisms has occurred.\n\nBiometrics\n----------\n\nAndroid 9 and higher includes a [`BiometricPrompt`\nclass](https://developer.android.com/reference/android/hardware/biometrics/BiometricPrompt)\nthat app developers can use to integrate biometric authentication into their\napps in a device- and modality-agnostic fashion. Only strong biometrics can\nintegrate with `BiometricPrompt`.\n\nEncryption\n----------\n\nOnce a device is encrypted, all user-created data is automatically encrypted\nbefore committing it to disk and all reads automatically decrypt data before\nreturning it to the calling process. Encryption ensures that even if an\nunauthorized party tries to access the data, they can't read it.\n\nKeystore\n--------\n\nAndroid offers a hardware-backed keystore that provides cryptographic\nfunctionality where the key material is contained within a secure environment.\n[Android Keystore](https://developer.android.com/privacy-and-security/keystore)\nsupports generation and import of both symmetric and asymmetric keys, combined\nwith encryption, decryption, signing, and key agreement primitives.\n\nSecurity-Enhanced Linux\n-----------------------\n\nAs part of the Android security model, Android uses Security-Enhanced Linux\n(SELinux) to enforce mandatory access control (MAC) over all processes, even\nprocesses running with root or superuser privileges (Linux capabilities).\n\nTrusty TEE\n----------\n\nTrusty TEE\n----------\n\n[Trusty](/docs/security/features/trusty) is a secure operating system (OS) that\nprovides a TEE for Android. The Trusty OS runs on the same processor as the\nAndroid OS, but Trusty is isolated from the rest of the system by both hardware\nand software.\n\nVerified Boot\n-------------\n\n[Verified Boot](/docs/security/features/verifiedboot) is designed to ensure that all\nexecuted code comes from a trusted source (usually device OEMs), rather than\nfrom an attacker or corruption. Verified Boot establishes a full chain of trust, starting\nfrom a hardware-protected root of trust to the bootloader, to the boot partition\nand other verified partitions."]]