2009-04-11 3 views
3

Vorweg:Was ist der einfachste Weg, um eine Datei in C# zu verschlüsseln?

ich auf SO in der Tat die anderen Themen gelesen haben, aber ich kann eine Antwort in sie nicht finden.
(Die andere sind über config-Dateien, oder eine Liste von Techniken)

also meine Frage ist sehr einfach, wenn auch ein wenig subjektiv (ich es vorher :-) beschriften werden), was der einfachste Weg ist, ..

+0

@everyone: Ich werde natürlich eine Antwort akzeptieren, aber habe immer noch keine Zeit, die Antworten zu studieren, Grüße – Peter

Antwort

7

File.Encrypt ist ziemlich einfach - ein Anruf (mit einem Parameter).

Natürlich hängt es wirklich davon ab, was Sie für die Verschlüsselung wollen. File.Encrypt verschlüsselt das aktuelle Konto, was nicht sehr nützlich ist, wenn Sie die Datei weitergeben. Aber angesichts Ihrer Spezifikation - also der einfachste Weg, um eine Datei zu verschlüsseln - muss es ein Kandidat sein!

4

Glauben Sie nicht, dass Sie eine Sicherheit haben, nur weil Sie eine Konfigurationsdatei verschlüsseln. Wenn jemand Zugriff auf die verschlüsselte Konfigurationsdatei und Ihre ausführbare Datei mit dem Kennwort hat, ist es wahrscheinlich möglich, Ihre Konfigurationsdatei zu entschlüsseln. Es ist nur ein bisschen schwieriger.

Und sagen Sie Ihre Konfigurationsdatei enthält Kennwörter für Datenbankverbindungen, könnte es möglich sein, diese Kennwörter auf die Netzwerkpakete zu bekommen.

+0

Ich habe dich gewählt, weil der Downvote vielleicht damit zu tun hat, dass du meine Frage falsch gelesen hast, und das könnte teilweise meine Schuld gewesen sein, also habe ich es umformuliert. – Peter

+0

Ich stimme Ihnen zu, weil es in Ordnung ist, Ihre Sicherheit "paranoid" zu machen, wenn es darauf ankommt. Wenn Sie es verschlüsseln können, kann es entschlüsselt werden. Es ist genau wie deine Antwort, es macht es ein bisschen schwieriger. – Kredns

4

Verschlüsselung ist trivial mit modernen Bibliotheken: Der schwierige Teil ist die Sicherung der Schlüssel.

Sie müssen sich also ansehen, was Sie zu sichern versuchen und gegen welche Bedrohungen Sie sich schützen möchten.

Um eine Datei so zu verschlüsseln, dass nur der aktuelle Benutzer sie auf einer Clientarbeitsstation sehen kann, ist File.Encrypt eine gute Wahl oder DPAPI mit dem CurrentUser-Bereich.

Für eine Konfigurationsdatei auf einem einzelnen Server ist DPAPI mit dem LocalMachine-Bereich eine gute Wahl. Sie müssen dann sicherstellen, dass nur autorisierte Benutzer sich beim Server anmelden können. Hier delegieren Sie im Wesentlichen die Schlüsselverwaltung an Windows.

Für eine Konfigurationsdatei in einer Serverfarm müssen Sie den Schlüssel zwischen den Servern freigeben. RsaProtectedConfigurationProvide ist eine gute Wahl, aber Sie haben mehr Arbeit, um sicherzustellen, dass alle Server Zugriff auf den gleichen Schlüssel haben und dass sie vor unbefugtem Zugriff geschützt sind (z. B. mithilfe einer DACL).

3

Ich empfehle die Cryptography Application block in Enterprise Library. Sehr einfach, sehr flexibel.

+3

Ich bezweifle, "einfachste" und "Enterprise Library" jemals zusammen gehören ... – MichaelGG

+0

Wirklich? Ich finde das Gegenteil, aber ich denke, ich bin es gewohnt, es zu benutzen. Die Verschlüsselung, die von Natur aus durchgeführt wird, ist nicht "einfach", aber ich nehme an, Sie haben Recht, dass es Teil der Frage ist. Aber der Vollständigkeit halber. :) –

Verwandte Themen