2010-01-10 5 views
0

Я пишу приложение с файлом базы данных Dbase в Borland Delphi 7.Использование зашифрованного файла надежно

Примечание: Я думаю, что этот вопрос является файл-связанной с безопасностью, и вы можете забыть Dbase вещь (рассмотреть это как TXT-файл) в этом вопросе.

Доступ к базе данных должен осуществляться только приложением. Затем он должен быть зашифрован. К сожалению, dBASE не поддерживает какой-либо механизм паролей, и мне пришлось зашифровать файл самостоятельно (и я также должен использовать dBASE)

Какой подход вы предлагаете защитить файл базы данных?

Простой один:

  1. Шифрование файла базы данных и поместить его рядом рядом с файлом приложения EXE.
  2. Когда приложение запускается, оно должно дешифровать файл (с жестко запрограммированным паролем) и скопировать результат во временный файл с DeleteOnClose и NoSharingPermission флагами.
  3. При закрытии приложение должно зашифровать файл dBASE temp и заменить старый зашифрованный файл на новый.

Я думаю, что это справедливый безопасный подход. Но у него есть две большие проблемы:

  1. С помощью инструмента восстановления пользователь может восстановить и получить доступ к удаленному временному файлу.
  2. Хуже: когда приложение запущено, если система перезагрузилась внезапно, флаг DeleteOnClose не работает, и файл temp остается на жестком диске, и пользователь может получить к нему доступ.

Есть ли решение для, по крайней мере, второй части?

Есть ли другое решение?

+0

Длинный снимок: можете ли вы создать RAM-диск и разместить там файл с расшифровкой данных? –

+2

Пока вы жестко программируете пароль, не будет никакого безопасного решения. Вы должны были бы позволить своим пользователям выбирать пароль, тогда вам не нужно было бы его хранить в любом месте. – Leo

+0

@Mef: Я не ищу очень сильного решения. пароль будет генерироваться динамически из жестко закодированной строки, на самом деле нелегко найти правильный пароль. – Isaac

ответ

1

Вы также можете попытаться создать файловый ограничитель TrueCrypt, установить его, а затем поместить файл dBase в установленный зашифрованный том. TrueCrypt является бесплатным (в обоих смыслах), и он доступен через command line parameters из вашего приложения (монтирование перед запуском, размонтирование перед выходом).

+0

Я все еще не тестировал его, но, кажется, правильное решение;) – Isaac

0

В зависимости от того, что вы делаете с базой данных, вы можете избежать просто дешифрования записей, которые вам действительно нужны. Например, вы можете создавать индексы на основе хеш-кодов (а не реальных данных); это уменьшит количество запросов в базе данных до меньшего набора данных. Каждая запись в подмножестве должна быть расшифрована, но это может быть намного лучше, чем дешифрование всей базы данных.

Смежные вопросы