Во-первых, немного моего фона. Я работаю над большими веб-системами уже более десяти лет, Android - это то, о чем я смотрел последние два месяца; как вы можете себе представить, пробел довольно широк:)
Глядя на Android Безопасность и разрешения и Хранилище данных часть документации, беседа непосредственно с разработчиками, чтение книг и учебников, довольно ясно, как работает целая модель. Однако мне не удалось найти ответ, безопасны ли файлы SQLite и SharedPreferences для хранения неглубокой незашифрованной информации (например, токены OAuth). Возможно ли кому-то их схватить? Указание документации на Android:
Любые данные, хранящиеся в приложении, будут назначены этому идентификатору пользователя приложения и обычно недоступны для других пакетов.
Это не нормально доступная часть, дающая мне дополнительные седые волосы:)
Спасибо, полезные ответы приветствуются:)
Возможно ли, чтобы кто-то их схватил?
Это зависит от кого-то. Как указывает г-н Буров, пользователи укоренившихся телефонов могут получить все, что захотят. По умолчанию обычные пользователи и другие приложения не могут.
Это не нормально доступная часть, дающая мне дополнительные седые волосы:)
По умолчанию файлы защищены. Если вы выберете, вы сможете сделать их доступными для чтения или всемирно.
Не удалось ли декомпилировать файл apk и найти ключ шифрования в этом случае?
Это зависит от того, с кем вы защищаетесь. Если вы защищаете другие приложения, попросите пользователя предоставить ключ шифрования. Если вы защищаетесь от пользователя, вы ввернуты, как и все реализации DRM.
Just all implementations of DRM are screwed
;)
Ну, на рынке есть множество приложений редактора SharedPreferences, поэтому они определенно не защищены. Также на корневых устройствах база данных может легко удаляться, поскольку пользователь имеет полный доступ к файловой системе телефонов. Следовательно, если вы хотите, чтобы ваше приложение было полностью защищено, зашифруйте свои данные.