Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Einfacher Algo? [Bibliotheksverwalltung] (https://www.delphipraxis.net/123320-einfacher-algo-%5Bbibliotheksverwalltung%5D.html)

Teekeks 30. Okt 2008 18:43


Einfacher Algo? [Bibliotheksverwalltung]
 
Hi!
Ich melde mich heute noch einmal wegen meiner Bibliotheksverwaltung da ich wiedereinmahl ein Problem habe.

Denn: ich brauche einen Algorytmus für die verschlüsselung von Passwörtern für mein Prog. Dieses ist auch für schüler offen zur verfügung und ich möchte nicht das diese die Arbeit von 6 Tagen bei 6 Personen kaputt machen indem sie ganzeinfach die Datenbank löschen.
Mein Problem ist das ich von Algorythmen keinerlei ahnung habe. Ntürlich gibt es hier genügend Beiträge davür, aber diese verstehe ich alle nicht (ich hab mich schon Stunden durch die SuFu gewältzt).

Könnte mir jemand einen Algo empfehlen und erklären wie ich diesen in mein Prog einschleuse und wie dieser funkt?

das wäre Toll.

gruß Teekeks

p.s.: es gibt bei uns in der Schule midestens einen der sich gerne in Progs und PC´s Hackt (ein Klassenkammerad von mir)
[edit] ich habe en paar schreibfehler behoben (weis auch nicht wo meine Reshtschreibung gerade hin ist...) [/edit]

DGL-luke 30. Okt 2008 18:52

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
öhm.

Gib der Datenbank ein Passwort, lass den Benutzer das Datenbankpasswort eingeben?

Ansonsten? Not a bug report Wir brauchen mehr Infos.

Teekeks 30. Okt 2008 19:03

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
schonmahl schön und gut, aber. das Prog. Läuft den ganzen tag auf Rechnern die für alle zugänglich sind und man kann (wenn man das PW des Programm-Admins hat) belibig Datensätze ändern und Löschen. Und jetzt brauche ich irgentetwas um dieses PW zu verschlüsseln.
Als anmerkung: Der Code des Programmes soll für alle Schüler offen sein)

DGL-luke 30. Okt 2008 19:15

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
Hm, interessant. Du musst also ein Passwort im Programm verstecken, und zwar so gut, dass man es nicht ermitteln kann, selbst wenn man weiß, wie es verschlüsselt ist und wo es liegt.

Gut, Truecrypt macht das so: Der Header eines Truecrypt-Volumes ist mit dem Passwort verschlüsselt (Der Header enthält dann den Key zum Rest des Volumes). Du brauchst also eine asynchrone Verschlüsselung. SHA wäre da glaube ich ein Beispiel.

Du produzierst also einen verschlüsselten Block, in dem das DB-Passwort enthalten ist (oder verschlüsselt die DB mit diesem Passwort), und versuchst diesen Block mit dem Passwort zu entschlüsseln. Wenn es klappt, ist der Benutzer authentifiziert, wenn nicht, dann nicht.

In diesen Block muss unbedingt Information rein, die du zum Ausführen des Programmes brauchst (Beispiel DB-Passwort).

Ansonsten lässt sich das ganze einfach austauschen.

...und sag mir nicht, dass das eine Access-Datenbank ist, die auf einem Netzwerkshare liegt.

Was dümmeres fällt mir leider im Moment nicht ein :stupid:

Teekeks 30. Okt 2008 20:11

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
ok dann sag ich dir das es eine MYSQL-Datenbank ist. :P
aber: irgentwie versteh ich niht so richtig was du meinst :shock:
Zitat:

Hm, interessant. Du musst also ein Passwort im Programm verstecken, und zwar so gut, dass man es nicht ermitteln kann, selbst wenn man weiß, wie es verschlüsselt ist und wo es liegt.
Richtig!

Zitat:

Gut, Truecrypt macht das so: Der Header eines Truecrypt-Volumes ist mit dem Passwort verschlüsselt (Der Header enthält dann den Key zum Rest des Volumes). Du brauchst also eine asynchrone Verschlüsselung. SHA wäre da glaube ich ein Beispiel.
versteh ich irgentwie nicht...
Zitat:

Du produzierst also einen verschlüsselten Block, in dem das DB-Passwort enthalten ist (oder verschlüsselt die DB mit diesem Passwort), und versuchst diesen Block mit dem Passwort zu entschlüsseln. Wenn es klappt, ist der Benutzer authentifiziert, wenn nicht, dann nicht.
Ich glaub das versteh ich ^^
Zitat:

In diesen Block muss unbedingt Information rein, die du zum Ausführen des Programmes brauchst (Beispiel DB-Passwort).
Wie jetzt?
Zitat:

Ansonsten lässt sich das ganze einfach austauschen.
das wolln wa ja nicht ne? :-D :-D

Zitat:

Was dümmeres fällt mir leider im Moment nicht ein :stupid:
brauch ja nicht, wär nur schön wenn dus noch für GANZ DUMME erklären könntest :P

gruß Teekeks

DGL-luke 30. Okt 2008 20:34

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
MySQL... dann ist es doch viel einfacher. Die Rechteverwaltung von MySQL ist gut genug für sowas. 2 Benutzer anlegen, einen mit Schreibrechten auf die entsprechenden Tabellen, einen ohne, und ganz sicher keinen mit DROP rechten.

Die Passwörter speicherst du nirgends, die lässt du den Benutzer eingeben - das Passwort zum Lesen alleine kannst du ja an den Monitor kleben.

K.I.S.S. ;-)

Alles andere wird niemals 100%ig sein geschweige denn einfach zu implementieren.

Sir Rufo 30. Okt 2008 20:46

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
Jepp, so geht das ...

ansonsten speichert man bei Passwörter am besten nur einen Hash-Wert ab.

Wikipedia: Hashfunktion
Wikipedia: MD5
Hier im Forum suchenMD5

Dadurch kann der Quelltext bekannt sein, der Hash-Wert und trotzdem kann man an das Passwort nur per Brute-Force Wikipedia: Brute-Force gelangen.

cu

Oliver

Teekeks 31. Okt 2008 12:00

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
Hi!
Erstmahl danke!
Ich hab mich jetzt noch mahl n bissl besser mit MYSQL beschäftigt und bin auf das selbe wie DGL-luke gekommen.
Aber ich müsste was anderes abschirmen, mämlich das keiner einfach so die ganze Bibo löscht indem er mit einem Konqueror einfach die Datenbank Datei löscht, aber das krig ich schon irgentwie hin ^^

Also: Danke für eure Hilfe.

gruß Teekeks

Klaus01 31. Okt 2008 12:25

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
Hallo,

die DB läuft die auf einem Linuxserver?
Die DB wird über ip angesprochen?

Die DB läuft in einem bestimmten UserContext, mit bestimmten Rechten.
Die User die den Konquerer bedienen sollten auch in einem bestimmten UserContext laufen.
Dieser sollte aber nicht dem entsprechen unter dem die DB läuft.
Und root-Rechte werden die User hoffentlich nicht haben.

Grüße
Klaus

DGL-luke 1. Nov 2008 15:23

Re: Einfacher Algo? [Bibliotheksverwalltung]
 
die DB sollte als user mysql, www, oder nobody laufen. Das sind so die üblichen Konfigurationen. Und natürlich sollte nur der User schreibrechte auf die Datenbankdatei haben...


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr.

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