Comments 15
Вы можете сохранять файлы непосредственно во внутренней памяти устройства.
нужно бить по рукам за «перевод» storage как память.
Подскажите пожалуйста, правильно ли я понял, что если загрузить файл во внутреннее хранилище приложения, то другая программа, имеющая доступ к хранилищу никак не сможет получить доступ к этому файлу? (интересует в контексте хранения ключа к менеджеру паролей и вот, например, Сбер хочет доступ ко всем файлам на устройстве)
В общем случае приложение не может получить доступ к internal storage другого приложения.
Для «хранения паролей», возможно подойдет AccountManager.
Сберу скорее всего нужен доступ READ_EXTERNAL_STORAGE или WRITE_EXTERNAL_STORAGE.
Уточню: Keepass2android может хранить ключ шифрования базы внутри приложения. Можно ли быть уверенным, что этот ключ не сможет вытащить другая программа на нерутованном телефоне? (тот же Сбер (этот типа вирусы ищет, а на самом деле фиг знает, что и куда отправляет), WhatsApp (доступ к файлам для отправки фото и т.п., а для чего еще не известно) и т.п.)
Судя по моему опыту с keepass, есть 2 сценария:

1) я кладу kbdx-файл во внешнее хранилище, и открываю его из keepass.
другие программы, имеющие доступ к хранилищу, могу прочитать этот файл

2) я создаю новый password database в программе.
файл появляется также во внешнем хранилище, по пути Android/data/keepass2android.keepass2android_nonet/files/
Не знаю, является ли папка Android/data какой-то защищённой от чтения другими программами (как /data/data, например). Скорее всего, нет.

Базы в Internal Storage keepass не создаёт.
У меня база в облаке nextCloud. Она помимо пароля зашифрована ключем.
Т.е. теоретически ее можно и через публичное облако передавать и ничего страшного.

А вот сам ключ расшифровки никому давать нельзя. И вот в этой программе есть кнопка — скопировать ключ во внутреннюю память (т.е. сначала указываешь его путь на флешке, потом нажимаешь кнопку «скопировать» и удаляешь с флешки).

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

Вот поэтому и интересно, могут ли вредоносные программы с доступом к хранилищу вытащить ключ из внутренней памяти приложения.
Чисто теоретически, зловредное приложение может скопировать ключ в промежуток времени, когда он положен в external storage и не удалён. В internal storage залезть нельзя, если нет рута или эксплойтов.
Чисто теоретически, зловредное приложение может скопировать ключ в промежуток времени, когда он положен в external storage и не удалён


тут да, но от этого никуда не деться(
Базы в Internal Storage keepass не создаёт.
Заметил галочку «Work on internal cache»
Уточню: Keepass2android может хранить ключ шифрования базы внутри приложения
Не понимаю, где это включается. Пароль для разблокировки базы я каждый раз ввожу заново
Это не пароль, это закрытый ключ (ключевой файл) + пароль.
> хранить ключ шифрования базы внутри приложения

Этот ключ просто взломают.
Ключ генерился командой:
ssh-keygen -o -t rsa -b 4096
И теоретически, если не скопируют сам ключ, то сломать ничего не должны)
Не понял, зачем RSA?
Шифрование симметричное, ключом может быть любой файл со случайными байтами. Или это такой способ получить файл с рандомными данными? Файл, похожий на формат ключа ssh, будет в первую очередь украден, чем какой-нибудь уникальный jpg, сделанный камерой только что.
Only those users with full accounts are able to leave comments. Log in, please.