00.04.01 Stefan Kiesel
Mein Name ist Stefan Kiesel und ich komme aus einem 10.000 Seelen-Dorf in Unterfranken. Meine Motivation, bei diesem Blog mitzuarbeiten, ist einfach zu erklären: Ich habe selbst sehr viel in einer großen Community lernen können und weiß, wie wichtig es ist, auf ein aktuelles und umfangreiches Nachschlagewerk für die unterschiedlichsten Themen zurückgreifen zu können. Ein Buch als Blog vereint beide Kriterien und ist somit optimal zum Wissenstransfer geeignet. Außerdem lernt man selbst bekanntlich nie aus. Deshalb sehe ich das Java Blog Buch auch als ideale Möglichkeit sich selbst in neue Themengebiete einzuarbeiten bzw. das eigene Wissen zu vertiefen.
Beruflich bin ich in der IT-Branche tätig und beschäftige mich seit 2004 u. a. mit der Java-Programmierung in den unterschiedlichsten Themengebieten. Nebenberuflich studiere ich an der Fernuniversität in Hagen Informatik. Wer Interesse hat, kann auch gerne über mein Xing-Profil zu mir Kontakt aufnehmen.
Grüße …
Hallo Stefan,
du hast mir vor kurzem sehr kompetent bei http://www.tutorials.de geholfen. Nun erlaube ich mir, Dich gleich direkt anzusprechen, wenn ich darf! Ich habe eine Frage und suche nach einem Denkanstoß! Ich spreche über ODBC eine Access-Datenbank an. Diese ist mit einem Paßwort „gesichert“. Von Sicherung kann man da ja natürlich nicht sprechen. Gibt es eine Möglichkeit mit Java für mehr Sicherheit zu sorgen. Ich suche so etwas wie eine Header-Verschüsselung (in dBase war so etwas möglich) nach Beendigung der Java-Applikation, damit die Datenbank danach mit Access nicht mehr geöffnet werden kann. Bei Start der Applikation sollte die Datenbank wieder freigegeben werden. Ich arbeite mit JRE1.5. Was kann ich tun, leider muß ich mit ODBC und Access arbeiten. Für Deine Bemühungen vielen Dank.
Mit freundlichem Gruß
Mika Müller
Leipzig
Hallo MikaM,
danke für das Lob! Erstmal ist es natürlich OK mich direkt anzusprechen. Ansonsten musste ich zum Glück noch nie mit Access arbeiten, aber was mir spontan einfällt: Einfach beim Beenden des Java-Programms die DB-Datei von Access verschlüsseln und beim Start des Java-Programms wieder entschlüsseln. Problem wäre dann natürlich wo der Schlüssel hinterlegt wird, da ein Java-Programm ohne Probleme dekompiliert werden kann. So könnte der Schlüssel oder der Ort des Schlüssels über den Quellcode ausgelesen werden. Eine mögliche Lösung wäre es, den User den Schlüssel zum Entschlüsseln in Form eines Passworts direkt eingeben zu lassen.
Ich hoffe, dass dieser Beitrag hilfreich ist. Ansonsten einfach noch mal melden 😉 .
Gruß
Stefan
Hallo Stefan,
danke für die schnelle Antwort. Du sagt es schon richtig. Das Eingeben des Passwortes wäre für den Benutzer sicherlich machbar. Aber wie verschlüssle ich die Access-DB und gebe diese wieder frei? Damit ich nicht falsches sage, ich will keine einzelnen Felder der Tabelle verschlüsseln. Die Access-DB wird ja in der Applikation nach dem Access-Passwort gefragt und über die ODBC-Schnittstelle freigegeben. Das funktioniert auch. Ist auch nach dem Beenden wieder passwortgeschützt. Mit bestimmten Crackprogrammen kann man(n) das aber „umgehen“ und das will ich verhindern. Ich dachte da an so etwas, wie „Binärverschlüsselung“ der Access-DB. Geht das überhaupt in Java. Für Deine Antwort vielen Dank.
Gruß
Mika
Hi MikaM,
natürlich geht das. Eine Access-DB ist ja nichts anderes als eine Datei auf einem Computer (oder ist dies hier nicht der Fall, weil die DB z. B. auf einem Server liegt!?). Die DB-Datei müsste (wie gesagt) beim Beenden Binär verschlüsselt werden. Also Datei einlesen, löschen, verschlüsselt zurück schreiben. Zum Verschlüsseln würden sich z. B. Algorithmen wie AES oder Blowfish anbieten. Wird das Programm anschließend wieder gestartet, entschlüsselt das Programm die Datei wieder und schreibt die entschlüsselte Version in das Dateisystem zurück. Ab diesem Zeitpunkt kann man sich dann wieder ganz normal zur DB über die JDBC-ODBC-Bridge verbinden.
Die Algorithmen müssen übrigens nicht selbst in Java neu implementiert werden. Dafür gibt es schon eine sehr gute Library => BouncyCastle
Gruß
Stefan
Hallo Stefan,
Danke für den Tipp und Deine Hilfe. Habe mich dort schon etwas eingelesen und werde das auch anwenden.
Gruß
MikaM