サードパーティアプリのキーチェーンエントリは、「保護クラス」に従って保護されています。たとえば、クラス「kSecAttrAccessibleWhenUnlocked」をキーチェーンエントリに割り当てると、デバイスがロック解除されている場合にのみエントリにアクセスできます。
このシナリオに関して、次の質問があります。
IOSは、デバイスのロックが解除されるとすぐに(つまり、このエントリを所有するアプリが実際にアクセスを要求することなく)、その保護クラスを持つすべてのキーチェーンエントリを自動的に復号化しますか?
上記の質問に対する答えが「はい」の場合、これは、ジェイルブレイクされたデバイスで、悪意のあるアプリケーション(つまり、トロイの木馬)が[〜#〜] every [〜#〜]キーチェーンエントリを読み取り、デバイスはロック解除されていますか? (ジェイルブレイクされたデバイスにサンドボックスがないことは、すべてのキーチェーンエントリへのアクセスを意味し、デバイスのロックが解除されている場合、キーチェーンエントリはプレーンテキストです)。
前もって感謝します。
私はこの質問を見て、このトピックについて少し調査することにしました。私は実際には(元)Appleのテクニカルサポートシニアアドバイザーで、現在はAppleの子会社であるFileMaker、Inc.で働いています。 iOSデバイスが脱獄されています。そこで、iFileを使用してファイルシステムをスニッフィングして、がキーを格納し、それをどのように処理するかをキーチェーンアプリケーションで詳しく確認することにしました。
さて、答える前に、iOSデバイスでの「マルウェア」はほぼ不可能であることを明確にしたいと思います。とはいえ、実際の答えは、iOS 4.x(以降)を使用しているかどうかおよび(これに備える)によって異なりますデバイスにパスコードがあるかどうか。
デバイスにパスコードがある場合、OSは実際にそれをキーチェーン内のセキュリティの2番目のレイヤーとして扱います。具体的には、暗号化キーです。
答えはイエスです。ただし、復号化するのに十分なパスコードが十分にないシナリオでのみ。
これを確認したページへのリンクは次のとおりです。
https://stackoverflow.com/questions/3558252/ios-keychain-security
このページのよく似たトピックに対するペプシの回答を紹介したいと思います。彼は行われた研究へのリンクを提供し、トピックの詳細も説明します。
Chrootの回避は、脆弱な期間を残します。
マルウェアはiOSデバイスでは発生する可能性がはるかに低いですが、はい、正しいことはパスが重要です。それが役に立てば幸い、氷山
はい、iOSマルウェアがあります。証明の必要はありません。 2秒間グーグルするとたくさん見つかります。
はい、パスコードやキーチェーンの認証情報をiOSデバイスでリモートまたは物理的に完全にバイパスすることが可能です。
パスコードは技術的にデータ保護ストア(これは「iOSデータ保護」と呼ばれ、キーチェーンストアとは異なります)を保護しますが、それが非常に大きく(14文字以上)、非常に複雑(多数のなだれ)の場合のみ、記号、および大文字と小文字)。
キーチェーンに機密情報を保存するのではなく、iOSプラットフォームの他のセキュリティ機能と同様に、それを仕掛けとして使用することをお勧めします。
KeychainViewerとkeychain-dumperのグーグル化も試してください。