2 Stimmen

Verschlüsselt, komprimierbar, plattformübergreifend, Dateisystem in einer Datei

Wir möchten eine Desktop-Anwendung entwickeln, die eine lokal gepackte Textdatenbank von einigen GB Größe durchsucht. Wir denken an die Verwendung von Lucene.

Der Benutzer sucht also nach einigen Wörtern, und die lokale Lucene-Datenbank gibt ein Ergebnis zurück. Wir wollen jedoch verhindern, dass der Benutzer einen Volltext-Dump des Lucene-Indexes macht, da die Textdatenbank wertvoll und geschützt ist. Eine Webanwendung ist hier nicht die Lösung, da der Kunde möchte, dass diese Desktop-Anwendung auch in Gegenden funktioniert, in denen das Internet nicht verfügbar ist.

Wie verschlüsseln wir die Lucene-Datenbank, so dass nur die Client-Anwendung auf den Lucene-Index zugreifen kann und ein neugieriger Benutzer nicht einen Volltext-Dump des Indexes machen kann?

Wir dachten, eine Möglichkeit wäre, den Lucene-Index in einem verschlüsselten Dateisystem innerhalb einer Datei zu speichern (so etwas wie truecrypt). Die Desktop-Anwendung würde also die Datei mit den Lucene-Indizes "mounten".

Und dies muss plattformübergreifend sein (Linux, Windows)... Wir würden Qt oder Java verwenden, um die Desktop-Anwendung zu schreiben.

Gibt es einen einfacheren/besseren Weg, dies zu tun?

[Dies ist für einen Kunden. Ja, ja, konzeptionell ist das eine schlechte Sache :-), aber so wollen sie es haben. Im Grunde geht es darum, dass nur die Desktop-Anwendung auf den Lucene-Index zugreifen kann und niemand sonst. Jemand hat darauf hingewiesen, dass dies im Wesentlichen DRM ist. Ja, es ähnelt DRM]

3 Stimmen

Ich meinte nicht "das ist böse, genau wie DRM". Ich meinte: "Das ist kaputt, genau wie DRM".

1voto

Jaded Cynic Punkte 11

Einweg-Hash-Funktion .

Sie speichern nicht den Klartext, sondern Hashes. Wenn Sie nach einem Begriff suchen wollen, geben Sie den Begriff in die Funktion ein und suchen dann nach dem Hashwert. Wenn es eine Übereinstimmung in der Datenbank gibt, wird ein "Daumen hoch" zurückgegeben.

Sind Sie bereit, Fehlalarme in Kauf zu nehmen, um Platz zu sparen? Bloom-Filter.

0 Stimmen

Wenn die Einweg-Hash-Funktion allen bekannt ist, kann die Datenbank kopiert werden und ist für alle anderen weiterhin nützlich. Bitte lesen Sie die Frage noch einmal :-)

0 Stimmen

Da der Benutzer die Datenbank durchsuchen kann, erstellt xe bei jeder Suche eine Teilkopie (auch bekannt als "Suchergebnisse"); die Datenbank kann also ohnehin in Teilen kopiert und dann zusammengefügt werden: "Hey Joe, öffne diese App und suche nach allem, was mit 'a' beginnt, speichere die Ergebnisse; suche nach allem, was mit 'b' beginnt, speichere die Ergebnisse; bring mir die Ergebnisse, wenn du keine Buchstaben mehr hast." Die Daten sind zugänglich, der Schutz der eigentlichen Datenbank ist also irrelevant.

0 Stimmen

Fügen Sie also eine Prise Salz hinzu und backen Sie für jeden Kunden ein Exemplar. Wäre mein ursprünglicher Kommentar nicht bearbeitet worden, hätten die Anspielungen darauf, dass es sich um ein vierzig Jahre altes Problem handelt, dessen Lösung in Ihrer /etc/passwd-Datei zu finden ist, dies deutlich gemacht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X