Androidのフルデバイス暗号化技術|電子書籍BookLive!Secure Code Warrior

2017年11月02日発行
ピーテル・デ・クレマー著
ケーススタディ

Androidのフルデバイス暗号化技術|電子書籍BookLive!Secure Code Warrior

2017年11月02日発行
ピーテル・デ・クレマー著
リソースを見る
リソースを見る

デバイス暗号化とは、Androidデバイス上のすべてのデータを暗号化するプロセスです。Android端末でこの機能を有効にすると、ユーザーが作成したすべてのデータは、ストレージに書き込まれる前に直ちに暗号化されます。これにより、権限のない第三者がデータにアクセスしようとしても、データを読み取ることができないようにデータが保護されます。スマートフォンは、他のコンピュータ機器に比べて紛失や盗難に遭いやすいため、この機能は特に有効です。スマートフォンのロックを解除しない限り、好奇心旺盛な発見者や泥棒はデータにアクセスできません。

Androidでは、デバイスの暗号化として、「フルディスク暗号化」と「ファイルベース暗号化」の2種類があります。

フルディスクの暗号化

フルディスク暗号化は、APIレベル19(Android 4.4 KitKat)で導入されましたが、APIレベル21(Android 5.0 Lollipop)の新機能により、本格的に利用されるようになりました。フルディスク暗号化は、1つの鍵を使ってデバイスのユーザーデータ・パーティション全体を保護します。鍵はユーザーの認証情報とともに保護され、ディスクのどの部分にもアクセスできるようにするには、起動時に認証情報を提供する必要があります。

これはセキュリティ上は素晴らしいことですが、ユーザーが認証情報を入力するまで、デバイスのほとんどの機能が利用できないことを意味します。つまり、ロックが解除されていない状態でデバイスが再起動されると、アラームなどの一部の機能が動作しなかったり、サービスが利用できなかったり、電話が受けられなかったりするのです。このような理由から、2つ目の暗号化モードが作られました。

ファイルベースの暗号化

デバイス暗号化の2番目のモードであるファイルベースの暗号化は、APIレベル24(Android 7.0 Nougat)から利用可能です。このモードでは、異なるファイルが異なる鍵で暗号化され、それぞれ独立してロックを解除することができます。この暗号化モードに伴い、暗号化されたデバイスがロック画面に直接起動し、デバイスのロックを解除する前にこれまで欠けていた機能を有効にすることができる「ダイレクトブート」モードが登場しました。

Direct Bootは、デバイスのロックが解除される前に、アプリが限られたコンテキスト内で動作することを可能にします。これにより、ユーザー情報を損なうことなく、期待通りの機能を発揮することができます。この機能を提供するために、Android端末には2つのストレージが必要です。

  1. クレデンシャル暗号化ストレージ。ユーザーがデバイスのロックを解除した後にのみ利用できる、デフォルトの保存場所。
  2. デバイス暗号化ストレージ。ダイレクトブートモードで、ユーザーがデバイスのロックを解除した後に利用可能。
顧客機密情報の保護

Direct Bootモードで実行中にアプリがデータにアクセスする必要がある場合は、「デバイス暗号化ストレージ」を使用する必要があります。ただし、セキュリティ上の問題に注意してください。デバイス暗号化ストレージは、機密データの保存には使用しないでください。デバイス暗号化ストレージは、デバイスが正常に起動するとすぐに利用可能なキーで暗号化されます。ユーザーのみがアクセスできるデータは、デフォルトの場所であるクレデンシャル暗号化ストレージに保存する必要があります。

暗号化とは何か、なぜ暗号化が重要なのかについて詳しく知りたい方は、Secure Code Warrior ポータルのビデオをご覧ください。また、暗号化に関する知識を試すために、いくつかの課題に挑戦してみてはいかがでしょうか。

あなたのデバイスのためのステップバイステップのガイドが必要ですか?Pixel PrivacyのBill Hess氏の記事をご覧ください。

何か新しいことを学んでいただけたでしょうか。また来週お会いしましょう

クレデンシャル暗号化ストレージ:デフォルトのストレージの場所で、ユーザーがデバイスのロックを解除した後にのみ利用できます。

https://developer.android.com/training/articles/direct-boot.html

リソースを見る
リソースを見る

著者

ピーテル・デ・クレマー

もっと知りたい?

セキュアコーディングに関する最新の知見をブログでご紹介しています。

当社の豊富なリソースライブラリは、安全なコーディングアップスキルに対する人間的なアプローチを強化することを目的としています。

ブログを見る
もっと知りたい?

開発者主導のセキュリティに関する最新の研究成果を入手する

ホワイトペーパーからウェビナーまで、開発者主導のセキュアコーディングを始めるために役立つリソースが満載のリソースライブラリです。今すぐご覧ください。

リソース・ハブ

Androidのフルデバイス暗号化技術|電子書籍BookLive!Secure Code Warrior

2017年11月02日発行
Pieter De Cremer 著

デバイス暗号化とは、Androidデバイス上のすべてのデータを暗号化するプロセスです。Android端末でこの機能を有効にすると、ユーザーが作成したすべてのデータは、ストレージに書き込まれる前に直ちに暗号化されます。これにより、権限のない第三者がデータにアクセスしようとしても、データを読み取ることができないようにデータが保護されます。スマートフォンは、他のコンピュータ機器に比べて紛失や盗難に遭いやすいため、この機能は特に有効です。スマートフォンのロックを解除しない限り、好奇心旺盛な発見者や泥棒はデータにアクセスできません。

Androidでは、デバイスの暗号化として、「フルディスク暗号化」と「ファイルベース暗号化」の2種類があります。

フルディスクの暗号化

フルディスク暗号化は、APIレベル19(Android 4.4 KitKat)で導入されましたが、APIレベル21(Android 5.0 Lollipop)の新機能により、本格的に利用されるようになりました。フルディスク暗号化は、1つの鍵を使ってデバイスのユーザーデータ・パーティション全体を保護します。鍵はユーザーの認証情報とともに保護され、ディスクのどの部分にもアクセスできるようにするには、起動時に認証情報を提供する必要があります。

これはセキュリティ上は素晴らしいことですが、ユーザーが認証情報を入力するまで、デバイスのほとんどの機能が利用できないことを意味します。つまり、ロックが解除されていない状態でデバイスが再起動されると、アラームなどの一部の機能が動作しなかったり、サービスが利用できなかったり、電話が受けられなかったりするのです。このような理由から、2つ目の暗号化モードが作られました。

ファイルベースの暗号化

デバイス暗号化の2番目のモードであるファイルベースの暗号化は、APIレベル24(Android 7.0 Nougat)から利用可能です。このモードでは、異なるファイルが異なる鍵で暗号化され、それぞれ独立してロックを解除することができます。この暗号化モードに伴い、暗号化されたデバイスがロック画面に直接起動し、デバイスのロックを解除する前にこれまで欠けていた機能を有効にすることができる「ダイレクトブート」モードが登場しました。

Direct Bootは、デバイスのロックが解除される前に、アプリが限られたコンテキスト内で動作することを可能にします。これにより、ユーザー情報を損なうことなく、期待通りの機能を発揮することができます。この機能を提供するために、Android端末には2つのストレージが必要です。

  1. クレデンシャル暗号化ストレージ。ユーザーがデバイスのロックを解除した後にのみ利用できる、デフォルトの保存場所。
  2. デバイス暗号化ストレージ。ダイレクトブートモードで、ユーザーがデバイスのロックを解除した後に利用可能。
顧客機密情報の保護

Direct Bootモードで実行中にアプリがデータにアクセスする必要がある場合は、「デバイス暗号化ストレージ」を使用する必要があります。ただし、セキュリティ上の問題に注意してください。デバイス暗号化ストレージは、機密データの保存には使用しないでください。デバイス暗号化ストレージは、デバイスが正常に起動するとすぐに利用可能なキーで暗号化されます。ユーザーのみがアクセスできるデータは、デフォルトの場所であるクレデンシャル暗号化ストレージに保存する必要があります。

暗号化とは何か、なぜ暗号化が重要なのかについて詳しく知りたい方は、Secure Code Warrior ポータルのビデオをご覧ください。また、暗号化に関する知識を試すために、いくつかの課題に挑戦してみてはいかがでしょうか。

あなたのデバイスのためのステップバイステップのガイドが必要ですか?Pixel PrivacyのBill Hess氏の記事をご覧ください。

何か新しいことを学んでいただけたでしょうか。また来週お会いしましょう

クレデンシャル暗号化ストレージ:デフォルトのストレージの場所で、ユーザーがデバイスのロックを解除した後にのみ利用できます。

https://developer.android.com/training/articles/direct-boot.html

弊社製品や関連するセキュアコーディングのトピックに関する情報をお送りする許可をお願いします。当社は、お客様の個人情報を細心の注意を払って取り扱い、マーケティング目的で他社に販売することは決してありません。

送信
フォームを送信するには、「Analytics」のCookieを有効にしてください。完了したら、再度無効にしてください。