web-dev-qa-db-ja.com

ファイルベースの暗号化は、Androidのフルディスク暗号化と同等のセキュリティを提供しますか?

バージョン4.4と9の間Androidサポート フルディスク暗号化 (FDE)。Android 7で、新しいシステムが呼び出されました- ファイルベースの暗号化 (FBE)が導入され、Android 10。

ファイルベースの暗号化のページで引用されている主な利点は、 Direct Boot の使用です。これにより、デバイスが最初にロック解除される前に、アラームなどの特定の機能を使用できます。これは主にユーザーエクスペリエンスに重点を置いているように思われるので、この選択によってセキュリティが損なわれるのではないかと心配しています。

私の質問は、ファイルベースの暗号化はフルディスク暗号化に匹敵するセキュリティを提供するのですか?大きな欠点や欠点はありますか?もしそうなら、どれですか?

14
MechMK1

Full Disk Encryption(FDE)システム(Truecrypt、BitLocker、FileVaultなど)は、ディスクセクターのレベルでディスクを暗号化します。暗号化ドライバーは、これらのセクターがどのファイルを表しているかを必ずしも把握しているわけではないため、これはオールオアナッシングアプローチです。同時に、FDEは人気があります。主に実装が非常に簡単だからです。これはPCには優れているかもしれませんが、電話の場合、以下で説明するように別のアプローチが必要になる場合があります。

ファイルベースの暗号化(FBE)システム(EncFSやeCryptFSなど)は、個々のファイルを暗号化します。このアプローチではファイルシステム自体を変更する必要がありますが、個々のファイルが異なるキーを使用して暗号化されるきめ細かいアクセス制御が可能になるという利点があります。

スマートフォンの主な問題は、ユーザーが自分のデバイスをシャットダウンするように勧められないことです。実際には、これは—起動後に一度パスワードを入力した後—通常のユーザーは、すべての暗号化キーをRAMに保存して丸1日過ごすことを意味します。携帯電話のバッテリーは1日以上(ラップトップに比べて長い時間)存続するため、暗号化は、この時間中に携帯電話を手に入れる攻撃者からユーザーを保護するのにあまり役立ちません。

もちろん、ユーザーはスマートフォンをロックします。原則として、巧妙な実装では、デバイスがロックしたときにRAMから機密の暗号キーを削除し、次にユーザーがログインしたときにそれらを再取得できます。残念ながら、Androidはそうしませんこれは、Androidのユーザーが携帯電話を実際に機能させたいという非常に単純な理由によります。 RAMに暗号化キーがないと、FDEシステムはストレージドライブ上のすべてにアクセスできなくなります。実際には、これはレンガに変わります。

この非常に優れた理由により、Android FDE電話を起動すると、RAMから暗号化キーが削除されることはありません。そして、これは明らかに良くありません。

IOS 4以降、Appleには、デバイスに保存されているすべてのデータを暗号化する「データ保護」機能が含まれています。ただし、Androidとは異なり、Appleはフルディスク暗号化パラダイムを使用していません。代わりに、デバイス上の各ファイルを個別に暗号化するファイルベースの暗号化アプローチを採用しています。

Appleシステムでは、各ファイルのコンテンツは一意のファイルごとのキーで暗号化されます(メタデータは個別に暗号化されます)。次に、ファイルキーは、ユーザーパスワードとプロセッサに埋め込まれたいくつかのハードウェアシークレットから派生したいくつかの「クラスキー」の1つで暗号化されます。

キーに関するものを保護するために、いくつかのセキュリティ特別な対策が実装されています。 high security保護クラスが使用されている場合、このクラスキーで暗号化されたファイルは、デバイスの電源がオンでロック解除されている場合にのみアクセスできます。これを確実にするために、デバイスがロックしてから数秒後に、クラスキーがRAMから削除されます。これは望ましいことです。 中セキュリティオプションの場合、暗号化されたファイルは、ユーザーが最初にログインするまで(再起動後)保護され、キーはメモリに残ります低セキュリティでは、デバイスが再起動され、ユーザーがまだログインしていない場合でもファイルにアクセスできます

結論として、携帯電話には比較的安全なFBEオプションがあり、実際に使用するかどうかはユーザー次第です。

それについてもう少し読んでください ここ

8
Overmind

はい。ファイルベースの暗号化は優れたセキュリティを提供しますが、何よりもメリットとデメリットがあります。しかし、最初から始めましょう。この2つの方法の主な違いは何ですか?

ファイルベースの暗号化

ファイルベースの暗号化では、ファイルのみが異なるキーで暗号化されます。したがって、すべてのファイルに独自の「パスワード」が設定されているとしましょう。このタイプの暗号化には、2つのタイプのストレージがあります。

  1. 資格情報暗号化ストレージ:ユーザーが資格情報を入力した場合にのみ使用できます。
  2. デバイス暗号化ストレージ:起動の前後に利用できます。それはあなたが言ったアラームや同様のものが保存されているスペースです。これはダイレクトブートでアクセスできます。

この2つのストレージタイプは、いくつかの利点を提供します。

  • ストレージの割り当ては不要
  • 1つのファイルを変更した場合のストレージの小さな変更(したがって、ファイル全体だけをコンテナ全体を変更する必要はありません)
  • きめ細かなアクセス権が可能

しかし、いくつかの欠点

  • メタデータは完全に暗号化されていません
  • データは使用するファイルシステムに依存します

フルディスク暗号化

このタイプの暗号化では、スペース全体を暗号化します。したがって、正しいキーを使用するだけでロックを解除できます。しかし、これは私が言及する必要があるいくつかの利点を得ました:

  • メタデータは完全に暗号化されています
  • このコンテナのコンテンツはランダムである可能性があり、使用するファイルシステムに合わせる必要はありません
  • オペレーティングシステムへの統合により、パフォーマンスが向上する場合があります
  • ファイルを「忘れる」ことはできません。このコンテナ内にある場合は暗号化されています

しかし、この暗号化でもいくつかの欠点がありました:

  • 起動前にプログラムを使用することはできません(アラームなどのようなもの)(暗号化された場所にある場合のみ)
  • 1つのファイルを変更すると、コンテナー全体が変更されます
  • スペース全体を割り当てる必要があります

概要

ご覧のとおり、両方のタイプの暗号化にはいくつかの長所と短所があります。ファイルベースの暗号化で最も優れている点は、すべてのファイルを異なるキーで暗号化できることです。そのため、一部は暗号化されたままで、残りは復号化されて使用されます。これは、ユーザビリティとセキュリティの両方にメリットがあります。私が見ることができる最大の欠点は、メタデータが完全に暗号化されていないことです。一部のメタデータはファイルに関する非常に多くの情報を提供するため、これはセキュリティ上の問題になる可能性があります。

注:Android 9でも、欠点を取り除くメタデータ暗号化が導入されました。そのため、このバージョン以降、セキュリティに関する欠点はもう確認できません。

最後に、自分でそれについて考え、この暗号化の議論を通過する必要があります。

5
CDRohling