Was ist der beste Ansatz zum Verschlüsseln einer SQLite-Datenbankdatei in .Net/C#? Ich verwende sqlite-dotnet2 Umschlag.
Es gibt Tools wie SQLite-Verschlüsselungserweiterung y SQLite-Krypto , aber beide sind unfrei, während mein Projekt unter der GPL steht.
Der naive Ansatz, an den ich dachte, war, SQLite eine temporäre Datei verwalten zu lassen, diese dann beim Beenden des Programms zu verschlüsseln und das Original zu überschreiben (zu löschen). Der offensichtliche Nachteil ist, dass bei einem Programmabsturz (und während es läuft) die Klartext-DB zugänglich ist.
Gibt es einen besseren Weg, dies zu tun? Kann ich einen verschlüsselten Stream an den Wrapper übergeben (anstatt SQLiteConnection.CreateFile zu verwenden)?
[Bearbeiten] Vielleicht denke ich zu viel darüber nach. Ist es ausreichend, die Option Password in der Verbindungszeichenfolge zu verwenden? Würde die Datei in diesem Fall richtig verschlüsselt werden (oder ist es ein schwächerer Schutz)?
1 Stimmen
> Es gibt Tools wie SQLite Encryption Extension und SQLite Crypt, aber beide sind unfrei, während mein Projekt unter der GPL steht. Wir haben die Verwendung mit .NET noch nicht ausprobiert, aber ich bin im Entwicklungsteam für [SQLCipher][1], das im Grunde eine freie und unbelastete Version von SQLite ist, die transparente Datenbankverschlüsselung bietet. Ich würde es für den Einsatz in mobilen und/oder eigenständigen Anwendungen empfehlen, bei denen eine eingebettete Datenbank erwünscht ist. [1]: github.com/sjlombardo/sqlcipher
1 Stimmen
...und die .NET-Version von SQLCipher ist jetzt auch ein kommerzielles Produkt :(