web-dev-qa-db-ja.com

ロック画面でのiPhone iOS 7暗号化

this トピックに続いて、電話がロックされているときにOSとアプリがデータにアクセスする方法について質問があります。特にiOS 7を実行するiPhone 5Sの場合。

  1. デバイスがロックされている場合、アプリがフラッシュメモリからデータにアクセスできるようにするものは何ですか?たとえば、電話を受けると、電話アプリは連絡先にアクセスし、適切な情報(名前、写真など)を表示します。

  2. IOSは最初の起動時に通知センター、ロック画面の背景などをロードします。これらはフラッシュメモリに保存されていますか?はいの場合、OSはパスコードなしでそれらにアクセスするためのアクセス許可をどのように取得しますか?

3
John Galt

IOSでは、すべてのファイルとキーチェーンアイテムは、保護クラスのいずれかを使用して保護されます。使用される特定のクラスに応じて、ファイルやキーチェーンアイテムの暗号化キーは異なる方法で計算され、デバイスがロックされている間はアクセスを許可(または禁止)します。

利用可能な保護クラスは次のとおりです( "NSFileManager Class Reference"の "File Protection Values"を参照
* NSFileProtectionNone:デバイスがロックされていても、いつでもファイルにアクセスできます。
* NSFileProtectionComplete:ファイルがアクセスできるのは、デバイスがロック解除されている場合のみです(デバイスがロックされてから約10秒の猶予期間があり、その間もファイルにアクセスできます)。
* NSFileProtectionCompleteUnlessOpen:デバイスがロックされている間でもファイルを作成できますが、いったん閉じると、デバイスがロック解除されている場合にのみアクセスできます。
* NSFileProtectionCompleteUntilFirstUserAuthentication:ファイルにアクセスできるのは、起動後にデバイスが少なくとも1回ロック解除されている場合のみです。

NSFileProtectionNoneを除くすべてのクラスは、ユーザーのパスコードを使用して実際のファイル暗号化キーを導出するため、キーは暗号的にパスコードに関連付けられていることに注意してください。

質問に答えるには:NSFileProtectionNoneは、デバイスがロックされているときにiOSがファイルにアクセスできるようにするものです。これはすべての「最も弱い」保護クラスであり、その使用は推奨されませんが、(提供する例のように)使用が必要な場合があります。はい、あなたが言及するすべてのアイテムは他のすべてと同様にファイルシステムに保存されますが、NSFileProtectionNoneのため、ではないキーで暗号化されますパスコードに関連付けられているため、デバイスがロックされているときに計算できます。

2
Andrey