Насколько безопасны файлы SQLite и SharedPreferences на Android?

Во-первых, немного моего фона. Я работаю над большими веб-системами уже более десяти лет, Android - это то, о чем я смотрел последние два месяца; как вы можете себе представить, пробел довольно широк:)

Глядя на Android Безопасность и разрешения и Хранилище данных часть документации, беседа непосредственно с разработчиками, чтение книг и учебников, довольно ясно, как работает целая модель. Однако мне не удалось найти ответ, безопасны ли файлы SQLite и SharedPreferences для хранения неглубокой незашифрованной информации (например, токены OAuth). Возможно ли кому-то их схватить? Указание документации на Android:

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

Это не нормально доступная часть, дающая мне дополнительные седые волосы:)

Спасибо, полезные ответы приветствуются:)

Ответ 1

Возможно ли, чтобы кто-то их схватил?

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

Это не нормально доступная часть, дающая мне дополнительные седые волосы:)

По умолчанию файлы защищены. Если вы выберете, вы сможете сделать их доступными для чтения или всемирно.

Не удалось ли декомпилировать файл apk и найти ключ шифрования в этом случае?

Это зависит от того, с кем вы защищаетесь. Если вы защищаете другие приложения, попросите пользователя предоставить ключ шифрования. Если вы защищаетесь от пользователя, вы ввернуты, как и все реализации DRM.

Ответ 2

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