Laden...

Zugangsdaten SICHER hinterlegen

Erstellt von P.K. vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.805 Views
P
P.K. Themenstarter:in
30 Beiträge seit 2010
vor 13 Jahren
Zugangsdaten SICHER hinterlegen

verwendetes Datenbanksystem: MySql

Eine kleine Frage.
Wie kann ich die Zugangsdaten zu einem MySql Server sicher in einem
CSharp Projekt hinterlegen. Selbst ohne das ein Decompiler, an die
Informationen kommt?

223 Beiträge seit 2009
vor 13 Jahren

Du könntest z.B: einen Hash der Zugangsdaten in der Registry speichern und beim Programmstart
dort auslesen!

Grüße Pico

P
P.K. Themenstarter:in
30 Beiträge seit 2010
vor 13 Jahren

Das könnte ich nicht nur mit der Registry machen.
Allerdings sind doch Hashs ziemlich Sicherheits anfällig.

1.346 Beiträge seit 2008
vor 13 Jahren

Wie du Hashes "entschlüsselst" will ich sehen 😛

Du kannst in den Settings einen ConnectionString hinterlegen. Das kann man da extra auswählen. Soweit ich weiß wird dieser Verschlüsselt gespeichert

223 Beiträge seit 2009
vor 13 Jahren

MD5-Hash kann man meines Wissens nicht wieder entschlüsseln!

Das könnte ich nicht nur mit der Registry machen.

Klar den kannst du in ne xml/Text/Settings oder sonstwo ablegen, je nachdem wie es gewünscht ist!

Beispiel für nen MD5 Hash aus einem string:


public static string GetMD5Hash(string TextToHash)
{
//Prüfen ob Daten übergeben wurden.
if((TextToHash == null) || (TextToHash.Length == 0))
{
return string.Empty;
}
//MD5 Hash aus dem String berechnen. Dazu muss der string in ein Byte[]
//zerlegt werden. Danach muss das Resultat wieder zurück in ein string.
MD5 md5 = new MD5CryptoServiceProvider();
byte[] textToHash = Encoding.Default.GetBytes (TextToHash);
byte[] result = md5.ComputeHash(textToHash);
return System.BitConverter.ToString(result);
}


Grüße Pico

1.044 Beiträge seit 2008
vor 13 Jahren
P
P.K. Themenstarter:in
30 Beiträge seit 2010
vor 13 Jahren

MD5 schon länger.
Ich bin vor 2 Jahren mal auf eine Seite gestoßen,
die mir eine ganze Reihe von MD5 Hashs entschlüsselt hat.
...
Hab die Seite gefunden: http://www.md5decrypter.com/

Du kannst in den Settings einen ConnectionString hinterlegen.

Habe es gerade ausprobiert.
Zugriffsmodifizer..: Internal
Bereich: Benutzer und Anwendung
Alles kein Erfolg. Den String kann ich mit einem Dissambler auslesen.

1.552 Beiträge seit 2010
vor 13 Jahren

@Pico1184,

ich denke nicht dass es eine gute Idee ist die Registry für solche Sachen zu missbrauchen. Im allgemeinen wird viel zu viel, lass es mich mal so nennen, "Müll" dort abgelegt und vergessen zu löschen. Verwende die eigens dafür konzipierte %APPDATA%

Im Projekt würde ich die Zugangsdaten nicht direkt ablegen. Ich lass die Zugangsdaten normalerweise immer vom User selbst eingeben. Das einzige das ich in die Properties.Settings speichere ist der Servername, Datenbankenname und Benutzername und dies verschlüsselt.
Siehe unter anderem:
Kennwortsicherheit - Hashing von Kennwörtern
Forumssuche nach string verschlüsseln
[FAQ] DB-Password/Kennwort/Connection-String sicher speichern

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo P.K.,

ein Hash ist eine Zeichenkette, die nicht wieder entschlüsselt werden kann. Auf der von dir genannten Seite findest du einfach eine Datenbank, mehr nicht. Es gibt auch anderere Verschlüsselungstechniken.

Siehe auch [FAQ] .net Assembly vor Disassembling schützen (Obfuscator). Stichwort: Obfuscator, Packer.

zero_x

1.820 Beiträge seit 2005
vor 13 Jahren

Hallo!

@P.K.

Selbst ohne das ein Decompiler, an die
Informationen kommt?

Garnicht. Wenn einer den Code decompiliert, sieht er irgendwann auch deine Verschlüsselung. Je nach Grad der Verschlüsselung dauert es dann evtl. etwas länger, aber es ist möglich.

Die Frage ist wie üblich bei solchen Anliegen nicht, ob so etwas verhindert werden kann, sondern NUR, wieviel Aufwand man betreiben möchte, um es einem gegenpart so schwer wie möglich zu machen, an die Daten zu kommen.
Der normale User wird sicherlich einen Decompiler nicht kennen bzw. benutzen können und selbst dann muss man noch die Sprache beherrschen. Ein absoluter Freak wird sich durch sowas aber nicht wirklich abschrecken lassen.

Nobody is perfect. I'm sad, i'm not nobody 🙁

X
1.177 Beiträge seit 2006
vor 13 Jahren

huhu,

Bitte werft doch nicht "Hash" und "Verschlüsselung" durcheinander.

Ich kann keinen Connectionstring (oder Benutzername und Kennwort) hashen und dann erwarten, da wieder nen Klartext rauszubekommen. Sonst hätte man ja bei MD5 schon einen super duper krass Komprimieralgorithmus (mal kurz ein 5 GB Filmchen auf 128 Bit komprimiert...)

Was benötigt wird, ist eine Verschlüsselung. Nachdem man diese Daten entschlüsseln kann, kann das aber auch ein Angreifer mit genug Energie.

Beim SQL-Server als DB-Server gibts übrigens einen wunderbaren Trick: Windows-Anmeldung. Da brauchts dann keinen Benutzernamen/Kennwort, da die integrierte Benutzerverwaltung verwendet wird.

Vielleicht kann ja MySQL auch was in der Richtung, abgleich per LDAP fällt mir da ein (z.B. Active Directory).

😃

Xynratron

PS: und wehe ich höre nochmal "nimm MD5" in Zusammenhang mit Kennwörtern...

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

1.552 Beiträge seit 2010
vor 13 Jahren

PS: und wehe ich höre nochmal "nimm MD5" in Zusammenhang mit Kennwörtern...

In meinen "Internet Technologies" Project speichere ich die Passwörter eines jeden Benutzer in MD5 auf dem Server. scnr
ok, dies hat aber auch den Zweck der Überprüfung ob der Login korrekt ist und nicht zur Speicherung.

Gruß
Michael

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp

X
1.177 Beiträge seit 2006
vor 13 Jahren

PS: und wehe ich höre nochmal "nimm MD5" in Zusammenhang mit Kennwörtern...
In meinen "Internet Technologies" Project speichere ich die Passwörter eines jeden Benutzer in MD5 auf dem Server. scnr
ok, dies hat aber auch den Zweck der Überprüfung ob der Login korrekt ist und nicht zur Speicherung.

und dann verweist du auch noch auf Kennwortsicherheit - Hashing von Kennwörtern - oO - schäm Dich! ^^

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

1.552 Beiträge seit 2010
vor 13 Jahren

Soll ja auch nur ein Uni-Projekt sein, dadurch wird von mir die wirkliche Sicherheit auch nicht so primär beachtet^^

Mein Blog
Meine WPF-Druckbibliothek: auf Wordpress, myCSharp