sqlite против realm с точки зрения защиты данных от хакеров

#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. нет 🙂 но позвольте мне поискать. спасибо за информацию!