Может ли пользователь получить доступ к связке ключей на iOS?

Мы рассматриваем возможность хранения некоторой информации (например, эквивалента имен пользователей, паролей и т. д.) в нашем приложении, с которой мы не хотим, чтобы пользователь мог вмешиваться. Один (плохой) способ сделать это — поместить их в зашифрованный файл где-нибудь в папке приложения, но если мы это сделаем, пользователь сможет взять любой инструмент для исследования файловой системы iOS и отредактировать или заменить этот файл, чего мы не делаем. не хочу.

Если бы мы сохранили детали в цепочке для ключей, мог бы пользователь каким-либо образом прочитать или записать эти детали, например, запустив эквивалент цепочки для ключей инструмента исследования файловой системы? Или нет способа получить информацию о приложении в связке ключей, не запуская это приложение?

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

Спасибо за вашу помощь.


person Colen    schedule 30.12.2013    source источник


Ответы (2)


Согласно документы Apple:

В то время как в OS X любое приложение может получить доступ к любому элементу цепочки для ключей, если пользователь дает разрешение, в iOS приложение может получить доступ только к своим собственным элементам цепочки для ключей.

Примечание. На iPhone права на связку ключей зависят от профиля обеспечения, используемого для подписи вашего приложения. Обязательно последовательно используйте один и тот же профиль подготовки в разных версиях приложения.

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

person sergio    schedule 30.12.2013
comment
Другие ваши приложения также могут получить к нему доступ, так что имейте это в виду, если у вас их несколько. - person i_am_jorf; 31.12.2013
comment
@jeffamaphone: спасибо. Это правильно, если эти приложения используют один и тот же профиль обеспечения, насколько мне известно. - person sergio; 31.12.2013
comment
Это не разные приложения, использующие один и тот же профиль подготовки, которые могут получить доступ к одним и тем же элементам цепочки для ключей. Это связано с правами в профилях обеспечения приложений. Приложения должны иметь права на одни и те же группы доступа к цепочке ключей в своих профилях подготовки, но профили не обязательно должны быть одинаковыми. - person honus; 23.02.2014
comment
@sergio Может ли пользователь получить доступ к содержимому цепочки для ключей? Я хочу хранить ключи API в цепочке для ключей, но не хочу, чтобы пользователь мог их видеть. - person Harish; 21.06.2017
comment
Обратите внимание, что с M1 Mac это предположение больше не выполняется, поскольку приложение может быть установлено на Mac, что позволяет нормально управлять связкой ключей. - person Gil; 30.12.2020