2015-10-29 5 views
1

Интересно, может ли файл базы данных в каталоге ресурсов NSBundle.mainBundle().pathForResource("xxxx", ofType: "db") увидеть его на устройстве джейлбрейка?Можно ли увидеть файл базы данных в устройстве джейлбрейка?

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

ответ

1

Все файлы приложений доступны пользователю, jailbroken или нет, либо в каталогах песочницы, либо в .ipa.

Что не указано в вопросе, так как db будет предварительно заполнен во время создания приложения, и если он будет доступен только для чтения или разрешит добавления/изменения. ДБ в каталоге ресурсов доступен только для чтения и должен быть скопирован в папку песочницы для записи.

Шифрование - это возможность увеличить коэффициент работы, что затрудняет получение содержимого db и препятствует любопытству, увеличивая трудности для получения доступа.

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

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

+0

Согласно вашему предложению, я могу предпочесть просто усложнить получение содержимого. Любое предложение о том, как сделать ключ неочевидным "в исходном коде? – jdleung

+0

Злоумышленнику трудно увидеть код приложения, он зашифрован в .ipa и расшифрован для выполнения. Если у вас есть атакующий на этом уровне, Определите злоумышленника (от любопытного подростка, серьезного злоумышленника до хорошо финансируемого правительства), ценность данных (вам, владельцу контента, злоумышленнику) и ущерб пользователю и/или ваша репутация. Какой злоумышленник готов совершить в $$. – zaph

+0

Трудно для моего уровня остановить любого злоумышленника. :-) – jdleung

0

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

+0

Я могу предпочесть шифрование для лучшей безопасности. IPA представляет каталог «appName.app» на джейлбрейк-устройстве? – jdleung

+0

[Файл IPA] (https://en.wikipedia.org/wiki/.ipa_ (file_extension)) является архивом приложений iOS. Xcode может экспортировать их, и iTunes может загрузить их из App Store или устройства. Таким образом, обычный пользователь может легко получить доступ к ним, как только он купит приложение. – DarkDust

+0

Получил это. Благодарю. – jdleung