Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen (https://www.delphipraxis.net/158595-passwort-verschluesselt-datanbank-schrieben-und-mit-c-auslesen.html)

dust258 23. Feb 2011 13:24

Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Hallo Leute,

wie die Überschrift schon sagt möchte ich ein Passwort verschlüsselt in meiner Datenbank speichert, um es später wieder auslesen.
Das Speichern geschieht innerhalb einer Delphi-Applikation. Das Auslesen des Passworts geschieht in einer C#-Anwendung.

Fällt euch ein Verfahren ein mit dem ich das bewerkstelligen könnte, welches sowohl unter Delphi als auch unter C# umsetzbar ist?

Mir würde da spontan RSA einfallen (WOW, doch was in der Berufsschule gelernt), aber das scheint mir für ein einfaches Passwort leicht übertrieben.
Was meint Ihr?

Bernhard Geyer 23. Feb 2011 13:32

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Generell gehen alle Verfahren. Der Fallstrick ist jedoch nur das bei Delphi (bis D2009) man mit String einen 1-Byte String hat und bei .NET String ein UTF-16-Codierter String vorliegt.

Brauchst du wirklich das Passwort in .NET oder reicht der Hash? Bedenke auch das dein .NET-Programm obfuscated damit ein Angreifer es nicht zu einfach hat.

jfheins 23. Feb 2011 13:33

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
MD5 oder besser SHA1 wären Kandidaten. Du könntest natürlich auch RO13, oder base64 anwenden, wobei das keine Verschlüsselungsalgos sind. (Sie täuschen sogar Sicherheit vor, wo keine ist.)
SHA1 sollte relativ sicher sein und wurde bestimmt schon in beiden Sprachen implementiert.

dust258 23. Feb 2011 13:38

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Danke für die Antwort. Ja, über das Problem mit den Unicode-Strings bin ich auch gestoßen.

Und ja, ich benötige wirklich das Passwort. Es handelt sich dabei um Kontodaten die vom Delphi-Programm aus eingegeben und vom C# Programm zur Kommunikation verwendet werden.

Namenloser 23. Feb 2011 14:16

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Zitat:

Zitat von jfheins (Beitrag 1083777)
Du könntest natürlich auch RO13, oder base64 anwenden, wobei das keine Verschlüsselungsalgos sind. (Sie täuschen sogar Sicherheit vor, wo keine ist.)

Rot13 ist natürich ein Verschlüsselungsalgorithmus, und je nachdem wie weit man den Begriff fasst, könnte man auch Base64 als einen solchen bezeichnen, nur sind halt beide extrem schwach. Was du meintest sind wohl eher Hashs, denn die von dir aufgezählten Algorithmen MD5 und SHA-1 gehören zu dieser Gruppe, und keine Verschlüsselungsalgorithmen.

cookie22 23. Feb 2011 14:25

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Rot13 ist absolut ungeeignet um Daten zu verschlüsseln, dann kann man sie gleich im Klartext ablegen. Base64 ein Kodierungs-Algo also auch nicht geeignet.

Die Frage ist wie sicher muss das ganze sein und wozu speicherst du ein Passwort?

dust258 23. Feb 2011 14:39

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Es handelt sich um Usernamen und Passwörter von E-Mail Postfächern. Es sollte halt nicht jeder, der das Passwort für die Datenbank kennt alle Passwörter der User auslesen können. Daher steht sowas wie Base64 nicht wirklich zur Diskussion.

Satty67 23. Feb 2011 14:49

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Auf der Seite von C# bist Du sehr flexibel, das Cryptography Assembly bietet fast alles was das Herz begehrt und decryptete Strings lassen sich auch in beliebige Formate (ASCII, UTF8 etc.) encodieren.

Ich würde einfach mal eine Testanwendung in Delphi schreiben, die einen String encrypted und sehen, ob der String dann mit C# wieder entschlüsselt werden kann.

Sicherheit hast Du aber nur, wenn Dein Programm für die Enschlüsselung das Passwort jedesmal abfragt. Wenn Du es fest im Programm hinterlegst, ist es auch fast egal mit was Du die Daten verschlüsselst.

Blup 24. Feb 2011 10:12

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Zitat:

Zitat von dust258 (Beitrag 1083800)
Es handelt sich um Usernamen und Passwörter von E-Mail Postfächern. Es sollte halt nicht jeder, der das Passwort für die Datenbank kennt alle Passwörter der User auslesen können.

Fall 1:
Die Passwörter werden tatsächlich verwendet, z.B. um später E-Mails aus anderen Quellen abzurufen, ohne das der Benutzers dieses erneut eingibt.
> Das Passwort muss verschlüsselt abgelegt werden.

Fall 2:
Die Passwörter dienen dazu, die Identität des User bei der Anmeldung an deinem System sicher zu stellen.
> Es genügt einen Hash vom Passwort zu bilden und in der DB abzulegen.
Bei Anmeldung des Benutzers wird erneut der Hash des eingegebenen Passwort gebildet und verglichen.

himitsu 24. Feb 2011 10:24

AW: Passwort verschlüsselt in Datanbank schrieben und mit C# auslesen
 
Das Problem ist allerdings, daß du passend zum verschlüsselten Passwort direkt im Programm die Entschlüsseltungsmethode mitlieferst.
Also egal wie sicher die Verschlüsselung ist, da die Entschlüsselung immer mitgeliefert ist, kann man alles knacken, abgesehn davon, daß man das unverschlüsselte Passwort auch direkt aus dem Arbeitsspeicher rauskopieren könnte, wärend dein Programm dieses entschlüsselt hat, zur Anmeldung am Postfach.
(oftmals werden solche Passwörter sogar unverschlüsselt zum Mailserver übertragen, so daß man es auch noch im Netzwerktrafic leicht mitloggen kann und dann eh jeder vorherige Verschlüsslung umsonst war)

Da kann man also auch ein einfaches XOR oder Dergleichen nehmen.



Komplett unverschlüsselt würde ich diese Daten aber nicht speichern. (das wäre ja zu einfach :stupid: )


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.
Seite 1 von 2  1 2      

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