Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Passwortabfrage umgehen verhindern (https://www.delphipraxis.net/83994-passwortabfrage-umgehen-verhindern.html)

St.Pauli 10. Jan 2007 22:53

Re: Passwortabfrage umgehen verhindern
 
Zitat:

Zitat von Klaus01
Und diesen Hascode beim Start des Programms einlesen und mit einem aktuell erzeugten vergleichen.

Und wieder bei null. Das Problem ist, dass du kryptographische Algorithmen so geschickt anwenden musst, dass die Sicherheit nicht von einer Abfrage im Programm abhängt, sondern einzig und alleine von den Algorithmen.

Sag und am besten, was du in deinem Programm machen willst, denn sonst können wir dir nicht helfen.

negaH 11. Jan 2007 10:38

Re: Passwortabfrage umgehen verhindern
 
Zitat:

Wäre es denn nicht, um ein Aushebeln der Passwortabfrage zu erkennen, möglich die Clientdatei (exe)
mit einem Hashcode zu versehen. Den Hashcode in einer Datei auslagern, die Datei verschlüsseln.
Und diesen Hascode beim Start des Programms einlesen und mit einem aktuell erzeugten vergleichen.
Stimmen diese überein, wurde an der Clientdatei nichts verändert und der Passwortabfrage kann vertraut werden.
Somit hast du nun 2 Angriffsflächen für den Hacker statt nur eine ;)

1.) Angreifer ändert Client.exe und muß nur den ausgelagerten Hashcode angreifen, dh. er speichert dort seinen eigenen Hashwert -> Angriff auf externen Hashcode
2.) Angreifer ändert Client.exe und entfernt Hashüberprüfung, Angriff auf Client.exe

Die Methode mit Passwort und verschl. Daten zwingt den Angreifer das Passwort des Anwenders anzugreifen, also nur eine Angriffs-"fläche" die WIR als sicher beweisen müssen. Ohne einen erfolgreichen Angriff kann der Angreifer nicht die wichtigen Daten lesen. Jede Angriffs-"fläche" mehr kostet uns Aufwand sie sicher zu machen.

Man erkennt sehr gut den Unterschied in den Methoden. Eine vollständig geknackte Software würde denoch nicht die verschl. Daten lesbar machen. Also nicht versuchen auf Teufel komm raus die eigene Software zu schützen sondern die Daten des Anwenders. Das hat auch noch einen zweiten Vorteil: Denn die Daten des Anwenders sind sein liebste Stück, das wird er pfleglich behandeln wie ein rohes Ei, deine Software ist nur notweniges Übel zum Zweck. Und für dich als Entwickler ist es ein Agrument aus Sicht des Anwenders deine Software zu kaufen.

Die interessante Frage ist es: Wie kann man gemeinsam genutzte Daten krypographisch so verschlüsseln das mehrere Anwender darauf zugreifen können ohne die Daten als Mehrfachkopien halten zu müssen. Darin besteht nämlich die technologische Herausfoderung.

Und man erkennt auch warum ein reiner Softwareschutz niemals sicher sein wird: Der Anwender ist dann nämlich der potentielle Angreifer !

Gruß hagen

fkerber 11. Jan 2007 17:45

Re: Passwortabfrage umgehen verhindern
 
Hi!

Ich werfe meine Frage von oben mal wieder in den Raum:

Zitat:

Zitat von fkerber
Dann mal eine andere Idee (zur Info: die Daten sind einer Access-DB):
Wäre es möglich, die Daten pro Nutzer jeweils in einer DB zu haben und diese dann mit dem PW zu versehen? Dann reduziere ich mein Problem doch auf "Wie knacke ich eine Access DB?"

Wäre das eine bessere Lösung für mich?


Ciao, Frederic

MrKnogge 11. Jan 2007 18:14

Re: Passwortabfrage umgehen verhindern
 
Access bringt diese Funktion doch schon mit !?

fkerber 11. Jan 2007 19:04

Re: Passwortabfrage umgehen verhindern
 
Hi!

jepp, genau deswegen frage ich ja, ob es sinnvoll wäre, Gebrauch von dieser Funktion zu machen oder ob dieser Schutz relativ wirkungslos ist...


Ciao, Frederic

Reinhard Kern 12. Jan 2007 00:27

Re: Passwortabfrage umgehen verhindern
 
Zitat:

Zitat von fkerber
Hi!

jepp, genau deswegen frage ich ja, ob es sinnvoll wäre, Gebrauch von dieser Funktion zu machen oder ob dieser Schutz relativ wirkungslos ist...


Ciao, Frederic

Hallo,

ist schon lange her, dass ich mit Access professionell gearbeitet habe, aber soweit ich mich erinnern kann, war die User- und Zugriffsverwaltung so unlogisch angelegt, dass daran nicht nur die meisten Programmierer, sondern auch die Hacker gescheitert sind - aber (Halb-) Spass beiseite, das ist eigentlich nicht entscheidend: wenn sich die Daten auf deinem Rechner befinden, handelt es sich halt auch nur um eine Datei, und ein Passwortschutz funktioniert nur, solange er in der Software implementiert ist, mit der du auf die Daten zugreifst. Kannst du dir einen anderen DB-Treiber besorgen, fragt womöglich keine Sau nach einem Passwort.

Das ist das equivalente Problem zu Festplatten: NTFS ist sicher unter Windows. Dann greifst du halt unter Linux drauf zu.

Ob es für Access MS-unabhängige Treiber gibt, kann ich nicht beantworten, würde mich aber wundern wenn nicht.

Damit will ich dich aber nicht dazu überreden, unbedingt deinen eigenen Softwareschutz zu entwickeln - es spricht sehr viel dafür, dass der nicht so gut wird wie bei Access. Und einen 100%igen gibt es sowieso nicht, denn schliesslich muss dein Programm ja auch mal funktionieren, also korrekt im Speicher vorliegen. Selbst wenn du dich an die "Trusted"-Entwicklungen von MS anhängst, so dass ein TPM-Rechner deinen Code nicht ausführt, was machst du, wenn er keinen solchen hat?

Gruss Reinhard

negaH 12. Jan 2007 08:33

Re: Passwortabfrage umgehen verhindern
 
Stop mal,

wir müssen da 2 Techniken unterscheiden

1.) Zugriffsschutz per Passwort
2.) Datenverschlüsselung per Passwort

NTFS verschlüsselt die Dateien, man kann zwar mit Linux versuchen diese Daten zu lesen, sie löschen etc.pp. man wird aber OHNE das Passwort nichts Sinnvolles aus diese Dateien lesen können.

Ob beim Access der Passwortschutz nun die Datenbanken real verswchlüsselt, sprich alle Datensätze, oder nur ein simpler Passwort-Zugriffs-Schutz ist, weis ich nicht. Nur wenn Access die Datensätze mit dem Passwort verschlüsselt IST das sicher (solange Access auch ein sicheres Verfahren dazu benutzt, man weis ja bei MS nie so recht).

Also informiere dich ob Access
1.) mit dem Passwort die Datenbank verschlüsselt, vorzugsweise immer Live für jeden Datensatz separat, und nicht die komplette Datei (muß ja dann beim Zugriff alles entschl. werden)
2.) mit welchem Verfahren Access dabei arbeitet

Gruß Hagen

Jasocul 12. Jan 2007 10:47

Re: Passwortabfrage umgehen verhindern
 
Ich kenne Access nicht, aber Oracle.
Ich würde das eingegebene Password an eine Stored-Procedure der Datenbank übergeben und dort mit dem hinterlegten Passwort in der Datenbank vergleichen. Passt es nicht, wird der Client-Zugriff von der Datenbank aus abgeschossen. Ich habe das in dieser Form zwar noch nicht getestet, denke aber, dass das realisierbar ist. Der Client kann selbst gar nicht mehr darüber bestimmen, ob er Zugriff bekommt, da der Vergleich in der Datenbank durchgeführt wird. Das Passwort MUSS stimmen. 100%ig sicher ist das natürlich auch nicht. Der DB-Server könnte ja auch gehackt sein...

negaH 12. Jan 2007 16:34

Re: Passwortabfrage umgehen verhindern
 
Bei dieser Methode gelten 2 Regeln:

1.) Server muß vertrauenswürdig sein, sprich einbruchsicher
2.) das Passwort muß auf Client Seite mit einem Kryptographischen Verfahren umgewandelt werden -> Challeng-Response Protokolle benutzen.

Das Passwort lesbar im Netz zu übertragen öffnet wiederrum eine Angriffsfläche, quasi ein Scheunentor für den Angreifer.

Gruß Hagen

Reinhard Kern 12. Jan 2007 18:19

Re: Passwortabfrage umgehen verhindern
 
Zitat:

Zitat von negaH
Stop mal,

wir müssen da 2 Techniken unterscheiden

1.) Zugriffsschutz per Passwort
2.) Datenverschlüsselung per Passwort

NTFS verschlüsselt die Dateien, man kann zwar mit Linux versuchen diese Daten zu lesen, sie löschen etc.pp. man wird aber OHNE das Passwort nichts Sinnvolles aus diese Dateien lesen können.

Ob beim Access der Passwortschutz nun die Datenbanken real verswchlüsselt, sprich alle Datensätze, oder nur ein simpler Passwort-Zugriffs-Schutz ist, weis ich nicht. Nur wenn Access die Datensätze mit dem Passwort verschlüsselt IST das sicher (solange Access auch ein sicheres Verfahren dazu benutzt, man weis ja bei MS nie so recht).

Also informiere dich ob Access
1.) mit dem Passwort die Datenbank verschlüsselt, vorzugsweise immer Live für jeden Datensatz separat, und nicht die komplette Datei (muß ja dann beim Zugriff alles entschl. werden)
2.) mit welchem Verfahren Access dabei arbeitet

Gruß Hagen

Hallo Hagen,

ich hätte das vielleicht deutlicher formulieren sollen, jedenfalls bezog ich mich auschliesslich auf Zugang per Passwort, nicht Verschlüsselung. Das dürfte bei Access auch nicht funktionieren, denn die eingebaute User-Verwaltung lässt beliebig viele User zu mit verschiedenen Passworten - womit sollte da verschlüsselt werden? Dazu müsste man eine Passwort-Hierarchie einrichten.

Das ist im übrigen das Problem beim Verschlüsseln - alle User müssen das Geheimnis kennen, um die Daten zu entschlüsseln.

Gruss Reinhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz