Verschlüsselung-Abschnitte und-oder-Einstellungen in einer App.config-Datei, die umverteilt werden
Ich bin momentan dabei, eine normale windows-Anwendung, die verteilt werden, um mehrere Benutzer auf meiner Abteilung. Ich müssen einige verbindungen Passwörter in der App.config-Datei, und ich offensichtlich nicht wollen, dass end-Anwender einfach starten Sie den Editor, und Blick auf die Passwörter.
Mehrere Beiträge zeigen auf, wie der zum verschlüsseln/entschlüsseln Abschnitten, aber es scheint, Sie haben zu teilen/versenden einige Tasten mit den einsetzbaren Lösung.
Gibt es eine einfachere Möglichkeit, nur cipher einige der Einstellungen, so dass Sie für den Benutzer nicht lesbar sind, aber benötigen keine zusätzlichen Schritte oder Dateien, wenn die Umverteilung auf dem Programm? Großes plus wäre, dass der Zugriff auf die Konfigurations-Einstellungen ist immer noch transparent innerhalb der .NET-code. Ich könnte immer nur erstellen Sie eine benutzerdefinierte Methode, um Salz - /Verschlüsselung der Zeichenfolge und in meinem benutzerdefinierten code zu entschlüsseln, aber ich Frage mich, ob es da etwas einfacher.
Antworten oder links zu Artikeln über wie Sie dies tun, werden sehr geschätzt. Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie versuchen, verschlüsseln Sie Ihre connection-string in der App.Config/Web.Config, können Sie dies mit Hilfe der Configuration-Klasse:
Gibt es zwei Methoden: RsaProtectedConfigurationProvider und DPAPIProtectedConfigurationProvider
Sehen --> http://www.codeproject.com/KB/cs/Configuration_File.aspx und http://msdn.microsoft.com/en-us/library/89211k9b(VS.80).aspx.
Kurz, Kryptografie ist nicht eine Magie, Zauberstab, magisch fix ein unsicheres Programm.
Ein Angreifer versuchen wird, um Passwörter zu erhalten aus dem Speicher mit einem Debugger, während die Anwendung ausgeführt wird. Die Passwörter bestehen auch in der Binär-und diese können leicht gewonnen werden. Der Einsatz von Verschlüsselung kann umgangen werden, weil das Passwort muss im Klartext auf die Zeit der Nutzung. Jeder Zeit Speicher wird verwendet, es kann auch beobachtet werden, mit einem debugger.
Die Antwort liegt in der anti-debugging: http://www.codeproject.com/KB/security/Intro_To_Win_Anti_Debug.aspx
Erweiterte windows-Anti-Debugging:
http://www.veracode.com/blog/2008/12/anti-debugging-series-part-i/
http://www.veracode.com/blog/2008/12/anti-debugging-series-part-ii/
http://www.veracode.com/blog/2009/01/anti-debugging-series-part-iii/
http://www.veracode.com/blog/2009/02/anti-debugging-series-part-iv/
Entweder Weg, die Verschlüsselung und Entschlüsselung der Konfigurationsdatei der Anwendung ist sinnlos, wie die .EXE geprüft werden können Reflektor!
Sicher kann man das verschleiern der code ist, aber das macht das Debuggen ein Alptraum, in einer Produktionsumgebung, wo eine seltsame unbekannte/unentdeckte Fehler eingeschlichen, als würden Sie nicht in der Lage zu sagen, was/wo/warum/wie Sie zu überwachen ist für einen seltsamen Fehler, der nur in der Version, wie die stacktrace-und Fehlermeldungen werden würde, verschleiert auch...
Das ist etwas, was zu Bedenken und über einen möglichen Fallstrick...möglicherweise der Benutzer nicht technisch versierten, aber sicher, Sie könnte in der Theorie, bitten Sie einen Freund/verwandten/partner zu hacken/brechen Sie ohne Ihr wissen..Diese Antwort soll nicht Sie abschrecken, und hoffe, Sie fühlen sich nicht beleidigt mit meiner Antwort...
Hoffe, das hilft,
Beste Grüße,
Tom.