Хранение ключей шифрования на Android - PullRequest
0 голосов
/ 06 мая 2020

Я работаю над приложением Android (минимальная Android версия 5.0 - уровень API 21), которое хранит данные в локальной базе данных через RoomDatabase. Однако данные должны быть зашифрованы, для чего я использовал SQL Cipher. Мой вопрос в том, какой самый безопасный способ сохранить ключ, используемый для SQL Cipher. Пока у меня есть два варианта и одна из основных «проблем» для них обоих:

  1. Использование хранилища ключей Android, но меня больше всего беспокоит, может ли пользователь с root привилегии могут получить доступ к хранилищу ключей?

  2. Использование NDK для создания ключа - из того, что я видел, файл можно легко декомпилировать, а ключ можно легко извлечь.

Само приложение простое, поэтому запрос пароля / пин-кода у пользователя не поможет решить эту проблему. То же самое относится и к получению ключа с сервера, поскольку приложению не требуется постоянный доступ Inte rnet.

1 Ответ

0 голосов
/ 07 мая 2020

Использование Firebase может быть ответом, потому что:

  1. Он не требует постоянного доступа к сети, он будет кешировать данные.
  2. Сохраненного ключа нет в вашем приложении, это в Интернете или в кеше службы Firebase.
  3. Настроить просто.

Вы можете использовать один из этих продуктов для сохранения ключа в Firebase: Cloud Firestore, Cloud Функции или облачное хранилище.

Или вы можете использовать аутентификацию Firebase вместо сохранения ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...