Я бы рекомендовал хранить данные пароля в формате JSON на сервере. Затем я бы использовал одну из многих инфраструктур и учебников JSON в Интернете, чтобы помочь реализовать загрузку данных в приложение. Есть много хороших. Я прошел через это, когда впервые работал с JSON на iOS. Там могут быть и лучшие.
Одна из проблем этой схемы заключается в том, что пользователям приложения потребуется новый пароль каждый раз, когда вы меняете пароль. Вам потребуется безопасный канал распространения для каждого пользователя, чтобы неавторизованные пользователи не могли получить новый пароль.
Вместо этого я бы использовал шифрование пар открытым / закрытым ключом для данных. Каждый экземпляр приложения будет иметь закрытый ключ, и вы сохраните соответствующий открытый ключ и соответствующий идентификатор пользователя. Это может быть настроено с помощью процесса home-phone во время первоначального запуска приложений на определенном устройстве. Я бы зашифровал пароль с помощью авторизованных открытых ключей и загрузил все зашифрованные строки в файл JSON на сервере. При запуске приложение загружает зашифрованные строки пароля через JSON, дешифрует строки и проверяет известный пароль. Если правильный пароль найден, приложение авторизуется и продолжает работать.
Затем деавторизация одного пользователя выполняется путем удаления зашифрованного пароля одного пользователя с сервера. Все остальные пользователи будут продолжать работать без уведомления о новом пароле.
Дополнительный уровень безопасности можно применить, подписав данные JSON дополнительной парой открытого / секретного ключей. JSON подписывается закрытым ключом, и все приложения получают копию открытого ключа для проверки источника данных JSON.
Поскольку приложения для iOS должны иметь кодовую подпись, нарушителю будет сложно обойти эту защиту внутри приложения. Но есть уязвимость в том, что данные JSON могут быть сохранены и позже представлены приложению в атаке «человек посередине» с враждебным (к приложению) прокси-сервером. Данные JSON могут быть помечены датой, а затем подписаны, поэтому приложение может также проверять эти данные и не принимать данные JSON старше некоторого установленного времени, в зависимости от того, насколько важным является время, необходимое для отключения пользователей. Если неделя достаточно скоро, возможно, это может остаться ручным процессом, но временные рамки порядка дней или часов должны быть реализованы как автоматический процесс на веб-сервере.
Если распространение приложения увеличивается до такой степени, что данные JSON огромны и требуют слишком большой загрузки данных, данные JSON могут быть сегментированы. Несколько файлов JSON можно сохранить на сервере и получить к ним доступ, вставив строку идентификатора в имя файла. Эта строка идентификатора может быть выбрана во время начальной настройки запуска на определенном устройстве или другом механизме.
Хотя этот метод гораздо сложнее реализовать на начальном этапе, этот метод является более безопасным и простым в управлении, особенно со стороны пользователей, которым никогда не нужно иметь дело с новыми паролями авторизации.