Как зашифровать БД SQLite в электронном приложении? - PullRequest
1 голос
/ 14 апреля 2019

У меня есть электронное приложение, которое сохраняет данные в базе данных SQLite, хранящейся на моей машине.У меня есть все настройки для операции CRUD, и приложение работает нормально.Теперь мне нужно зашифровать файл БД SQLite.Я искал онлайн решение, но все решение для предварительно зашифрованной БД, которая расшифровывается внутри Electron.

Требуется, чтобы пользователь предоставил пароль, с помощью которого приложение будет шифровать файл БД, а в дальнейшем пользователь предоставит пароль для расшифровки и выполнения операции CRUD

Любая идея, как этого добитьсяэто?

PS: Я проверил документы SQLCipher и не могу найти то, что мне нужно.До сих пор я использовал модуль узла sqlite3 для выполнения CRUD

Edit 1 : я пытался использовать модуль sqlite-cipher , и я былвозможность зашифровать БД в отдельном файле JS.но когда я интегрирую то же самое с электронным ipcMain, приложение закрывается из-за высокого потребления оперативной памяти.Какие-либо предложения???

1 Ответ

1 голос
/ 16 апреля 2019

Шифрование в электронном приложении - сложная вещь.Это потому, что это может дать вам ложное чувство безопасности.

Вы можете зашифровать свой локальный дБ, но с электроном его так легко расшифровать, что, возможно, оно вообще не стоит?Получить источники вашего электронного приложения очень просто.Минификация помогает только немного, но это не настоящая защита.

Есть много подходов, которые вы можете использовать, но они различаются в зависимости от обстоятельств.Вопросы, на которые необходимо ответить:

  • от кого вы пытаетесь защитить?
  • критично для безопасности или это только основные меры, поэтому не каждый может получить данные из БД с первого взгляда?
  • имеет ли пользователь, использующий приложение, права администратора на компьютере?
  • Вы обращаетесь к БД напрямую через электронное приложение, или какой-то общесистемный сервис (дэймон) связывается с БД и передает результаты электронному приложению.
  • если предыдущим было "да", как вы связываете службу с электронным приложением и как это защищено?

Посмотрите на обсуждение доступа к исходному коду:

https://github.com/electron/electron/issues/3041

, а также проверьте эту статью (особенно в части безопасности):

https://hackernoon.com/electron-the-bad-parts-2b710c491547

...