iOS — Где хранить конфиденциальные данные — NSUserDefaults, Keychain, что-то еще?

Я разрабатываю приложение, которое, хотя и не имеет «учетных данных» как таковых, присваивает некоторую идентифицирующую информацию каждому пользователю для использования с удаленной службой. Эта информация должна быть как можно более невидимой в целях безопасности. Даже пользователь не должен иметь доступа к этой информации.

Я не нашел окончательного ответа, где сохранить эту информацию для пользователя в приложении.

1) Учитывая конфиденциальность данных, связка ключей может показаться подходящим местом, но эти данные не совсем логины и пароли. Это имеет значение?

2) Из того, что я могу сказать, NSUserDefaults, если вы не раскрываете его через представление настроек, также кажется приватным, но я предполагаю, что он не такой безопасный, как сама цепочка для ключей.

Мнения?

Заранее благодарю за любую помощь!


person RobertoCuba    schedule 17.06.2013    source источник
comment
каждый может прочитать plist, который NSUserDefaults сохранил, без джейлбрейка устройства.   -  person Bryan Chen    schedule 18.06.2013
comment
Прочитайте это: blog.hawkimedia.com/ 2012/04/   -  person lakesh    schedule 18.06.2013


Ответы (1)


Я знаю, что этот вопрос старый, но я наткнулся на него, вот что я нашел. NSUserDefaults хранит данные в незашифрованном виде, поэтому его не следует использовать для конфиденциальных данных. Пользователи с небольшими знаниями могут получить к нему доступ с компьютера. Брелок будет подходящим местом, если его нужно полностью спрятать. Если вы храните личную информацию, которую не нужно держать в секрете, NSUserDefaults подойдет.

Это отличная статья, которая объясняет это дальше:

https://www.andyibanez.com/nsuserdefaults-not-for-sensitive-data/

person Jeremiah    schedule 16.01.2015