web-dev-qa-db-ja.com

「ロック」されている場合、iOS 8以降で暗号化されないデータ

シナリオ:
iPhone 5以降、iOS 8以降、システム暗号化が有効。電話はオンでロックされています。 (ユーザーは、電源投入後に少なくとも1回認証(ロック解除された電話)してから、再度ロックされました)。

この状態でシステム暗号化によって保護されていない(または簡単にバイパスされていない)データ/アプリは何ですか?
特に興味深いのは、次のようなネイティブアプリと非ネイティブアプリのデータです

  • 写真、ビデオ、オーディオファイル
  • カレンダーエントリ、SMSおよびメッセンジャーデータ
  • 電子メールと閲覧履歴

いくつかの情報についてはthis以前の投稿を参照してください。その質問は似ていますが、これはiPhone 5+に関するもので、範囲はより小さく、より具体的です。
注:返信のソースを入力してください。

4
Manumit

デフォルトでは、ほとんどのデータはAfterFirstUnlockクラスキーを使用して保護されます。このキーはデバイスに確実に存在します。しかし、それはあなたが求めていることではありません。どのデータにアクセスできるかを知りたい場合、それは別の魚のやかんです。データにアクセスするには、OSにデータを渡してもらう(ロックスクリーンバイパスバグを見つけることで、前代未聞ではない)か、デバイスメモリからクラスキーを何らかの方法で取り出す必要があります。その最後のビットは難しいです。

IOSデバイスでカーネルレベルのコードを実行する可能性のあるエクスプロイトは長年にわたって数多く存在しますが、それらのほとんどすべてが、デバイスへのロック解除された物理アクセスまたは再起動を必要とし、メモリからAfterFirstUnlockキーをクリアします。キーはRAMで暗号化されていないため、iPhoneを開いてRAMチップに直接アクセスすることは可能です。ただし、iPhoneがパッケージオンパッケージ構造を使用していること、およびRAMチップは、最初にプロセッサから物理的に分離する必要があります-データを破壊することなく、そのためチップは電力を必要とするか、常時凍結する必要があります。 NSAはこれをうまくやることができるかもしれませんが、いくつかの真剣に専門化された機器を必要とし、彼らは1発だけしか得られません。

USBインターフェースは、潜在的に脆弱なアプリケーションにIPトラフィック(そう、IP over USB)を運ぶため、多くの可能性を提供します。ただし、iOS8では、「このコンピューターを信頼する」を押すまでロックされます。攻撃者がエスクローキーバッグを盗むことができる場合、これはすでに信頼されているローカルコンピューターを作成し、この方法で攻撃する可能性がありますが、コード実行を取得するためのデーモンでのエクスプロイト、サンドボックスの破壊、ルートへの昇格が必要です。もう1つはカーネルにパッチを当てます。

脱獄は、ユーザーが手助けすると想定できるため、これよりもはるかに簡単です。つまり、信頼できるコンピューターを使用でき、ユーザーがホーム画面のアイコンをタップすることで、ファイル配置エクスプロイトをコード実行エクスプロイトに変えることができます。

ユーザーの協力がなければ、おそらく最善の策はネットワークインターフェイスです。いくつかのエクスプロイトを連鎖させる必要があり、攻撃者のネットワークに電話が自動接続するようにルーターのパスワードを盗む必要があり、常時接続のVPNが設定されていないことを期待します。

基本的に、iPhoneは非常に安全です。確かに学位の問題ですが、それでもロックされたスマートフォンをスマートカード以外のほとんどのものの上に置きます。

編集:出典:主に "BedrúnとSigwaldによる" iPhone Data Protection In Depth " ですが、以前はiOSセキュリティで作業していました国防総省のために。私たちが特別な知識や何かを持っていると言っているわけではありません(AppleにDoDがバケットのドロップであるといいのですが)が、データ保護システムの詳細を調査するのに十分な時間を費やしてきました。

編集2:このシステム全体の最大の脆弱性は、以前はエスクローキーバッグでした。これは、コンピュータに接続して「信頼」を押すと作成されます。 」これには、iTunesが電話をバックアップできる必要があるため、電話のデータを復号化するために必要なすべてのクラスキーが含まれています。エスクローキーバッグは電話に保存されているランダムトークンで暗号化されているため、通常は電話に送信された場合にのみ役立ちますが、ファイルシステムからそのトークンを読み取ることができるものを悪用できる場合は、ビジネス。とは言っても、5S以降では、プロセッサにはチップに組み込まれたスマートカードである「セキュアエンクレーブ」が付属しており、独自のキーを持っています。エスクローキーバッグの復号化キーは暗号化された形式で保存されるようになり、安全な要素のみがそれを復号化できるため、この悪用の道は閉じられました。

5
Reid Rankin

IOSデバイスで利用できる暗号化のレイヤーは複数ありますが、アクセスできるものとアクセスできないものを言う前に説明するのが最も良いと思います。

ディスク全体の暗号化

IOS 3の場合Apple導入されたディスク全体の暗号化では、デバイスがロックされているときにハードドライブ全体が暗号化されます。ただし、この暗号化のキーはデバイス内に保持されるため、ディスク全体の暗号化は簡単にバイパスされます。電話のファイルシステムにアクセスしてキーを取得するには、外部ドライブからデバイスを起動する必要があるだけなので、デバイスに物理的にアクセスできます。

データ保護API

IOS4以降Appleは、開発者がアプリを暗号化するために使用するDataProtection APIを提供します。これは、ユーザーのピンに関連付けられた暗号化の別のレイヤーを提供します。これは、デバイス上で保持されるのではなく、ユーザーはデバイスに物理的にアクセスし、外部ドライブから起動したり、脱獄してキーにアクセスしたりできなくなります。

開発者には、アプリ全体または個々のファイルに適用できる4つのオプションが与えられます。

  • NSFileProtectionNone-追加の保護なし
  • NSFileProtectionComplete-電話がロックされるたびにファイルが暗号化されます
  • NSFileProtectionCompleteUnlessOpen-ファイルがバックグラウンドプロセスで使用されていない限り、ファイルは暗号化されます
  • NSFileProtectionCompleteUntilFirstUserAuthentication-ユーザーが電話を起動してから初めてロックを解除するまで、ファイルは暗号化されます。

何が安全ですか?

IOS8以降、個人情報を保持するすべてのネイティブAppleアプリケーションはNSFileProtectionCompleteUntilFirstUserAuthenticationを使用して暗号化されます。これは、電話の電源がオフになっている場合やバッテリーがなくなった場合、非常に困難になることを意味しますこのデータへのアクセスは、これが行われていることの唯一の公に知られているケースが今年のヘッドラインをヒットしたFBIケースである場合にアクセスします。

サードパーティのアプリケーションに関しては、デフォルトはまだNSFileProtectionNoneです。上記の4つの方法のいずれかでアプリを保護するのは、アプリの開発者の責任です。

2
Declan McKenna