Я работаю над темой о том, как безопасно хранить конфиденциальные данные на устройстве Android. Конечно, нет 100% безопасного метода, я бы хотел получить как можно более безопасный.
Я прочитал официальные рекомендации .
Например, у меня есть приложение, в котором хранится текст (например, личный дневник). Текст хранится в XML-файле, который зашифрован (aes256) с помощью ключа, который хранится в Android KeyStore.
Это должно означать, что данные надежно хранятся в зашифрованном XML-файле. Пользователь root по-прежнему может получить доступ к ключу из хранилища ключей и расшифровать его или получить данные после их дешифрования приложением.
Однако это также означает, что в каждом приложении используется один и тот же ключ. Поэтому я могу установить приложение на свой телефон и использовать мой ключ для расшифровки файлов дневника xml с других телефонов.
Вопрос заключается в том, как создать ключ или хотя бы соль, уникальную для каждой установки приложения?