Какой самый безопасный способ хранения небольшого количества структурированных данных? - PullRequest
1 голос
/ 15 апреля 2011

У меня небольшое количество структурированных данных, и мне нужно выполнить три задачи:

  1. Сохранить / извлечь данные на / с жесткого диска или USB-ручки
  2. Иметь «портативный»"приложение (ничего для установки на ПК, кроме фреймворка)
  3. Защищенные данные

Какой лучший способ достичь моей цели?Я думаю, что, имея структурированные данные, я мог / должен использовать базу данных ... но какую?MySql является бесплатным и очень быстрым, но его нужно установить ... отказаться.MsSql / Oracle имеют ту же проблему, поэтому они не могут быть использованы.Может быть SQLite ?Что ж, это может быть хорошим вариантом: ничего не нужно устанавливать, один файл, который тоже можно зашифровать, используя байтовый массив или строку в качестве пароля.А что насчет XML ?Его легко использовать, просто один файл, который тоже можно зашифровать ... но вопрос в том, как ?Используете AES?3DES?Или просто хранить поток XML в файле ZIP / 7Z, защищенном длинным паролем?Я знаю, что ничто не может быть абсолютно уверенным (сегодня у нас есть графические процессоры и облачные вычисления для взлома защиты и паролей), но как я могу создать действительно безопасный архив, простой в использовании и переносимый?Какой самый безопасный способ?Почему?
Спасибо

Ответы [ 4 ]

1 голос
/ 15 апреля 2011

Какие бы данные вы не анализировали.XML и SQLite - хороший выбор.Используйте тот, который лучше подходит для вашей цели, и убедитесь, что вы хорошо его зашифровали.SQLite хорош, если ваши данные хорошо вписываются в реляционную модель (таблицы, столбцы, строки), а XML - хороший выбор, если вы хотите хранить иерархические данные.Какой алгоритм шифрования вы выберете снова, зависит от приложения - насколько вам нужна безопасность, а также какая библиотека лучше поддерживает выбранный вами язык.XML или SQLite будут безопасны только в той степени, в которой вы используете шифрование.

Существует несколько готовых продуктов шифрования SQLite, но ни один из них не является бесплатным AFAICT.Вероятно, лучшее решение - Расширение шифрования SQLite , которое написано самим автором SQLite, но стоит (2000 долларов).Вы, вероятно, можете свернуть свой собственный, но он не будет таким чистым.Я также считаю, что если вы используете .NET, то я полагаю, что вы можете получить бесплатную защиту паролем из библиотек .NET (см. Защита паролем БД SQLite. Возможно ли это? ).

Редактировать : после нескольких дополнительных исследований я составил хороший список упаковщиков SQLite, в котором указано, какие из них поддерживают шифрование .Выберите на основе языка и личных предпочтений.

1 голос
/ 15 апреля 2011

XML - это кроссплатформенный, непатентованный способ хранения информации. Данные, хранящиеся в формате XML, могут быть прочитаны практически любой современной операционной системой, и для их хранения на USB-накопителе требуется очень мало программного обеспечения, и никогда не требуется установка какого-либо программного обеспечения сторонних производителей. AES обычно достаточно безопасен, если он соленый.

0 голосов
/ 15 апреля 2011

Я думаю, что самый простой способ - использовать оболочку System.Data.Sqlite для базы данных Sqlite.Шифрование базы данных очень просто: все, что вам нужно сделать, это установить свойство пароля для вашей ключевой строки.Они обсуждают, как они используют Microsoft Crypto API и алгоритм RC4 на своем форуме .

. Вы получаете преимущество базы данных SQL, интерфейса ADO.Net, однофайловой базы данных иотдельная DLL в вашем проекте.Это не может быть проще, даже если все, что вы делаете, это храните строки XML в вашей базе данных.

0 голосов
/ 15 апреля 2011

http://www.safehousesoftware.com/SafeHouseExplorerU3.aspx

Существует программное обеспечение, которое позволяет вам шифровать часть вашего USB-ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...