SQLite Passwort geschützt?



  • Hi. Das SQLite scheint sehr interessant. Ich möchte mir einen kleinen Passwort-Manager in BCB schreiben, in welchem ich die Daten in sqlite3 ablege. Jetzt birgt aber genau die Datenbank die Schwachstelle, da doch recht einfach auslesbar für Fremde ist.

    Kennt eventuell wer einen OpenSource Wrapper der die Datenbank entsprechend verschlüsselt?



  • Du könntest die Datenbank einfach mit AES verschlüsseln.

    Hier sind ein paar Links zu AES, bzw. Biliotheken dazu:
    http://de.wikipedia.org/wiki/Advanced_Encryption_Standard#C.2B.2B-Bibliotheken
    http://www.cryptopp.com/



  • Danke für den Beitrag, ist aber nicht ganz das was ich suche.

    Ich habe jetzt die ganze Zeit rumgegoogelt und probiert und bin auf das hier gestossen
    http://www.nabble.com/Re%3A-SQLite---how-to-protect-the-data-p9137185.html

    Auf http://wxcode.sourceforge.net/components/wxsqlite3/ soll wohl die Möglichkeit bestehendas De/Encrypten ins standard SQLite zu übertragen laut Autor, aber so richtig komme ich damit nicht klar. Hat das eventuell schon wer gemacht und kann ein kleines HowTo verfassen?

    Würde sicher sehr viele die mit SQLite arbeiten interessieren.



  • Dieser Wrapper baut doch auf wxWidget auf.
    Warum ausgerechnet der, wo ich da auch auf den ersten Blick keine Möglichkeit zur Verschlüsselung gefunden habe.
    Nimm einen Wrapper aus den anderen hier Zeitnahen Threads um SQLite und bau dir da die AES Verschlüsselung ein.
    Wo ist das Problem ?
    Was fertiges habe ich bislang noch nicht gesehen.



  • Professional Support unterstützt AES

    http://www.hwaci.com/sw/sqlite/prosupport.html



  • Laut Doku von wxSQLite3 wird das verschlüsseln ja wie du schon sagtest unterstützt. Hast du dir mal das Beispielprogramm (/wxsqlite3-1.8.3/samples/minimal.cpp)im Source angeschaut? Genau dort wird ganz am Anfang die Datenbank mit verschlüsslung geöffnet.

    if (wxSQLite3Database::HasEncryptionSupport())
    {
      db.Open(gszFile, wxString(_T("password")));
    }
    else
    {
      db.Open(gszFile);
    }
    


  • guenni81 schrieb:

    if (wxSQLite3Database::HasEncryptionSupport())
    

    Das ist die Überprüfung ob es eine Professional Support Version ist
    http://www.hwaci.com/sw/sqlite/prosupport.html

    Hier gibt es noch eine freie aber über SQL Befehle Verschlüsselung (AddOn)
    http://greschenz.dyndns.org/index.php?title=SQLITE



  • VergissEs schrieb:

    guenni81 schrieb:

    if (wxSQLite3Database::HasEncryptionSupport())
    

    Das ist die Überprüfung ob es eine Professional Support Version ist

    Er nutzt die Funktionen die von sqlite3 bereits mitgeliefert werden, aber mit eigenem Inhalt.

    VergissEs schrieb:

    Hier gibt es noch eine freie aber über SQL Befehle Verschlüsselung (AddOn)

    Danke! Wäre eine Möglichkeit, aber moemntan hänge ich wieder bei 0 fest, nachdem ich auf die blöde Idee kam nochmal alles neu zu compilieren.

    Sieht eventuell wer da meinen Fehler? *rumjammer*
    http://www.c-plusplus.net/forum/viewtopic-var-p-is-1472636.html#1472636



  • ~SQLite schrieb:

    Er nutzt die Funktionen die von sqlite3 bereits mitgeliefert werden, aber mit eigenem Inhalt.

    Das hab ich so verstanden das bei SQLite3 in der Version die dem Zip beiliegt soetwas dabei ist und man dies mit hinein kompilieren muss.



  • guenni81 schrieb:

    ~SQLite schrieb:

    Er nutzt die Funktionen die von sqlite3 bereits mitgeliefert werden, aber mit eigenem Inhalt.

    Das hab ich so verstanden das bei SQLite3 in der Version die dem Zip beiliegt soetwas dabei ist und man dies mit hinein kompilieren muss.

    Klarstellung zu der in der Distribution von wxSQLite3 enthaltenen Erweiterung zur Verschlüsselung von SQLite-Datenbanken:

    1. Die Erweiterung unterstützt die vordefinierte API in SQLite (sqlite3_key und sqlite3_rekey) (wie sie auch von der von D.R. Hipp (Hauptautor von SQLite) angebotenen kommerziellen Verschlüsselungsunterstützung genutzt wird). In der frei verfügbaren SQLite-Distribution ist diese API bekanntlich nicht implementiert. Die 128-Bit-AES-Verschlüsselung erfolgt für die Anwendung völlig transparent - im Gegensatz zu dem von VergissEs erwähnten, auf SQL-Ebene operierenden Add-On.

    2. Die Erweiterung ist völlig unabhängig von der wxWidgets-Bibliothek, für die wxSQLite3 einen SQLite-Wrapper bereit stellt. Sie wird direkt in die SQLite DLL oder Lib einkompiliert.

    3. Die Erweiterung funktioniert unter Windows, Linux und Mac OS X (und vermutlich auch allen anderen Plattformen, auf denen SQLite übersetzt werden kann). Die erzeugten Datenbank-Dateien können zwischen unterschiedlichen Plattformen problemlos ausgetauscht werden.

    4. Die Erweiterung steht unter der wxWidgets-Lizenz, die auch den kostenfreien Einsatz in kommerziellen Projekten erlaubt.


Anmelden zum Antworten