Я разрабатываю приложение, использующее инфраструктуру PhoneGap, и, следовательно, это просто веб-приложение, использующее HTML5. Как и во многих веб-приложениях, мой клиент также хочет, чтобы данные были доступны, когда устройство находится в автономном режиме. Для таких ситуаций я хочу хранить данные в локальном хранилище браузера.
Однако заказчик также хочет, чтобы данные были зашифрованы, чтобы в случае потери устройства конфиденциальные данные не попали в чужие руки. Мое текущее исследование выявило 2 возможных подхода:
1) Зашифруйте любые данные с помощью среды шифрования JS перед сохранением в локальном хранилище. Поскольку для моего приложения требуется логин пользователя, я могу использовать пароль пользователя для получения ключей шифрования (пароль пользователя хранится в цепочке ключей iOS).
2) Механизмы защиты данных пользователей iOS https://www.apple.com/business/docs/iOS_Security_Guide.pdf
Что касается 2), правильно ли, что включение защиты данных на портале разработчика (раздел App ID) ничего на самом деле не шифрует, а скорее позволяет шифровать определенные файлы, используя соответствующие операции NSData
или NSFileManager
? Или можно ли зашифровать всю песочницу (включая локальное хранилище браузера!), включив защиту данных на уровне идентификатора приложения/профиля подготовки?
Есть ли какой-либо другой рекомендуемый подход для защиты сохраненных данных в локальном хранилище браузера?