web-dev-qa-db-ja.com

iOS暗号化の詳細

この質問 に続いて、Apple iOS 4.xシリーズデバイスに暗号化を実装する方法の技術的な詳細に関連して利用可能なリソースは何ですか?

Appleマーケティング資料 こちら は、「iPadはデバイス上のすべてのデータを保護するために256ビットのAESエンコーディングハードウェアベースの暗号化を提供しています。暗号化は常に有効であり、ユーザーによって無効にされます。」

カスタムのRAMDiskを使用して古いiOSデバイスを起動すると、ユーザーファイルの内容を平文で見ることができました。これは、何らかの方法でユーザーファイルが暗号化されている場合、カスタムOSの起動プロセスにより、データの復号化が可能になることを意味します。

28
Rory McCune

出荷されているすべてのiOSデバイス(AppleTVには例外があり、サードパーティのアプリはありません)には、フラッシュストレージの2つのパーティションとして実装された2つのファイルシステムがあります。 1つ目は読み取り専用でマウントされ、OSのみが含まれています。 2番目にはユーザーデータが含まれます。インストールされたアプリと、ドキュメントやキャッシュなどのサポートデータです。この2番目のパーティションiPhone 3GS、iPhone 4、第3および第4世代iPod TouchおよびiPadの場合onlyは、ハードウェア暗号化チップによって管理されるキーで暗号化されますデバイスのPCB。このキーをチップから直接漏らすことはできません。サイドチャネル攻撃があるかどうかはわかりませんが。

デバイスの電源がオンになると、暗号化チップが2番目のパーティションのロックを解除します。つまり、この暗号化は保存されているデータのみを保護します。実際、リモートワイプをすばやくサポートするように設計されています。デバイスがリモートワイプ信号を受信すると、キーをリセットするだけです。

iOS 4は、同じ暗号化機能を個別に使用して、ファイル保護APIをサポートしています。 NSFileProtectionCompleteオプション付きのファイルストアはファイルシステムで暗号化され、復号化キーはデバイスのロックが解除されている間のみ使用できます。つまり、画面をロックすると、アプリに実行中のバックグラウンドコンポーネントがあっても、保護されたファイルにアクセスできません。

保護されたファイルの場合、ユーザーがパスコードを構成していると、パスコードとデバイスキーが組み合わされて保護キーが生成されます。実際には、少し複雑です。各ファイルは個別のキーで保護されています。これらの鍵はクラス鍵によって保護されています。クラスキーは、ハードウェアキーとパスコードから派生したキーによって保護されます。これにより、次のプロパティが得られます。

  • デバイスがロックされている場合、カーネルにはロック解除キーを生成するためのパスコードがないため、ファイルは完全に利用できません。
  • ユーザーのパスコードのブルートフォースディスカバリはデバイスで実行する必要があるため、試行が遅くなります。
  • リモートワイピングでは、デバイスキーをリセットするだけです。
27
user185