vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Sicherheit mal anders 
Autor: Sophus
Datum: 10.03.13 01:56

Hallo VB-Freunde,

kurz zu meinem Projekt. Ich schreibe für mich ein Verwaltungsprogramm. Dieses Programm arbeitet natürlich mit der Datenbank Access. Und viele von euch wissen auch, dass man die Datenbank "angeblich" mit hausgemachten Tools schützen kann. Jedoch ist dem nicht so. Datenbankkennwörter können schnell ausgelesen werden - sprich die Art von Schutz wäre mit einem Gartenzaun zu vergleichen. Leichte Angriffe können eventuell abgewehrt werden, aber sobald es ernst wird, ist dieser Schutzmechanismus auch hinfällig. Also habe ich sehr lange darüber nachgedacht, wie man eine Datenbank vernünftig und auf hohem Niveau schützen kann. Und da kam ich auf eine Idee. Es ist ja nun allseitsbekannt, dass RAR-Dateien, welche mit einem Passwort versehen sind, äußerst schwer zu knacken sind. Meine ist Idee ist nun folgende: In meinem Verwaltungsprogramm soll die Funktion benutzerfreundlich implementiert werden, die es ermöglicht die Datenbank mit einem Passwort zu "verpacken", sobald das Programm bendet wird. Sobald die Datenbank erfolgreich verpackt wurde, wird die andere Datenbank gelöscht - so gibt es nur noch die Datenbank, die in der RAR-Datei mit einem Passwort verpackt ist. Und wenn der Anwender das Programm wieder startet, so wird die RAR-Datei von meinem Verwaltungsprogramm entpackt. War das Entpacken erfolgreich, so wird die RAR-Datei gelöscht. Und dann geht es wieder von vorne los - Verpacken und Entpacken.

Nun zwei Fragen an euch. Was haltet ihr von dieser Idee? Und als nächstes ist mir aufgefallen, dass das Entpacken von Dateien möglich ist, aber ich habe nirgends gelesen, dass es ein Beispiel dafür gibt, um eine Datei zu "packen" - und das Ganze mit Passwort. Und daher frage ich euch, ob es überhaupt möglich ist?

Mit den besten Grüßten
Sophus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Manfred X
Datum: 10.03.13 12:22

Hallo!

Um RAR-Dateien zu erstellen wird vermutlich eine Entwicklerlizenz
und eine entsprechende Bibliothek benötigt.

Gegenvorschläge:
- Nutzung eines Datenbanksystems, das sicheren Schutz bietet
- Verschlüsselung der Daten vor dem Eintragen in die Datenbank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Sophus
Datum: 10.03.13 15:50

Hallo Manfred X,

deine Gegenvorschläge klingen soweit ganz gut. Nur, welches Datenbanksystem würde du denn vorschlagen? MySQL wäre vielleicht eine Option, nur müsste man auf allen Rechnern MySQL installiert haben. Da hat Access einen entscheidenden Vorteil - das Programm muss nicht installiert sein. Und das mit der Verschlüsselung der Daten. Ich muss leider gestehen, dass ich kein so gutes Verschlüsselungsverfahren kenne, was schwer zu knacken wäre. Auf diesem Gebiet bin ich nicht firm.

Gruß
Sophus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Manfred X
Datum: 10.03.13 16:37

Es gibt "eingebettete Datenbanken" wie SQLite oder MS-SQL-Compact,
die aus VB6 z.B. per ODBC-Treiber eingebunden werden können.
Die erforderlichen "Engines" (DLLs) können direkt zusammen mit der
Anwendung installiert werden.

Ich würde aber raten, für die Entwicklung von "sicheren" DB-Anwendungen
zu VB-Net / ADO-Net zu wechseln.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Sophus
Datum: 10.03.13 17:21

Vielen Dank für deine Vorschläge. Das Problem ist einfach, dass ich das Programm weitesgehend fertiggestellt habe und nur auf DAO 3.6 arbeite - ich weiß, nicht gerade professionell. Aber auf diesem Gebiet habe ich quasi gelernt wie man eine Datenbank-Anwendung schreibt und ich konnte es irgendwie schnell erlernen. Wenn ich mir deine Vorschläge also anschaue, bedeutet das ein weiterer großer Schritt und mein Programm müsste quasi komplett neu umstrukturiert werden, wenn ich es richtig deute - schließlich handelt es sich um andere Zugriffsmöglichkeiten auf die Datenbanksysteme.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Manfred X
Datum: 10.03.13 19:13

Nicht unbedingt.
Das hängt auch davon ab, wie Dein Programm gestaltet ist, d.h.
ob die DB-Zugriffe an bestimmten Stellen zentralisiert sind,
z.B. in einer Zugriffsklasse.
Du kannst in dem Fall nach ActiveX-Wrappern bzw. ODBC-Treibern suchen, z.B.
http://x443.wordpress.com/2007/07/26/sqlite-com-wrappers-visual-basic-dlls
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Franki
Datum: 11.03.13 23:25

Hallo,

ich stelle mal eine Gegenfrage: Vor wem oder was möchtest du deine DB eigentlich schützen, bzw. wo liegt das Gefährdungsrisiko bzw. wie hoch könnte der Schaden sein?

Bei Sicherheitsfragen (egal ob Anwendung, Datenbank oder Gartenzaun) stellt sich immer die Frage gegen was man sich eigentlich wehren möchte. Deine Geldscheine hast du auch im Portemonnaie wenn du einkaufen gehst und nicht einen Tresor bei dir. <vbg>

100 Prozent Sicherheit gibt es sowieso nicht. Analysiere das Gefährungsrisiko in der Praxis, dabei spiel ja auch eine Rolle wo die Datenbank / deine Anwendung überhaupt erreichbar ist und wer da evtl. drauf zugreifen könnte mit "bösen" Absichten.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Sophus
Datum: 12.03.13 00:12

Hallo Frank,

zu deiner Gegenfrage: Zunächst einmal, ich habe ungern und selten Geld in der Tasche - höchstens 5-10 Euro. Ansonsten zahle ich aus Sicherheitsgründen mit meiner EC-Karte. Soviel zum Vergleich

Aber um deine Frage nun zu beantworten. Wie ich bereits angemerkt habe, handelt es sich im ein Verwaltungsprogramm. Darunter kann man eben auch Kontaktdaten abspeichern. Und wie du sicherlich weißt, sind Kontaktdaten grundsätzlich gut zu behandeln. Ich zum Beispiel weiß ja nicht, wie du mit den Daten auf deinem Handy/Smartphone umgehst, aber meine Daten werden mit zweifachem Passwort gesichert. Sprich, wer meine Kontakte lesen will, muss erstmal meine zwei unterschiedlichen Passwörter kennen. Und ich möchte auch, dass die Kontaktdaten generell sicher sind und nicht mit zwei Klicks ausspioniert werden. Wer nun diese "bösen" Absichten verfolgt, kann ich sehr schlecht prognotisieren. Jedoch ist allseits bekannt, wenn man mit seinem Rechner/Laptop im Internet bewegt, dass man in die efahr begiebt ausspioniert zu werden. Wenn jemand also mein Programm verwendet, soll er oder sie nicht das Gefühl haben, dass die unteranderem die Kontaktdaten wie auf einem Serviertablett präsentiert wird. Dass es keine 100 prozentige Sicherheit gibt, dass ich mir bewusst. Aber man könnte zumindest das Risko etwas eindämmen.

Ich hoffe, ich konnte mit meinem Roman etwas transparent machen was ich mir so denke.

Mit besten Grüßen
Sophus
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: ronnie
Datum: 12.03.13 08:01

Hallo,
dann verschlüssel doch einfach deine Daten.
Beispiele gibts im Netz ja sicherlich genug dafür.
Hier ein Beispiel vom vbArchiv:
http://www.vbarchiv.net/tipps/tipp_564-sichere-verschluesselung-vernam-algorithmus.html
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Sophus
Datum: 12.03.13 13:42

Hallo ronnie,

zu dem Verschlüsselungsverfahren habe ich ein paar Fragen. Also, es gibt da zwei Dinge, die mich da ein wenig beschäftigen. Zumnächst die Suche. Sage mir, ob ich richtig liege. Sobald in der Datenbank die Daten verschlüssel vorliegen, nehmen wir mal als Beispiel "Karl Mustermann". Und nun öffne ich meine Suche und möchte nach Karl Mustermann suchen, dann muss ich also den Suchbegriff vorher verschlüsseln und mit dem verschlüsselten Begriff suchen, richtig? Meine Suchfunktion funktioniert ja auch so, wenn ich zum Beispiel nach Nachnamen suchen möchte, dass ich auch nur "Must" eingeben brauche, und er listet mir sämtliche Suchergebnisse in der ListView auf - darunter würde dann auch "Mustermann" auftauchen. Würde das denn auch in der verschlüsselten Form passieren? Angenommen, ich gebe in verschlüsselter Form "Must" ein, und dieser Begriff wird verschlüsselt und dann als Suchbefehl losgeschickt. Klappt das? Oder muss ich dann viel eher "Mustermann" eingeben, damit dieser Nachname genauso korrekt verschlüsselt vorliegt wie in der Datenbank, und somit gefunden werden kann?

Und dann das nächste Problem. Der Inhalt der Datenbank wird über ein paar Spalten in der ListView ausgegeben (z.B. Name, Vorname, Geburtstort). Wenn aber die Daten nun verschlüsselt in der Datenbank liegen, ich aber die Form mit der ListView aufrufe, könnte es ein kleines Problem geben, richtig? Nach welchen Kriterien entschlüssel ich? Um meine Frage etwas einfach zu halten: Wenn ich in einer Textbox einen verschlüsselten Text habe, so kann ich sagen "entschlüssel Textbox.1 und gebe es in Label1 aus". Rein Gedanklich kann ich es sogar verstehen. Aber wie soll das über die ListView passieren? An dieser Stelle komme ich rein gedanklich nicht weiter.

Gruß
Sophus

Beitrag wurde zuletzt am 12.03.13 um 13:46:58 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Manfred X
Datum: 12.03.13 15:58

Hallo!

Du mußt alle Tabellenspalten, die verschlüsselt sind
nach der Abfrage und vor der Benutzung im Programm entschlüsseln.
Die direkte Suche nach Teilen in einer String-Spalte ist
bei sicherer Verschlüsselung nicht möglich.
Du mußt zunächst den Inhalt der gesamten Spalte + Primärindex
der Tabelle laden, die Spalte entschlüsseln und programm-intern
suchen. (Eventuell kann eine entsprechende Funktion auch in
der Datenbank abgelegt werden. Ob die Chiffrierung dann noch
hinreichend sicher ist, kann ich nicht beurteilen.)

Vermutlich ist es nicht erforderlich alle Spalten derart
zu sichern.

Bei Personen-Daten reicht es eventuell, die Spalten
Nachname/Wohnort/Telefonnummer zu verschlüsseln.
Mit Angaben zu Beruf, Kontakt-Datum oder Geburtsort läßt
sich dann - mit vertretbarem Aufwand - keine Identifizierung
herbeiführen.

MfG
Manfred
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Sophus
Datum: 12.03.13 16:09

Hallo Manfred X,

wenn ich dich also richtig verstanden habe, wäre es unnötig, jede einzelne, nicht eindeutig zuzuordnete Daten zu verschlüsseln? Wie du eben sagtest, dass die Berufsangaben nicht unbedingt verschlüsselt werden müssen, genauso wie Geburtsdatum. Dein Gedankengang klingt logisch und auch nachvollziehbar. So würde ich zum Beispiel den Aufwand mit der ListView sparen, da nur die nicht verschlüsselten Daten dort ausgegeben werden. Aber das Problem mit der Suche hat sich leider damit nicht gelöst. Ich habe es so eingerichtet, dass man im Grunde nach allem udn jedem Begriff suchen kann, und nicht nur nach Nachname, Vorname etc. Wenn ich meine Form-Maske so anschaue, kann man jede erdenkliche Information über die Person abspeichern (außer Gewicht, Größe, Hautfartbe etc. - so kleinkarriert will ich nun nicht sein). Und wie ich schon befürchtet habe, kann es sehr schwierig werden, nach verschlüsselten Daten zu suchen.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Sicherheit mal anders 
Autor: Manfred X
Datum: 12.03.13 16:31

Schwierig?

Du kannst zunächst eine allgemeine Routine schreiben, die
ein String-Array übernimmt und die Elemente entschlüsselt/
verschlüsselt zurückgibt.

Ich denke, Du benötigst eine weitere Routine, der Du als
Parameter einen Tabellenamen, Spaltennamen und zu suchenden
(Teil-) Strings übergibst.

Diese Routine gibt ein Array zurück, dessen Elemente
die Primärschlüssel der Datensätze enthalten, die den
Suchkriterien entsprechen.

In dieser Routine werden die entsprechenden Spalten
aus der DB geladen, die verschlüsselten Spalten werden entschlüsselt
und die Suche nach den gegebenen Teilstrings wird ausgeführt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel