web-dev-qa-db-ja.com

iOSアプリのセッションキーの保存

HTTPSを介してRESTfulサービスと通信するiOSアプリの場合、セッションキーはKeychainまたはNSUserDefaultsに保存する必要がありますか?ユーザー名とパスワードはキーチェーンに保存され、sessionKeyも保存するのは簡単なことです。

しかし、セキュリティの観点から、それによってセキュリティが強化されますか?おそらく誰かがあなたのNSUserDefaultsに到達できれば、そのアプリからのHTTPSリクエストのトラフィックも見ることができますか?

5
Marc Cenedella

NSUserDefaultsは暗号化されておらず、プレーンテキストの.plistファイルに保存されています。デバイス上でも、Macと同期した場合でも、簡単に開いて読み取ることができます。 NSUserDefaultsは設定用であり、安全なログイン情報を保存するためのものではありません。パスワードやキーなどの機密データです。キーはキーチェーンに保存する必要があります。 Appleの キーチェーンサービスプログラミングガイド は、「キーチェーンは複数のアプリケーションと安全なサービスのパスワードを保持する暗号化されたコンテナです。キーチェーンは安全なストレージコンテナです。つまり、キーチェーンがロックされていると、誰もアクセスできません。その保護されたコンテンツ」。さらに、iOSでは、各アプリケーションは独自のキーチェーン項目にのみアクセスできます。

lynks が示唆するように、セッションキーは永続的に保存しないでください。いずれにしても、以下の例/​​フレームワークを表示することをお勧めします。

3
dperconti