Verschlüsselt Abschnitte und / oder Einstellungen in einer App.config-Datei, die neu verteilt wird

8

Ich erstelle eine reguläre Windows-Anwendung, die an mehrere Benutzer in meiner Abteilung verteilt wird. Ich muss einige Konnektivitätskennwörter in die App.config-Datei aufnehmen, und ich möchte natürlich nicht, dass Endbenutzer Notepad starten und sich die Kennwörter ansehen.

Mehrere Artikel zeigen auf, wie man Konfigurationsabschnitte verschlüsselt / entschlüsselt, aber es scheint, dass Sie einige Schlüssel mit der deployable Lösung teilen / versenden müssen.

Gibt es einen einfacheren Weg, um einige der Einstellungen so zu verschlüsseln, dass sie nicht vom Benutzer lesbar sind, aber bei der Neuverteilung des Programms keine zusätzlichen Schritte oder Dateien erfordern? Ein großer Pluspunkt wäre, dass der Zugriff auf die Konfigurationseinstellungen im .NET-Code noch transparent ist. Ich könnte immer eine benutzerdefinierte Methode erstellen, um die Zeichenfolge zu salt / chiffrieren und in meinem benutzerdefinierten Code entschlüsseln, aber ich frage mich, ob es etwas einfacher ist.

Alle Antworten oder Links zu Artikeln, wie dies zu tun ist, werden sehr geschätzt. Danke

    
GR7 04.02.2010, 22:04
quelle

3 Antworten

8

Wenn Sie versuchen, Ihre Verbindungszeichenfolge in Ihrer App.Config / Web.Config zu verschlüsseln, können Sie dazu die Konfigurationsklasse verwenden:

%Vor%

Es gibt zwei Methoden: RsaProtectedConfigurationProvider und DPAPIProtectedConfigurationProvider

Siehe dies - & gt; Ссылка und Ссылка .

    
Bhaskar 05.02.2010, 16:11
quelle
1

Kurz gesagt, Kryptographie ist kein Zauberstab, der ein unsicheres Programm magisch reparieren kann.

Ein Angreifer versucht, während der Ausführung der Anwendung mithilfe eines Debuggers Kennwörter aus dem Speicher abzurufen. Die Passwörter existieren auch in der Binärdatei und diese können leicht erhalten werden. Die Verwendung einer Verschlüsselung kann umgangen werden, da das Kennwort zum Zeitpunkt der Verwendung im Klartext sein muss. Jeder Zeitspeicher kann auch mit einem Debugger beobachtet werden.

Die Antwort liegt im Anti-Debugging: Ссылка

Erweiterte Windows Anti-Debugging:

Ссылка

Ссылка

Ссылка

Ссылка

    
rook 05.02.2010 16:00
quelle
0

In beiden Fällen ist die Verschlüsselung und Entschlüsselung der Anwendungskonfigurationsdatei sinnlos, da die .EXE von Reflector <überprüft werden kann / a>!

Sicher, Sie können den Code verschleiern, aber das macht das Debuggen zu einem Albtraum in einer Produktionsumgebung, in der sich ein seltsamer unbekannter / unentdeckter Fehler eingeschlichen hat, weil Sie nicht wissen könnten, was / wo / warum / wie auf einen seltsamen Fehler zu überwachen ist das wird nur in Release erscheinen, da die Stacktrace und Fehlermeldungen auch verschleiert werden würden ...

Das ist etwas, was man bedenken sollte und eine potentielle Falle ... der Benutzer ist vielleicht nicht technisch versiert, aber sicher könnten sie theoretisch einen Freund / Verwandten / Partner bitten, es ohne Ihr Wissen zu hacken / zu brechen. Diese Antwort soll Sie nicht abschrecken, und ich hoffe, Sie fühlen sich durch meine Antwort nicht beleidigt ...

Hoffe, das hilft, Freundliche Grüße, Tom.

    
t0mm13b 04.02.2010 22:19
quelle