Генерация уникального ключа шифрования или соли для каждой установки приложения - PullRequest
0 голосов
/ 07 ноября 2018

Я работаю над темой о том, как безопасно хранить конфиденциальные данные на устройстве Android. Конечно, нет 100% безопасного метода, я бы хотел получить как можно более безопасный.

Я прочитал официальные рекомендации .

Например, у меня есть приложение, в котором хранится текст (например, личный дневник). Текст хранится в XML-файле, который зашифрован (aes256) с помощью ключа, который хранится в Android KeyStore.

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

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

Вопрос заключается в том, как создать ключ или хотя бы соль, уникальную для каждой установки приложения?

1 Ответ

0 голосов
/ 07 ноября 2018

Функция Key Derivation KFS предназначены только для этого

Из Википедии;

В криптографии функция получения ключа (KDF) получает один или несколько секретных ключей из секретного значения, такого как главный ключ, пароль или пароль, с использованием псевдослучайной функции.

Вы можете использовать Аргон2 был победителем Конкурса хеширования паролей .

Выберите номер IMEI в качестве одного из параметров, пароль пользователя и случайное число с телефона.

...