System.Data.SQLite Какой тип / уровень шифрования пароля используется - PullRequest
0 голосов
/ 25 февраля 2019

При использовании библиотеки System.Data.SQLite для защиты паролем базы данных SQLite, какой тип / уровень шифрования используется?

Однако при исследовании шифрования SQLite существует много вариантов создания базы данных SQLite из .NET.приложение, использующее вышеупомянутую библиотеку, какой метод шифрования он использует?

Для шифрования базы данных SQLite все, что требуется в .NET-коде, - это просто предоставить пароль в строке подключения.

Строка подключения SQLite

Источник данных = [DBFile.sqlite]; Версия = 3; Пароль = [Пароль]; datetimeformat = CurrentCulture;

Если реализован маршрут шифрования файла SQLite, указанный выше, какой типшифрования было применено?Я не смог найти какую-либо документацию, которая объясняет это.

Параметры шифрования:

Я обнаружил ссылку ниже, но она не говорит мне, что мне нужно знать.Если я не плотный и не скучаю по нему.

https://www.bricelam.net/2016/06/13/sqlite-encryption.html

Stackoverflow Post:

Эта SO-публикация здесь устарела, поскольку она была до SQLite 3, однако у нее есть хорошая документация повозможности шифрования.В одном из ответов в этом посте человек заявляет, что пост устарел, говоря: «SQLite3 .Net как встроенная поддержка шифрования в настоящее время, что в значительной степени лишает законной силы этот ответ»

Что такое встроенное шифрование, упомянутое выше?

SQLite с шифрованием / защитой паролем

1 Ответ

0 голосов
/ 27 февраля 2019

Я просмотрел документацию CHM на домашней странице .Это едва упоминает шифрование.Единственная информация, которую я мог найти, была в истории версий, которая гласит:

1.0.24.3 бета - 10 января 2006 г.

...

  • Добавлена ​​поддержка шифрования базы данных на уровне пейджера.Базы данных шифруются с использованием 128-битного алгоритма потока RC4 .Чтобы открыть существующую зашифрованную базу данных, вы можете указать текст «Password = {пароль}» в ConnectionString или вызвать функцию SQLiteConnection.SetPassword (), чтобы установить пароль для открытого соединения.Чтобы зашифровать существующие незашифрованные базы данных или изменить пароль в зашифрованной базе данных, вы должны использовать функцию SQLiteConnection.ChangePassword ().Если вы используете SetPassword () вместо указания пароля в строке подключения или вызываете ChangePassword (), вы можете использовать двоичный массив байтов или текстовую строку в качестве пароля.

...

(выделено мной)

Быстрый взгляд на страницу RC4 Википедии показывает, что «множественные уязвимости»были обнаружены в RC4, что делает его небезопасным. "Я бы не стал доверять.

Также стоит отметить: модуль шифрования, о котором вы говорите, является не функцией SQLite, а скорее расширением, которое предоставляет библиотека System.Data.SQLite.Его использование сделает вашу базу данных неработоспособной с другими программами чтения SQLite.

...