バックナンバーはこちら

today&tomorrow

What's New in DesignWare IP?

2018 Mar. vol.109

Androidベースのモバイル端末におけるeMMC/UFSのインライン暗号化

Android端末における暗号化

セキュア・ロック画面を使用しないAndroid端末では、データ・ストレージの暗号化はオプションですが、セキュア・ロック画面をサポートしたAndroid端末では、プライベート・アプリケーション・データと共有アプリケーション・データの両方に対してデータ・ストレージ暗号化を有効にできます。Android端末の暗号化には、フルディスク暗号化とファイル・ベース暗号化の2つの方法があります。eMMCおよびUFSホスト・コントローラは幅広い暗号化アルゴリズムをサポートしており、どちらの暗号化も利用できます(図3)。

画像

図3:eMMCおよびUFSは幅広い暗号化アルゴリズムをサポートしており、フルディスク暗号化とファイル・ベース暗号化の両方が可能

フルディスク暗号化はAndroid v4.4で一部導入され、Android v5.0で完全に導入されました。フルディスク暗号化では、Android端末上のすべてのユーザー・データが1つの暗号鍵で自動的に符号化されます。端末を暗号化すると、ユーザーが作成したデータはすべて自動的に暗号化されてからディスクに書き込まれ、読み出したデータはすべて自動的に復号化されてから処理されます。

フルディスク暗号化は1つの暗号鍵を使用してデータを保護します。ディスクの暗号鍵は端末のユーザー・パスワードで保護されます。この暗号鍵を、暗号化していないストレージに書き込むことは認められません。Android端末のフルディスク暗号化は、Linuxカーネルのdm-crypt機能を利用しています。この機能はブロック・デバイス・レイヤで動作するため、Linuxカーネルからブロック・デバイスとして認識されるeMMC/UFSデバイスも暗号化が可能です。

フルディスク暗号化を使用すると、端末をブートしてからユーザーが認証情報を入力するまでは一切のディスク・アクセスが行えません。これはセキュリティの面では好都合ですが、ユーザーが認証情報を入力するまで携帯電話の基本機能をほとんど利用できないという弊害もあります。ユーザー・データへのアクセスはユーザーの認証情報で保護されているため、アラーム、アクセシビリティ・サービス、電話サービスなどの機能は利用できません。フルディスク暗号化ではマスター鍵の暗号化にAES-CBC(Advanced Encryption Standard-Cipher Block Chaining)、データの暗号化にAES-CBC-ESSIV(Encrypted Salt-Sector Initialization Vector)を使用します。

Android 7.0以降ではもう1つの方法の暗号化としてファイル・ベースの暗号化がサポートされています。これはファイルごとに異なる鍵で暗号化を行うもので、各ファイルを個別にロック解除できます。ファイル・ベースの暗号化をサポートした端末は、ダイレクト・ブートと呼ばれる新しい機能もサポートできます。ダイレクト・ブートでは、ユーザーが認証情報を入力しなくても暗号化した端末をロック画面までブートできます。このため、アクセシビリティ・サービスやアラームなど、端末の基本的な機能にすばやくアクセスできます。

ファイル・ベースの暗号化を使用したデバイスでは、ユーザーは以下の2つの保存先を利用できます。

  • 認証情報暗号化(CE)ストレージ:ユーザーが認証情報を入力して端末のロックを解除しないとアクセスできません。こちらがデフォルトの保存先です。
  • 端末暗号化(DE)ストレージ:この保存先は、ダイレクト・ブート・モード中とユーザーが端末のロックを解除した後の両方で使用できます。DEストレージの鍵は、デバイスのハードウェアRoT(Root of Trust:信頼の起点)に暗号学的にバインドされます。

ダイレクト・ブートに対応したアプリケーションはDEストレージにアクセスできますが、CEストレージにはユーザーが認証情報を入力して端末をロック解除するまではアクセスできません。ファイル・ベースの暗号化を使用した場合、ユーザーが端末のパスワードを入力する前でもアラームや電話サービスなどのアプリケーションは制限されたコンテキスト内で動作が可能です。ファイル・ベースの暗号化モードでは、ファイル内容はAES-XTSを使用して暗号化され、ファイル名はAES-CBC-CTS(Cipher Text Stealing)モードを使用して暗号化されます。

Androidの場合、CEおよびDEストレージはそれぞれ異なる一意の鍵で保護する必要があり、これらの鍵はトラステッド実行環境(TEE)内にあるハードウェア・ベースのキーストアに暗号学的にバインドされている必要があります。

まとめ

コンシューマがモバイル端末のメモリー・パーティションに重要なユーザー・データを格納するようになり、それに対するハッキングも増えているため、セキュリティは非常に大きな課題となっています。Androidなどのオペレーティング・システムにもソフトウェア暗号化の機能がありますが、JEDECなどの標準化団体はホスト・コントローラ内部でセキュリティ関連タスクを実行する暗号化/復号化エンジンを定義しています。ハードウェア・インライン暗号化でデータを暗号化することにより、JEDEC eMMC/UFS規格のユーザーはより高いシステム性能を手にすることができます。最新のJEDEC規格に準拠したシノプシスDesignWare Mobile Storage IPソリューションはAES(Advanced Encryption Standard)ハードウェア・エンジンを内蔵しており、Androidエコシステムを対象にした幅広い種類の暗号処理を実行できます。

カテゴリートップ