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