Zugriffschutz auf Ordner

SaschaU

Mitglied
Hallo zusammen,

ich schreibe gerade eine Swing-basierte Java-Anwendung, in der unter anderem (grob vereinfacht) eine Liste von Bild-Dateien aus einer DB ausgelesen und in einer JList dargestellt wird. Klickt man einen Eintrag in der Liste an, dann öffnet sich das Bild in einem eigenen Frame.

Mein Problem ist nun, dass ich einen Zugriffsschutz auf den Ordner mit den Bilddateien auf dem Datenträger (wahrscheinlich DVD) integrieren möchte, so dass kein Benutzer die Bilddateien öffnen, kopieren kann etc.
D.h. also, dass nur das Programm selbst Zugriff auf den Ordner haben darf und nichts/niemand anderes. Da es ca. 10.000 Dateien sein werden, ist es wahrscheinlich ziemlich unperformant, wenn diese in ein ZIP/RAR/JAR etc. integriert werden würden.

Also, perfekt wäre, diesen Ordner quasi in einer Sandbox laufen zu lassen, die nur vom Programm genutzt werden dürfte...

Am besten wäre es, wenn ich kein "fremdes" Framework nutzen müsste, denn ich möchte möglichst Lizenz-unabhängig arbeiten (auch wenn es freie Lizenzen sind). Wäre aber auch nicht so wild, wenn es genau das bringt, was ich benötige.

Nach zahlreichen Google-Such-Stunden habe ich noch nicht wirklich das Richtige gefunden (oder auch übersehen), daher wollte ich hier einmal nachfragen, ob jemand so etwas schon einmal gemacht hat oder zumindest weiß, welche Möglichkeit die beste wäre!?

Vielen Dank und beste Grüße,
Sascha

P.S.: Ich bin leider ab morgen bis zum Wochenende auf Dienstreise, daher werde ich erst einmal nicht antworten können. Es wäre aber super, wenn ich ein paar Ideen sammeln könnte, die ich nächstes Wochenende ausprobieren kann...
 
Alles, was dein Programm auslesen kann, kann natürlich auch irgendwie anders ausgelesen werden. Einen absoluten Schutz wirst du nicht hinbekommen. Auch wenn du ein passwortgeschütztes Zip oder ähnliches machst: Das Passwort steht entweder im Quelltext deines Programms und kann durch decompilieren in Erfahrung gebracht werden, oder das Passwort wird über das Netzwerk übertragen, wo es durch Sniffing abgefangen werden kann.
 
Alles, was dein Programm auslesen kann, kann natürlich auch irgendwie anders ausgelesen werden. Einen absoluten Schutz wirst du nicht hinbekommen. Auch wenn du ein passwortgeschütztes Zip oder ähnliches machst: Das Passwort steht entweder im Quelltext deines Programms und kann durch decompilieren in Erfahrung gebracht werden, oder das Passwort wird über das Netzwerk übertragen, wo es durch Sniffing abgefangen werden kann.


So, ich danke Dir schonmal für die Antwort! Leider hat sich beruflich ergeben, dass ich in den letzten 4 Wochen gar nicht zuhause war und daher auch nicht an dem Projekt weiterarbeiten konnte.

Da ich jetzt wieder ein bisschen Zeit habe:

Dass ich keinen 100prozentigen Schutz erwarten kann, ist mir jetzt klar. 🙁
Jedoch möchte ich es dem Benutzer so schwierig wie möglich machen und würde daher gerne zumindest ein passwortgeschütztes ZIP oder JAR erstellen, in dem meine ganzen Bilder enthalten sind. Ich würde das ZIP gerne mit dem Java-Programm öffnen und solange mit dem geöffneten ZIP-Archiv arbeiten (also Bilder entnehmen, darstellen usw.), bis ich das ZIP wieder "schließe". Im Prinzip also so, wie ich mit einem ZIP-Programm arbeite, wenn ich damit ein Archiv öffne und solange Zugriff auf die Dateien darin habe, bis ich das ZIP-Programm wieder schließe.

Das ich dafür die Passwort-Informationen irgendwo im Code hinterlegen muss, ist mir klar, aber die kann ich zumindest zu verstecken, dass es umständlich und langwierig wird, dieses zu finden (wie auch immer ich das dann implementiere - mache ich mir danach Gedanken drum).

Ich habe auch schon zahlreiche Möglichkeiten untersucht, aber entweder ich habe eine Bibliothek, mit der ich ein passwortgeschütztes ZIP komplett entpacken muss (also nicht nur öffnen, wie z.B. Zip4j) oder es kostet Geld (wie Chilkat). Beides kommt für mich leider nicht in Frage.

Hat einer von Euch vielleicht eine Idee, wie (oder womit) ich mein kleines Problem lösen könnte?

Besten Gruß,
Sascha
 
Wenns nicht unbedingt komprimiert sein muss, kannst du die Bilder auch in ein eigenes Datenformat konvertieren, bspw. indem du einfach die Bytes der Bilder mit einem von dir definierten Schlüssel verschlüsselst.
 
Wenns nicht unbedingt komprimiert sein muss, kannst du die Bilder auch in ein eigenes Datenformat konvertieren, bspw. indem du einfach die Bytes der Bilder mit einem von dir definierten Schlüssel verschlüsselst.

Hm, DAS ist vielleicht mal eine Idee. Das werde ich auf jeden Fall mal implementieren und mal schauen, wie ich damit klarkomme...

Ansonsten habe ich mir überlegt, die einzelnen Dateien alle zu Zippen (passwortgeschützt) und die Dateiendung wegzunehmen. Wenn dann auf die Bilder zugegriffen wird, dann wird die Endung wieder angehangen, die Datei entpackt und temporär auf die HD gelegt. Nach dem Gebrauch wird die temporär entpackte Datei wieder gelöscht und die Endung wieder entfernt... Zusätzlich dazu setze ich die Dateien noch auf "isHidden=true" (für die PCs, bei denen das entsprechend eingestellt ist) und verstecke das ZIP-Passwort so tief im Code, dass niemand mehr Bock hat, danach zu suchen. :toll:
Das dann kombiniert mit Deinem Vorschlag dürfte eigentlich "sicher" genug sein.

Mal sehen - vielen Dank auf jeden Fall für die Idee...
 
Dateiendungen sid Schall und Rauch, das kannst du dir sparen. Du brauchst ein Bild auch nicht erst als Datei abspeichern bevor du es anzeigen kannst, der Stream reicht völlig.
Das einfachste wird tatsächlich eine XOR artige Verunstaltung der Daten. Das hält zwar niemanden mit Ahnung ab, aber Ottonormal Verbraucher (und mehr kannst du auch gar nicht erreichen).
 

Zurück
Oben