暗号化とは、対称暗号鍵を使用して Android デバイス上のすべてのユーザーデータをエンコードするプロセスです。デバイスが暗号化されると、ユーザーが作成したすべてのデータはディスクにコミットされる前に自動的に暗号化され、すべての読み取りで呼び出しプロセスに戻す前にデータが自動的に復号されます。暗号化することにより、不正な第三者がデータにアクセスしようとしてもデータを読み取ることができなくなります。
Android のデバイス暗号化方法は、ファイルベースの暗号化とフルディスク暗号化の 2 つです。
ファイルベースの暗号化
Android 7.0 以降では、ファイルベースの暗号化がサポートされています。 ファイルベースの暗号化を使用すると、さまざまなファイルを異なる鍵で暗号化して、個別にロック解除できます。 ファイルベースの暗号化をサポートしているデバイスはダイレクト ブートにも対応しており、暗号化されたデバイスをロック画面が開いた状態で起動できるため、ユーザー補助サービスやアラームなどの重要なデバイス機能にすぐにアクセスできます。
ファイルベースの暗号化と、アプリが暗号化を認識できるようにする API により、限られたコンテキスト内でアプリが動作できるようになります。ユーザーが認証情報を提供する前に、個人情報を保護したままでこの動作が実現します。
メタデータの暗号化
Android 9 では、ハードウェア サポートがあるメタデータ暗号化のサポートが導入されました。メタデータ暗号化では、起動時に存在する 1 つの鍵で、FBE によって暗号化されていないコンテンツ(ディレクトリ レイアウト、ファイルサイズ、権限、作成日時や変更日時など)が暗号化されます。この鍵は Keymaster によって保護され、Keymaster は確認付きブートによって保護されます。
フルディスク暗号化
フルディスク暗号化は、Android 5.0 から Android 9 まででサポートされています。フルディスク暗号化では、ユーザーのデバイスのパスワードで保護された 1 つの鍵を使用して、デバイスのユーザーデータ パーティション全体を保護します。ユーザーは、起動時に認証情報を提供しないとディスクに一切アクセスできません。
これはセキュリティ保護には役立ちますが、スマートフォンの多くの主要機能をデバイスの再起動後すぐに利用することができません。データへのアクセスが 1 つのユーザー認証情報で保護されているため、アラームなどの機能が動作しなかったり、ユーザー補助サービスを利用できなかったり、スマートフォンで電話を受けられなかったりする可能性があります。