#android #sqlite #mobile #xamarin.android #realm
#Android #sqlite #Мобильный #xamarin.android #realm
Вопрос:
Я являюсь мобильным разработчиком, использующим xamarin.android, и моя задача рано или поздно — создавать приложения для клиентов, которые обычно поступают из банков. В настоящее время я разрабатываю с realm (новичок) для приложения, которое не требует проблем с безопасностью.
Я хочу знать, какой из них обеспечивает более надежную защиту локальной базы данных от всех типов хакеров, если я создам приложение, и, допустим, это … для банковской мобильной системы.
Ответ №1:
И Realm, и SQLite используют файлы, хранящиеся в личном каталоге вашего приложения во внутреннем хранилище. Это достаточно безопасно для большинства случаев, поскольку ни одному приложению, кроме вашего, не разрешен доступ к нему.
Тем не менее, вы должны учитывать на корневых устройствах. С их помощью пользователи могут легко перемещаться по всей файловой системе, включая личный каталог вашего приложения.
Учитывая это, наш лучший выбор — шифрование данных.
Realm поддерживает шифрование AES-256, если вы об этом просили:
byte[] key = new byte[64];
new SecureRandom().nextBytes(key);
RealmConfiguration config = new RealmConfiguration.Builder(context)
.encryptionKey(key)
.build();
Realm realm = Realm.getInstance(config);
Доступ к Realm с их помощью будет прозрачно шифровать / расшифровывать любые данные, которые сохраняются на диске. Что повышает безопасность, не требуя дополнительных усилий с вашей стороны как разработчика.
Этот проект демонстрирует, как вы можете использовать функцию шифрования Realm.
Что касается SQLite… Я пока ничего не нашел. Возможно, вам лучше всего вручную выполнить шифрование / дешифрование самостоятельно.
Комментарии:
1. Кажется, что это вообще не защищенное хранилище, если иное не зашифровано 🙂 Что ж, спасибо за ваше отличное объяснение и заставило меня чувствовать себя хорошо в realm. Я думаю, что мне не нужно переходить на sqlite в будущем, поскольку realm имеет собственное шифрование. Приветствия!!!
2. Я могу добавить, что при использовании ОС с открытым исходным кодом, такой как Android, вы всегда сталкиваетесь с отсутствием безопасности, поэтому наилучшей практикой является перенос всей конфиденциальной информации в облако или веб-сервис.
3. Хорошо сказано, Мохсен. Это правда; OSS действительно палка о двух концах. Если вы хотите быть по-настоящему безопасным, то надлежащий серверный сервер все равно будет лучшим решением в настоящее время.
Ответ №2:
Вы пробовали sqlicipher Android?
Комментарии:
1. нет 🙂 но позвольте мне поискать. спасибо за информацию!