Обеспечение объекты Coredata

Я работаю над приложением, которое имеет некоторую уязвимую информацию. Я знаю, что для неспециалиста было бы трудно взломать iPhone для получения информации. Если я использую SQLite непосредственно, у меня есть что-то названное Шифром SQLite для шифрования / кодируют базу данных.

Есть ли так или иначе, где у меня может быть тот же способ зашифровать coredata, таким образом, он мешает хакерам входить в данные.

Кто-то может пролить некоторый свет на это?

Заранее спасибо

5
задан rook 5 November 2010 в 05:12
поделиться

3 ответа

В Руководстве по программированию основных данных прямо говорится, что тип хранилища SQL немного более безопасен, чем XML или двоичный, но не является безопасным по своей сути - он рекомендует зашифрованный образ диска. К сожалению, на iPhone это немного сложно.

Что вы могли бы подумать, если это действительно вас беспокоит, так это создать свой собственный постоянный тип хранилища - в Руководстве есть раздел , посвященный созданию собственного атомарного хранилища, и он отсылает вас к Темы программирования атомного хранилища . Создайте хранилище, которое берет некоторый ключ из приглашения пользователя при запуске, а затем инициализируется этим ключом для целей шифрования и дешифрования. (Обратите внимание: если вы выберете этот маршрут, в справочнике класса NSPersistentStore указано, что создание подкласса NSPersistentStore напрямую не поддерживается в Core Data - вместо этого вам следует создать подкласс NSAtomicStore.)

4
ответ дан 18 December 2019 в 06:11
поделиться

Если кто-то использует сломанный iphone, вы ничего не можете сделать. Функции, которые вы используете для шифрования и дешифрования, можно подключить для получения используемого ключа / iv. Вы также можете делать неприятные вещи, например, делать полные дампы флеш-памяти, буфера клавиатуры и другой «отладочной» информации.

Чтобы усложнить задачу, вы можете ограничить время хранения секрета на устройстве. Храните секреты в удаленной системе и передавайте их по ssl, удаляйте их, когда они вам не нужны. Это защищает от кражи iphone, взлома, а затем сброса базы данных. Я не уверен, что это атака, которая угрожает вашему конкретному приложению.

С точки зрения "непрофессионала" (людей, которые не умеют читать? :) Тогда вам не о чем беспокоиться. У Apple есть защита, чтобы установленные приложения не могли читать / писать ресурсы друг друга.

2
ответ дан 18 December 2019 в 06:11
поделиться

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

2
ответ дан 18 December 2019 в 06:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: