Как безопасно хранить приватные файлы на iOS

На Android я могу хранить файлы в довольно защищенном файле, используя Context.openfileoutput, он будет сохранен на внутренний диск, специфичный для моего приложения, который недоступен для других приложений, и единственный способ получить это - подключить отладчик / рутирующее устройство. это не на 100% доказательство взлома, но это достаточно хорошо.

Это то, что существует на iOS?

Я прочитал https://developer.apple.com/library/content/qa/qa1699/_index.html, но безопасно ли это? как я предполагаю, что это выглядит примерно так

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
                           NSString *librariesDirectory = [paths objectAtIndex:0];
                           NSLog(@"%@", librariesDirectory);
                           NSString *filePath = [NSString stringWithFormat:@"%@/%@/%@", librariesDirectory,@"Private", @"internal_image.jpg"];

Будет ли этот файл что-то, что

  • другие приложения не могут получить доступ
  • не резервное копирование в icloud
  • легко видимо для приложения, но НЕ для конечного пользователя

?

1 ответ

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

1) Создайте файл со своими данными

2) Создайте ключ шифрования с высокой энтропией и зашифруйте файл.

3) Сохраните ключ шифрования на свой сервер

4) Сохраните зашифрованный файл в папку библиотеки и установите NSURLIsExcludedFromBackupKey флаг в истину

•) Теперь файл находится в месте, резервная копия которого не будет сохранена в iCloud, он недоступен для других приложений, он доступен для пользователя, но зашифрован, поэтому они ничего не могут с ним поделать.


Хорошая информация о NSURLIsExcludedFromBackupKey: /questions/36930654/fajlyi-ischezayut-iz-nslibrarydirectory/36930665#36930665

Другие вопросы по тегам