Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Login" für eigenes Programm realisieren (https://www.delphipraxis.net/26374-login-fuer-eigenes-programm-realisieren.html)

fkerber 22. Jul 2004 20:38


"Login" für eigenes Programm realisieren
 
Hi!

Falls es dazu nen Thread gibt, entschuldige ich mich mal, ich wusste einfach nicht, wonach ich suchen sollte.

Folgendes Problem habe ich:
Ich habe ein Programm, in dem vertrauliche Daten verschiedener User verwaltet werden sollen.
Jetzt geht es drum, dass sich jeder User mit seinem Name + Kennwort einloggen können soll.

Da frage ich mich dann, wo ich die Kombi Benutzername + Passwort abspeichern soll (eine Datenbank ist wohl etwas übertrieben und nur ne TextDatei (ini etc.) kann ja jeder das PW löschen).

Bitte sagt mir mal, wie ihr sowas angehen würdet, danke.

Ciao fkerber

Tubos 22. Jul 2004 20:44

Re: "Login" für eigenes Programm realisieren
 
Windows-Sicherheitsberechtigungen + eine geeignete Verschlüsselung

fkerber 22. Jul 2004 20:50

Re: "Login" für eigenes Programm realisieren
 
Hi!

@Tubos:
Danke, aber damit kann ich gar nix anfangen, sorry
kannst du es etwas näher erläutern, besonders das "Windows-Sicherheitsberechtigungen"

Ciao fkerber

Tubos 22. Jul 2004 21:00

Re: "Login" für eigenes Programm realisieren
 
Damit nicht jeder das Passwort löschen kann, stellst du einfach ein dass alle Windows-Benutzer bis auf den Admin keinen Schreibzugriff auf die Datei haben.
Außerdem verschlüsselst du sie, sodass man auch keine Passwörter lesen kann.

edit:
Punkto Verschlüsselung kann ich dir leider nicht weiterhelfen.

fkerber 22. Jul 2004 21:27

Re: "Login" für eigenes Programm realisieren
 
Hi!

Dann kann der Nutzer doch sein Passwort nicht mehr ändern oder?
Er hat ja keine Schreibrechte auf die Datei, oder?

Aber trotzdem danke.


Ciao fkerber

Tubos 22. Jul 2004 21:37

Re: "Login" für eigenes Programm realisieren
 
Der User soll sein Passwort ändern können?
Da sehe ich jetzt auf die Schnelle 2 Möglichkeiten:

- Jeder der mit dem Programm arbeitet hat einen eigenen Benutzer unter Windows. Dann könntest du aber gleich dein Programm mit der Windows-Benutzerverwaltung koppeln. Und der Login wäre dann unnötig und man spart sich Arbeit.

- Du schreibst ein zweites Programm, das als Dienst mit Adminrechten läuft. Wenn man vom Hauptprogramm aus das Passwort ändern will, teilst du das auf irgendeinen Weise dem Dienst mit und dieser hat ja die Rechte, um die Datei zu ändern.

Möglichkeit 1 ist die einfachste, aber natürlich braucht jeder einen eigenen Benutzer.
Möglichkeit 2 ist etwas kompliziert, aber ziemlich sicher (wenn der Dienst ordentlich geproggt ist ;) )

fkerber 22. Jul 2004 21:44

Re: "Login" für eigenes Programm realisieren
 
Hi!

Möglichkeit 1 scheidet leider aus und Möglichkeit 2 ist doch äußerst kompliziert.
Geht das wirklich nicht einfacher?

Wie macht das zum Beispiel Outlook (Express) bei seinen Identitäten?

Ciao fkerber

Tubos 22. Jul 2004 21:49

Re: "Login" für eigenes Programm realisieren
 
Da sollte sich mal jemand zu Wort melden der sich mit Verschlüsselung und derartigen Systemen auskennt oder sowas schonmal gemacht hat.

p0w3r5tr34m3r 22. Jul 2004 21:50

Re: "Login" für eigenes Programm realisieren
 
wenn es nicht all zu sicher sein soll, dann kannste auch ne simple XOR Verschlüsselung nehmen...

und bis du eine andere möglichkeit zum speichern gefunden hast, könntest du ja die Registry nehmen (was aber nur vorrüber gehend sein sollte!!!!!)


MfG Powerstreamer

fkerber 22. Jul 2004 21:58

Re: "Login" für eigenes Programm realisieren
 
Hi!

Die Verschlüsselung ist eher nebensächlich.
Primär ist für mich wichtig, wo ich das speichern kann.
Regestry bringt auch nix, das findet man ja raus, geht hin, löscht das Passwort und dann ist der Vergleich bei Eingabe keines Passwortes erfüllt. Das kann natürlich nicht sein.

Ciao fkerber

S2B 22. Jul 2004 22:11

Re: "Login" für eigenes Programm realisieren
 
Also irgendwie sieht es für mich so aus, als ob du nur noch die Datenbanklösung zur Wahl hättest! Registry fällt raus, jegliche Dateien sowieso und was bleibt dann noch anderes? :?

p0w3r5tr34m3r 22. Jul 2004 22:12

Re: "Login" für eigenes Programm realisieren
 
dann musste das halt so speichern das man es nicht (ohne stundenlang suchen zu müssen) finden kann....

fkerber 22. Jul 2004 22:15

Re: "Login" für eigenes Programm realisieren
 
Hi!

@p0w3r5tr34m3r:
Wenn du mir verrätst, wo das sein soll?

@S2B:
Solangsam befürchte ich es :pale:
Aber das wird ne tolle DB mit einer Tabelle mit 2 Spalten und im Extremfall eine Zeile :gruebel:
Was soll ich da am besten für eine DB nehmen?

Ciao fkerber

HaCkAttaCk2001 22. Jul 2004 23:21

Re: "Login" für eigenes Programm realisieren
 
Hi.

Also ich hatte bei einigen Projekten von mir die Lösung genommen, den, der versucht, das PW zu entfernen, richtig zu ärgern.

Ich hab das PW einfach verschlüsselt in unzähligen Schlüsseln und Dateien abgespeichert. Sobald eine Datei fehlt oder ein Schlüssel, gibt das Programm eine Sabotagemeldung aus...

Ich hatte vor langer Zeit mal auf www.planet-source-code.com eine Unit gefunden, um in der Exe-Datei binär die Daten in einem speziell angelegten Platzhalter zu speichern, so werden weder Schlüssel angelegt, noch Dateien erzeugt... einziges Problem: ich habe und finde sie auch nicht mehr :gruebel: . Das wäre, sofern du die Unit finden solltest, gepaart mit einem CRC-Check gegen Manipulationen sicherlich eine gute Lösung.

Ach ja: wenn man gründlich genug sucht, kann man doch von allem möglichen die Passwörter einfach löschen... wären da nicht so interessante Dinge wie Checksummen (md5?) oder CRC...


Wenn ich so an manche Programme denke... also eigentlich benutzen die alle die Registry oder Inifiles... hm... ich weiß auch nicht, ist zu spät um jetzt noch über sowas nachzugrübeln ;) .

C ya. :roteyes:

fkerber 22. Jul 2004 23:23

Re: "Login" für eigenes Programm realisieren
 
Hi!

Das mit den unzähligen Schlüsseln ist wohl unsauber, aber das andere hört sich gut an, ich schau mal.
Danke für den Tipp.

Ciao fkerber

Luckie 22. Jul 2004 23:27

Re: "Login" für eigenes Programm realisieren
 
Wie wäre es im HomeDior des anwenders? Da haben alle andere keine Zugriffsrechte.

richard_boderich 22. Jul 2004 23:48

Re: "Login" für eigenes Programm realisieren
 
hallo,

also ich wuerde die daten in einer ganz normalen datei speichern die verschluesselt, irgentwo
auf deiner platte liegt, sinnvoller weise dort,wo alle benutzer schreibrechte haben (um passwort eventuell zu aendern)
ich denke mal das deine daten nicht so brisant sind , und du keine patientendaten oder so etwas schuetzen willst oder etwa doch ?
dann reicht das meiner ansicht nach alle mal. das primärziel für dich sollte es sein die daten unkenntlich zu machen,
so das nicht jeder zivilist den inhalt im klartext sieht und ihn aendern kann. wenn du kommerziel progs wuerde ich aber trotzdem einen
richtigen verschluessellungsalgorythmus nehmen. :)

Sharky 23. Jul 2004 05:50

Re: "Login" für eigenes Programm realisieren
 
Hai fkerber,

wieviele User werden denn mit dem Programm arbeiten?

fkerber 23. Jul 2004 06:36

Re: "Login" für eigenes Programm realisieren
 
Hi!

@Luckie:
Im Prinzip gute Idee, schlägt aber bei Win9x fehl, oder?

@richard_boderich:
Naja wie mans nimmt, also kann ja schon für den ein oder anderen brisantes dabei sein.
Es geht um sowas wie verschiedene Identitäten für ein MailProgramm.

@Sharky:
Schwer zu sagen, wohl nicht allzu viele. Im Regelfall wohl 1-4 Personen pro Computer.
Wie gesagt, geht in Richtung Mail-Programm.

Danke für eure Hilfe.


Ciao fkerber

mgubler 23. Jul 2004 06:59

Re: "Login" für eigenes Programm realisieren
 
ich würde das z.b. im win-dir abgelegt, aber auch verschlüsselt mit dem DEC.
Dann kann jeder schreiben, aber keiner weiss genau, wo die datei liegt.
zumindest nicht im ersten moment.
das ist die einfachste lösung, oder?!?

ansonsten:
dürfte aber nur unter win NT 4, 2000, XP + funktionieren;
du erstellst einen neuen user, einen neuen ordner,
auf dem der neue user alle rechte und der rest (bis auf admin) nix darf.
in diesem Ordner speicherst du dann die datei.
ein wenig kompliziert, sollte aber klappen!

fkerber 23. Jul 2004 07:15

Re: "Login" für eigenes Programm realisieren
 
Hi!

@mgubler:
2. Lösung scheidet leider aus.
Was die 1. angeht, gibt es nicht Programme die sämtliche Aktionen anderer Programme mitkriegen?
Also die feststellen können, dass auf die Datei xyz.abc zugegriffen wurde?

Ciao fkerber

Sharky 23. Jul 2004 07:57

Re: "Login" für eigenes Programm realisieren
 
Hai fkerber,

ich habe mal einen Test mit einer INI-Datei gemacht. Für die MD5-Berechnung habe ich Assabads MD5-Unit von hier genommen.

Dadurch das ich den MD5-Hash über Zufallasstring + Username + Passwort bilde nutzt es dir nicht viel die Ini verändern zu können ;-)

Hier ist das Projekt Demoprojekt (17 kb)

sakura 23. Jul 2004 08:02

Re: "Login" für eigenes Programm realisieren
 
Zitat:

Zitat von mgubler
ich würde das z.b. im win-dir abgelegt, aber auch verschlüsselt mit dem DEC.
Dann kann jeder schreiben, aber keiner weiss genau, wo die datei liegt.

Win-Dir? Da kann garantiert nicht jeder schreiben :roll:

...:cat:...

fkerber 23. Jul 2004 08:10

Re: "Login" für eigenes Programm realisieren
 
Hi!

@Sharky: Danke schonmal.
Kannst du evtl. das Projekt komplett anhängen?
Unit1 ist irgendwie leer?
Die Ini ist zwar dabei aber sowohl erstellen als auch auslesen fehlen?

Wäre super, dann könnte ich es mal testen. Aber bereits jetzt danke für deinen Aufwand.

Ciao fkerber

Sharky 23. Jul 2004 08:14

Re: "Login" für eigenes Programm realisieren
 
Zitat:

Zitat von fkerber
...Unit1 ist irgendwie leer?...

:wall: Man sollte vor dem erstellen der ZIP-Datei das Projekt speichern :wall:
Jetzt sollte es komplett sein.

BTW: Das Passwort für User "Sharky" ist "blubb"

fkerber 23. Jul 2004 08:22

Re: "Login" für eigenes Programm realisieren
 
Hi!

Wow, sieht super aus.
Nur damit ich es verstehe:
Wie verhinderst du, dass jemand hingeht den Key aus dem INI-File löscht und dann ein leeres Passwort angibt?


Ciao fkerber

Sharky 23. Jul 2004 08:25

Re: "Login" für eigenes Programm realisieren
 
Hai fkerber,

auch ein LeerString hat einen eindeutigen MD5-Hash. Jetzt könnte natürlich der Anwender denken. HA, berechne ich mir doch aus meinem Usernamen und einem Passwort einen MD5-Hash. ABER.... er kennt ja nicht den Zufallsstring der im Quellcode steht. Also kommt er so nicht weiter.

fkerber 23. Jul 2004 08:28

Re: "Login" für eigenes Programm realisieren
 
Hi!

Achso, dann ist das klar.
Ich danke dir vielmals.
Du hast mich ein gutes Stück weitergebracht.

Ciao fkerber

Sharky 23. Jul 2004 08:30

Re: "Login" für eigenes Programm realisieren
 
Bütte,

zum "verfeinern" würde ich auch noch den Benutzernamen nicht im Klartext als Sektion angeben sondern diesen auch mit dem Zusfallsstring in einen MD5-Hash ändern. Dann weis eh keiner mehr wo seine Daten stehen ;-)

fiasko 23. Jul 2004 08:35

Re: "Login" für eigenes Programm realisieren
 
:hi: mal so ne Idee: wieso mußt du extra Benutzer-Name & Paßwort extra speichern? Die vertraulichen Daten gehören doch immer nur einem Nutzer?! Dann verschlüssel die doch einfach mit dem Nutzer seinem Paßwort!


Wenn man Paßwörter blos zum überprüfen des Logins nimmt kann man die einfach Hashen und auf Platte speichern - da man ja in die Paßwort-Abfrage keine Hashes eingeben kann ist das relativ unkritisch. Alles was du normal auf Platte speicherst kann grundsätzlich gelesen werden... brauchst ja blos die Platte zu "verlieren".

fkerber 23. Jul 2004 08:39

Re: "Login" für eigenes Programm realisieren
 
Hi!

@Sharky:
Das ist eine gute Idee.

@fiasko:
:gruebel:
Ich kann dir leider nicht folgen, kannst du versuchen mir anders zu erklären, was du meinst?
Danke.


Ciao fkebrer

Jelly 23. Jul 2004 09:08

Re: "Login" für eigenes Programm realisieren
 
Hallo,

alle die Ansätze die ich bis jetzt gelesen sind meiner Meinung nach unsicher. Das darf man aber nicht falsch verstehen. wenn es um unkritische Daten geht, macht sich wohl keiner die Mühe die Passwörter zu knacken, oder dein Verschlüsselungsalg. herauszufinden. Aber egal wie man ran geht, die Passwörter auf dem gleichen Rechner zu speichern (oder über Netzpfad, das ist in diesem Fall irrelevant), als auf dem gearbeitet wird ist immer eine kritische Sache, da ja der ganze Verschlüsselungsalg. auf dem Clientrechner abläuft. Die Anwendung kann man theoretisch hacken und nachvollziehen, was passiert. Ist zwar bei Einwegverschlüsselung wie MD5 noch relativ unkritisch, solls aber in beide Richtungen funzen, so kann relativ einfach sämtliche Passwörter der Benutzer herausgefunden werden.

Als einzige wirklich brauchbare Lösung, geht nichts um eine Zwischenanwendung oder Dienst rum, der die ganze Passwortkennung identifiziert. Somit läuft das Ganze auf einem 2. Rechner ab, und diesen kann man beliebig schützen, damit die Netznutzer da nicht ran können. Das ist zwar aufwendiger, aber die Mühe wert, wenn es um sensible Daten geht.

Gruß,
Tom

fkerber 23. Jul 2004 09:32

Re: "Login" für eigenes Programm realisieren
 
Hi!

Hmm, ich kann deine Bedenken im Moment nicht nachvollziehen Jelly.
Es ist auf jedenfall eine Standalone-Anwendung, also ohne 2. Rechner etc.

Wie wolltest du denn bei dem von Sharky geposteten Vorschlag das Passwort knacken?

Ciao fkerber

Sharky 23. Jul 2004 09:35

Re: "Login" für eigenes Programm realisieren
 
Zitat:

Zitat von Jelly
.. Die Anwendung kann man theoretisch hacken und nachvollziehen, was passiert...

Hai fkerber,
ich denke das meinte Jelly mit kritisch. Und damit hat er natrürlich recht. Wenn sich jemand die Mühe mache das Programm mit dem Debuger zu betrachten kommt er schnell hinter die Logik. Darum ist es immer richtig und wichtig auf solche Möglichkeiten hinzuweisen.
Aber ich denke mal das es in diesem Fall nicht relevant ist.

fkerber 23. Jul 2004 09:42

Re: "Login" für eigenes Programm realisieren
 
Hi!

ok, dann frage ich mal so:
Wie groß ist denn der Aufwand in etwa, also wenn man jetzt nicht grad sowieso der Hacker vom Dienst ist?
Wäre es sicher genug um Sachen wie Emails der SMS zu speichern und so zu sichern?

Ciao fkerber

Jelly 23. Jul 2004 09:47

Re: "Login" für eigenes Programm realisieren
 
Zitat:

Zitat von Sharky
Aber ich denke mal das es in diesem Fall nicht relevant ist.

Das denk ich auch, ich wollt aber nur der Vollständigkeit her drauf hinweisen.

Tom

Tubos 23. Jul 2004 14:00

Re: "Login" für eigenes Programm realisieren
 
Zitat:

du erstellst einen neuen user, einen neuen ordner,
auf dem der neue user alle rechte und der rest (bis auf admin) nix darf.
Wenn du mit "alle Rechte" Vollzugriff meinst, dann ist das keine gute Idee.
Ein Benutzer, der Vollzugriff auf einen Ordner hat, kann die Sicherheitsberechtigungen dieses Ordners ändern - auch wenn er kein Admin ist.

Kevin 23. Jul 2004 14:23

Re: "Login" für eigenes Programm realisieren
 
Bin grad zufällig bei Sourceforge.net über folgendes gestolpert:

UserControl: Delphi component package

Zitat:

Delphi (and Kylix) component package to user and profiles management and access control. Supports ADO, DBX, IBX, BDE, IBO, FIBPlus, ZeosDBO, DBISAM and ASTA3. Access control auto-extract TMenu and TActionList items. Supports TActionManager.
Vielleicht hilft Dir das ja weiter...

fkerber 23. Jul 2004 14:45

Re: "Login" für eigenes Programm realisieren
 
HI!

Ist zwar datenbankbasiert, aber ich werde es mir mal anschauen.
Danke.


Ciao fkerber

Kevin 23. Jul 2004 14:59

Re: "Login" für eigenes Programm realisieren
 
Hat nur grad so schön zum Thema gepaßt. Da dachte ich, Du könntet Dir diese Vorgehenweise auch mal anschauen :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:29 Uhr.
Seite 1 von 2  1 2      

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