Laden...

Passwort sicher in EXE-Datei ablegen

Erstellt von words_sourcecode vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.123 Views
Thema geschlossen
W
words_sourcecode Themenstarter:in
41 Beiträge seit 2009
vor 13 Jahren
Passwort sicher in EXE-Datei ablegen

Morgen!

Ich benutze ein Passwort für bestimmte Operationen.
Dieses möchte ich gerne verschlüsselt abspeichern und im Klartext wieder lesen können.
Es handelt sich um keine Passwortabfrage!

Doch brauche ich nicht ein weiteres Passwort um das eigentliche PW zu verschlüsseln?
Und da ich kein Passwort im Klartext in meinen Sourcecode schreiben möchte,
müsste ich ja dann das Passwort zum Verschlüsseln des anderen und dessen anderen ... auch wieder verschlüsseln ?? 😜
Ungefähr so:
Passwort <- encrypt mit pw1 <- encrypt mit pw2 <- encrypt mit ...

Ich drehe mich wie doof im Kreis und finde kein Ende ! 🤔

Danke jeden, der mir aus dem Teufelskreis hilft 😁

Z
403 Beiträge seit 2007
vor 13 Jahren

Hallo words_sourcecode,

Wie bereits öfter hier im Forum diskutiert sind symmetrische Verfahren in .Net immer erstmal unsicher. Du könntest dein Passwort höchstens noch als MD5 bzw. SHA1 Hash im Quellcode ablegen... aber selbst das könnte man einfach austauschen wenn man will ^^

Also such erstmal hier im Forum danach.

1.002 Beiträge seit 2007
vor 13 Jahren

Hallo words_sourcecode,

an dieser Stelle musst du ganz klar zwischen einer symmetrischen / asymmetrischen Verschlüsselung und einer kryptologischen Hashfunktion unterscheiden.

Verschlüsselte Klartexte, also Geheimtexte, können wieder entschlüsselt werden, um aus ihnen den Klartext – unter Kenntnis des Schlüssels – wiederherzustellen. Hashfunktionen, auf der anderen Seite, funktioneren wie ein Falltür, nämlich nur in _eine _Richtung. Das heißt, dass es eben nicht erstrebenswert ist, und bei einer guten Hashfunktion auch nicht "leicht" zu machen, diese wieder umkehren zu können.

Jetzt zum eigentlichen Punkt: Passwörter sollten niemals im Klartext abgelegt werden. Gespeichert werden sollte lediglich ein ++Hash ++von ihnen. Du errechnest mit der gleichen Hashfunktion den Hash des eingegebenen Passwortes und vergleichst diesen mit dem gespeicherten Hash. Stimmen die beiden Werte überein, wurde mit an Sicherheit grenzender Wahrscheinlichkeit das richtige Passwort eingegeben.

Der Vorteil dieses Verfahrens liegt darin, dass keine Rückschlüsse auf das Passwort eines Nutzers gezogen werden können, da aus einem gegebenen Hash nicht ohne riesig hohen Aufwand der Klartext wiederhergestellt werden kann. Die lange Zeit gängige Hashfunktion MD5 solltest du dabei meiden und auf kryptographisch stärkere Funktionen, wie z.B. SHA-512 aus der SHA-Reihe, ausweichen.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo words_sourcecode,

ich drehe mich wie doof im Kreis und finde kein Ende

korrekt. Wie in [FAQ] DB-Password/Kennwort/Connection-String sicher speichern beschrieben, gibt es da kein Ende. Insofern ist dieser Thread leider auch unnötig, weil die Antwort schon in der FAQ steht.

Das ist übrigens keine "Generelle Frage zur Verschlüsselung", sondern eine ganz konkrete. Ich habe den Titel geändert.

Hallo TheGear, hallo m0rius,

Du könntest dein Passwort höchstens noch als MD5 bzw. SHA1 Hash im Quellcode ablegen

dann bekommt man aber den Klartext nicht mehr, was in vielen Fällen natürlich gerade gewünscht ist, aber words_sourcecode hat ja geschrieben, dass es nicht darum geht, eine Passwortabfrage zu realisieren, wo man Hashs verwenden kann, sondern dass er das Passwort im Klartext braucht. Solche Fälle es gibt eben leider, z.B. wenn sich das Programm gegenüber einer Datenbank oder einem Dienst authentifizieren muss und diese/dieser nunmal das Passwort im Klartext erwartet. Insofern ist der Rat, möglichst kein Passwort im Klartext zu speichern, zwar grundsätzlich richtig, aber leider nicht in allen Fällen durchzuhalten.

herbivore

Thema geschlossen