Fragensteller
hartcodiertes Passwort

Frage
-
Guten Abend,
ich soll eine normale Businessanwendung bauen (Client <- >DB). Eine Vorgabe ist es, dass der DB-Server, der DB-Benutzer und dass Passwort hartcodiert im Programm stehen sollen. Hab mir schon den Mund fusselig geredet, dass das stark ungünstig ist, interessiert aber keinen.
Hat jemand eine Idee, wie ich das Passwort vlt. doch ansatzweise irgendwie halbwegs sicher in einer .NET-Assembly einbetten und abrufen kann? Vlt in Ressourcendateien oder irgendwas mit SecureString?
VB.NET & C#.NET
Alle Antworten
-
Hallo Nico,
wie du vermutlich selbst weißt bringt keine Verschlüsslung auch nur im Ansatz Sicherheit. Den Anmeldedaten kann man praktisch gleich Tschüss sagen.
Man kann es maximal schwerer machen das PW zu lesen. Hierfür würde ich versuchen es zu verschlüsseln und weit abseits des verschlüsselten PWs den Entschlüsslungs-Algorithmus haben. Zum Schluss könnte man noch einen Obfuskator verwenden um den Code an sich unleserlich zu machen.
Aber wie gesagt, man macht es nur schwerer, nicht unmöglich heran zu kommen.
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets -
Hallo Nico,
wenn auch die app.config geht, schau dir mal diesen Artikel an:
http://www.aspsnippets.com/Articles/Encrypt-and-Decrypt-Connection-String-in-AppConfig-file.aspx
Aber auch hier gilt das von Tom gesagte: Wirklich sicher ist anders.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Nico.
Eine Möglichkeit wäre es, wenn der String schon "hardcodiert" sein muss und im Programmcode selbst enthalten ist, die Assembly unlesbar zu machen. Wenn du Visual Studio verwendest, müsstest du im Fenster unter "Tools" (bzw. "Werkzeuge") ein Programm names "Dotfuscator" vorfinden. Dieses kannst dfu um Obfuscieren deiner Anwendung verwenden:
[1] Dotfuscator Community Edition 4.0
[3] Schützen Sie .NET-Code vor neugierigen Augen
Das könnte dir möglicherweise weiterhelfen.
PS: Der von dir Vorgeschlagene SecureString bringt nicht viel, da er nur verhindert, dass ein zur Laufzeit erhaltener String (z.B. aus einem Passwortfeld der UI) nicht von anderen Programmen aus dem Speicher ausgelesen wird. Das Auslesen aus der Assembly kann er leider nicht unterbinden.
© 2015 Thomas Roskop
Germany // Deutschland